diff --git a/TShockAPI/ConfigurationManager.cs b/TShockAPI/ConfigurationManager.cs index 93fa6fa7..2b06d766 100644 --- a/TShockAPI/ConfigurationManager.cs +++ b/TShockAPI/ConfigurationManager.cs @@ -17,7 +17,6 @@ namespace TShockAPI public static bool infiniteInvasion; public static bool permaPvp; public static int killCount; - public static bool startedInvasion; public static bool kickCheater = true; public static bool banCheater = true; public static bool kickGriefer = true; diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 6bc85336..7f28b468 100644 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -840,8 +840,11 @@ namespace TShockAPI public static void Ban(int plr, string reason = "") { - Tools.Kick(plr, reason); - Bans.AddBan(Tools.GetPlayerIP(plr), Main.player[plr].name, reason); + if (!players[plr].group.HasPermission("immunetoban")) + { + Tools.Kick(plr,"Banned: " + reason); + Bans.AddBan(Tools.GetPlayerIP(plr), Main.player[plr].name, reason); + } } public class Position diff --git a/TShockAPI/Tools.cs b/TShockAPI/Tools.cs index 2a2bee95..513e3961 100644 --- a/TShockAPI/Tools.cs +++ b/TShockAPI/Tools.cs @@ -215,9 +215,12 @@ namespace TShockAPI /// string reason public static void Kick(int ply, string reason) { - string displayName = FindPlayer(ply).Equals("") ? GetPlayerIP(ply) : FindPlayer(ply); - NetMessage.SendData(0x2, ply, -1, reason, 0x0, 0f, 0f, 0f); - Log.Info("Kicked " + displayName + " for : " + reason); + if (!TShock.players[ply].group.HasPermission("immunetokick") || reason.Contains("Banned: ")) + { + string displayName = FindPlayer(ply).Equals("") ? GetPlayerIP(ply) : FindPlayer(ply); + NetMessage.SendData(0x2, ply, -1, reason, 0x0, 0f, 0f, 0f); + Log.Info("Kicked " + displayName + " for : " + reason); + } } ///