From 3be40efc5e38f6a789d57b95e668c56e3b530f6b Mon Sep 17 00:00:00 2001 From: SilicaPi <silica@raspberrypi.com> Date: Tue, 2 Feb 2021 18:35:50 +1300 Subject: [PATCH] Add %UNBAN --- .../HorseIsleServer/Game/Chat/Chat.cs | 2 + .../HorseIsleServer/Game/Chat/Command.cs | 37 +++++++++++++++++-- .../HorseIsleServer/Game/Horse/HorseInfo.cs | 5 ++- .../HorseIsleServer/Server/Database.cs | 14 ++++++- 4 files changed, 53 insertions(+), 5 deletions(-) diff --git a/Horse Isle Server/HorseIsleServer/Game/Chat/Chat.cs b/Horse Isle Server/HorseIsleServer/Game/Chat/Chat.cs index 5d9b0b4..6022ef6 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Chat/Chat.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Chat/Chat.cs @@ -66,6 +66,8 @@ namespace HISP.Game.Chat return Command.NoClip(message, args, user); if (message.StartsWith("%BAN")) return Command.Ban(message, args, user); + if (message.StartsWith("%UNBAN")) + return Command.UnBan(message, args, user); return false; } if (message[0] == '!') diff --git a/Horse Isle Server/HorseIsleServer/Game/Chat/Command.cs b/Horse Isle Server/HorseIsleServer/Game/Chat/Command.cs index 907885a..2481089 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Chat/Command.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Chat/Command.cs @@ -62,6 +62,31 @@ namespace HISP.Game.Chat user.LoggedinClient.SendPacket(chatPacket); return true; } + + public static bool UnBan(string message, string[] args, User user) + { + if(args.Length <= 0) + return false; + if(!user.Administrator || !user.Moderator) + return false; + + try{ + string userName = args[0]; + int id = Database.GetUserid(userName); + Database.UnBanUser(id); + } + catch(Exception e) + { + Logger.ErrorPrint(e.Message); + return false; + } + + byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message.Substring(1)), PacketBuilder.CHAT_BOTTOM_LEFT); + user.LoggedinClient.SendPacket(chatPacket); + + return true; + } + public static bool Ban(string message, string[] args, User user) { if (args.Length <= 0) @@ -79,13 +104,19 @@ namespace HISP.Game.Chat } Database.BanUser(id, ip, reason); - User bannedUser = GameServer.GetUserByName(args[0]); - bannedUser.LoggedinClient.Kick(Messages.KickReasonBanned); } catch(Exception) { return false; } + try{ + User bannedUser = GameServer.GetUserByName(args[0]); + bannedUser.LoggedinClient.Kick(Messages.KickReasonBanned); + } + catch(KeyNotFoundException){}; + + byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message.Substring(1)), PacketBuilder.CHAT_BOTTOM_LEFT); + user.LoggedinClient.SendPacket(chatPacket); return true; } @@ -134,7 +165,7 @@ namespace HISP.Game.Chat if (!user.Administrator) return false; - + user.NoClip = !user.NoClip; byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message.Substring(1)), PacketBuilder.CHAT_BOTTOM_LEFT); user.LoggedinClient.SendPacket(chatPacket); return true; diff --git a/Horse Isle Server/HorseIsleServer/Game/Horse/HorseInfo.cs b/Horse Isle Server/HorseIsleServer/Game/Horse/HorseInfo.cs index 1db5792..c794ba5 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Horse/HorseInfo.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Horse/HorseInfo.cs @@ -122,7 +122,10 @@ namespace HISP.Game.Horse { get { - return baseHorse.Equipment.Companion.GetMiscFlag(0); + if(baseHorse.Equipment.Companion != null) + return baseHorse.Equipment.Companion.GetMiscFlag(0); + else + return 0; } } public int TackOffset diff --git a/Horse Isle Server/HorseIsleServer/Server/Database.cs b/Horse Isle Server/HorseIsleServer/Server/Database.cs index df66047..c76363c 100755 --- a/Horse Isle Server/HorseIsleServer/Server/Database.cs +++ b/Horse Isle Server/HorseIsleServer/Server/Database.cs @@ -53,7 +53,6 @@ namespace HISP.Server } catch (Exception e) { - Logger.DebugPrint(e.GetType().ToString()); Logger.WarnPrint(e.Message); }; @@ -667,6 +666,19 @@ namespace HISP.Server } } + public static void UnBanUser(int userId) + { + using (MySqlConnection db = new MySqlConnection(ConnectionString)) + { + db.Open(); + MySqlCommand sqlCommand = db.CreateCommand(); + sqlCommand.CommandText = "DELETE FROM BannedPlayers WHERE playerId=@playerId"; + sqlCommand.Parameters.AddWithValue("@playerId", userId); + sqlCommand.ExecuteNonQuery(); + sqlCommand.Dispose(); + } + } + public static bool IsIpBanned(string ip) {