Create TSPlayer.IsBouncerThrottled() to avoid code copypasta

This commit is contained in:
Lucas Nicodemus 2017-12-16 01:14:39 -07:00
parent 0260530848
commit 1e9532a316
3 changed files with 21 additions and 14 deletions

View file

@ -203,7 +203,7 @@ namespace TShockAPI
return; return;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
args.Player.SendData(PacketTypes.PlayerAnimation, "", args.Player.Index); args.Player.SendData(PacketTypes.PlayerAnimation, "", args.Player.Index);
args.Handled = true; args.Handled = true;
@ -260,7 +260,7 @@ namespace TShockAPI
return; return;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
args.Player.SendData(PacketTypes.NpcUpdate, "", id); args.Player.SendData(PacketTypes.NpcUpdate, "", id);
args.Handled = true; args.Handled = true;
@ -327,7 +327,7 @@ namespace TShockAPI
return; return;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
args.Player.SendData(PacketTypes.PlayerHp, "", id); args.Player.SendData(PacketTypes.PlayerHp, "", id);
args.Player.SendData(PacketTypes.PlayerUpdate, "", id); args.Player.SendData(PacketTypes.PlayerUpdate, "", id);
@ -470,7 +470,7 @@ namespace TShockAPI
return; return;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
args.Player.SendData(PacketTypes.PlayerAddBuff, "", id); args.Player.SendData(PacketTypes.PlayerAddBuff, "", id);
args.Handled = true; args.Handled = true;
@ -770,7 +770,7 @@ namespace TShockAPI
return; return;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
args.Player.SendTileSquare(tileX, tileY, 1); args.Player.SendTileSquare(tileX, tileY, 1);
args.Handled = true; args.Handled = true;
@ -796,7 +796,7 @@ namespace TShockAPI
return; return;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
args.Player.RemoveProjectile(args.ProjectileIdentity, args.ProjectileOwner); args.Player.RemoveProjectile(args.ProjectileIdentity, args.ProjectileOwner);
args.Handled = true; args.Handled = true;
@ -1021,7 +1021,7 @@ namespace TShockAPI
return; return;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
args.Player.RemoveProjectile(ident, owner); args.Player.RemoveProjectile(ident, owner);
args.Handled = true; args.Handled = true;
@ -1516,7 +1516,7 @@ namespace TShockAPI
return; return;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
args.Player.SendTileSquare(tileX, tileY, 4); args.Player.SendTileSquare(tileX, tileY, 4);
args.Handled = true; args.Handled = true;
@ -1583,7 +1583,7 @@ namespace TShockAPI
return; return;
} }
if (args.Player.CheckIgnores() || (DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.CheckIgnores() || args.Player.IsBouncerThrottled())
{ {
args.Handled = true; args.Handled = true;
return; return;
@ -1617,7 +1617,7 @@ namespace TShockAPI
return; return;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
args.Player.SendTileSquare(tileX, tileY, size); args.Player.SendTileSquare(tileX, tileY, size);
args.Handled = true; args.Handled = true;

View file

@ -2761,7 +2761,7 @@ namespace TShockAPI
private static bool HandleSpawnBoss(GetDataHandlerArgs args) private static bool HandleSpawnBoss(GetDataHandlerArgs args)
{ {
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
return true; return true;
} }
@ -2896,7 +2896,7 @@ namespace TShockAPI
return true; return true;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000 || if (args.Player.IsBouncerThrottled() ||
TShock.CheckTilePermission(args.Player, x, y, true) || TShock.CheckTilePermission(args.Player, x, y, true) ||
TShock.CheckRangePermission(args.Player, x, y)) TShock.CheckRangePermission(args.Player, x, y))
{ {
@ -2940,7 +2940,7 @@ namespace TShockAPI
return true; return true;
} }
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000 || if (args.Player.IsBouncerThrottled() ||
TShock.CheckTilePermission(args.Player, x, y, true) || TShock.CheckTilePermission(args.Player, x, y, true) ||
TShock.CheckRangePermission(args.Player, x, y)) TShock.CheckRangePermission(args.Player, x, y))
{ {
@ -3320,7 +3320,7 @@ namespace TShockAPI
private static bool HandleOldOnesArmy(GetDataHandlerArgs args) private static bool HandleOldOnesArmy(GetDataHandlerArgs args)
{ {
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000) if (args.Player.IsBouncerThrottled())
{ {
return true; return true;
} }

View file

@ -285,6 +285,13 @@ namespace TShockAPI
public bool IgnoreActionsForClearingTrashCan; public bool IgnoreActionsForClearingTrashCan;
/// <summary>Checks to see if active throttling is happening on events by Bouncer. Rejects repeated events by malicious clients in a short window.</summary>
/// <returns>If the player is currently being throttled by Bouncer, or not.</returns>
public bool IsBouncerThrottled()
{
return (DateTime.UtcNow - LastThreat).TotalMilliseconds < 5000;
}
/// <summary>CheckIgnores - Checks a players ignores...?</summary> /// <summary>CheckIgnores - Checks a players ignores...?</summary>
/// <param name="player">player - The TSPlayer object.</param> /// <param name="player">player - The TSPlayer object.</param>
/// <returns>bool - True if any ignore is not none, false, or login state differs from the required state.</returns> /// <returns>bool - True if any ignore is not none, false, or login state differs from the required state.</returns>