Fix for HealOtherPlayer exploit, also fix #1309
This commit is contained in:
parent
5be85b9864
commit
1460a7ad91
4 changed files with 59 additions and 3 deletions
|
|
@ -1261,7 +1261,8 @@ namespace TShockAPI
|
|||
{ PacketTypes.PlaceItemFrame, HandlePlaceItemFrame },
|
||||
{ PacketTypes.SyncExtraValue, HandleSyncExtraValue },
|
||||
{ PacketTypes.LoadNetModule, HandleLoadNetModule },
|
||||
{ PacketTypes.ToggleParty, HandleToggleParty }
|
||||
{ PacketTypes.ToggleParty, HandleToggleParty },
|
||||
{ PacketTypes.PlayerHealOther, HandleHealOther }
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -1283,6 +1284,43 @@ namespace TShockAPI
|
|||
return false;
|
||||
}
|
||||
|
||||
private static bool HandleHealOther(GetDataHandlerArgs args)
|
||||
{
|
||||
byte plr = args.Data.ReadInt8();
|
||||
short amount = args.Data.ReadInt16();
|
||||
|
||||
if (amount <= 0 || Main.player[plr] == null || !Main.player[plr].active)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (amount > TShock.Config.MaxDamage * 0.2)
|
||||
{
|
||||
args.Player.Disable("HealOtherPlayer max amount cheat attempt!", DisableFlags.WriteToLogAndConsole);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.TPlayer.whoAmI != plr && (args.TPlayer.team == 0 || args.TPlayer.team != Main.player[plr].team))
|
||||
{
|
||||
args.Player.Disable("HealOtherPlayer cheat attempt!", DisableFlags.WriteToLogAndConsole);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.Player.HealOtherThreshold > TShock.Config.HealOtherThreshold)
|
||||
{
|
||||
args.Player.Disable("Reached HealOtherPlayer threshold.", DisableFlags.WriteToLogAndConsole);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (TShock.CheckIgnores(args.Player) || (DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
args.Player.HealOtherThreshold++;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool HandlePlayerSlot(GetDataHandlerArgs args)
|
||||
{
|
||||
byte plr = args.Data.ReadInt8();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue