diff options
| -rw-r--r-- | server/commands.go | 11 |
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 != "" { |
