summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/commands.go11
1 files changed, 9 insertions, 2 deletions
diff --git a/server/commands.go b/server/commands.go
index 5ec321a..27dd041 100644
--- a/server/commands.go
+++ b/server/commands.go
@@ -95,8 +95,15 @@ var commands = map[string]commandHandler {
pl1 = ctx.server.players[sourcePlayer]
pl2 = ctx.server.players[destPlayer]
)
- pl2.GetInfo(ctx.server, func(_ string, state playerState) {
- pl1.MovePlayer(ctx.server, state.Pos, state.Facing)
+ pl1.GetInfo(ctx.server, func(_ string, st1 playerState) {
+ pl2.GetInfo(ctx.server, func(_ string, st2 playerState) {
+ if st1.LevelId == st2.LevelId {
+ pl1.MovePlayer(ctx.server, st2.Pos, st2.Facing)
+ } else {
+ pl1.ChangeLevel(ctx.server, st2.LevelId, st2.Pos)
+ pl1.MovePlayer(ctx.server, st2.Pos, st2.Facing)
+ }
+ })
})
} else {
if destPlayer != "" {