diff --git a/Horse Isle Server/Horse Isle Server/Game/Chat/Chat.cs b/Horse Isle Server/Horse Isle Server/Game/Chat/Chat.cs index 0303edf..a336ca0 100644 --- a/Horse Isle Server/Horse Isle Server/Game/Chat/Chat.cs +++ b/Horse Isle Server/Horse Isle Server/Game/Chat/Chat.cs @@ -57,7 +57,9 @@ namespace HISP.Game.Chat if(message.StartsWith("%STICKBUG")) return Command.Stickbug(message, args, user); if (message.StartsWith("%GIVE")) - return Command.Give(message, args, user); ; + return Command.Give(message, args, user); + if (message.StartsWith("%GOTO")) + return Command.Goto(message, args, user); return false; } if (message[0] == '!') diff --git a/Horse Isle Server/Horse Isle Server/Game/Chat/Command.cs b/Horse Isle Server/Horse Isle Server/Game/Chat/Command.cs index 8a0b1ed..b663f29 100644 --- a/Horse Isle Server/Horse Isle Server/Game/Chat/Command.cs +++ b/Horse Isle Server/Horse Isle Server/Game/Chat/Command.cs @@ -84,6 +84,31 @@ namespace HISP.Game.Chat user.LoggedinClient.SendPacket(chatPacket); + return true; + } + + public static bool Goto(string message, string[] args, User user) + { + if (args.Length <= 0) + return false; + if (!user.Administrator) + return false; + + try + { + User teleportTo = GameServer.GetUserByName(args[1]); + user.Teleport(teleportTo.X, teleportTo.Y); + } + catch (KeyNotFoundException) + { + return false; + } + + + byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message.Substring(1)), PacketBuilder.CHAT_BOTTOM_LEFT); + user.LoggedinClient.SendPacket(chatPacket); + + return true; } public static bool Mute(string message, string[] args, User user)