From 0dcbbc9f1838c49001836edb1beb00ae27f1c44a Mon Sep 17 00:00:00 2001 From: PhoenixICE Date: Thu, 18 Dec 2014 21:54:12 +0800 Subject: [PATCH] Added Kicking for Damage Threshold --- TShockAPI/ConfigFile.cs | 3 +++ TShockAPI/GetDataHandlers.cs | 20 ++++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs index 51e909e2..e1eb1014 100755 --- a/TShockAPI/ConfigFile.cs +++ b/TShockAPI/ConfigFile.cs @@ -271,6 +271,9 @@ namespace TShockAPI [Description("The maximum damage a projectile can inflict.")] public int MaxProjDamage = 175; + [Description("Kicks a user if set to true, if they inflict more damage then the max damage.")] + public bool KickOnDamageThresholdBroken = false; + [Description("Ignores checking to see if player 'can' update a projectile.")] public bool IgnoreProjUpdate = false; diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index da1951f2..e3beae8f 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -3150,7 +3150,15 @@ namespace TShockAPI if (dmg > TShock.Config.MaxDamage && !args.Player.Group.HasPermission(Permissions.ignoredamagecap) && id != args.Player.Index) { - args.Player.Disable(String.Format("Player damage exceeded {0}.", TShock.Config.MaxDamage)); + if (TShock.Config.KickOnDamageThresholdBroken) + { + TShock.Utils.Kick(args.Player, string.Format("Player damage exceeded {0}.", TShock.Config.MaxDamage)); + return true; + } + else + { + args.Player.Disable(String.Format("Player damage exceeded {0}.", TShock.Config.MaxDamage)); + } args.Player.SendData(PacketTypes.PlayerHp, "", id); args.Player.SendData(PacketTypes.PlayerUpdate, "", id); return true; @@ -3208,7 +3216,15 @@ namespace TShockAPI if (dmg > TShock.Config.MaxDamage && !args.Player.Group.HasPermission(Permissions.ignoredamagecap)) { - args.Player.Disable(String.Format("NPC damage exceeded {0}.", TShock.Config.MaxDamage ) ); + if (TShock.Config.KickOnDamageThresholdBroken) + { + TShock.Utils.Kick(args.Player, string.Format("NPC damage exceeded {0}.", TShock.Config.MaxDamage)); + return true; + } + else + { + args.Player.Disable(String.Format("NPC damage exceeded {0}.", TShock.Config.MaxDamage)); + } args.Player.SendData(PacketTypes.NpcUpdate, "", id); return true; }