Merge pull request #2753 from KawaiiYuyu/npcbuff

Update Bouncer / OnNPCAddBuff
This commit is contained in:
Lucas Nicodemus 2022-10-27 15:45:54 -06:00 committed by GitHub
commit 22f9153621
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 53 additions and 26 deletions

View file

@ -1981,6 +1981,8 @@ namespace TShockAPI
return;
}
if (!args.Player.HasPermission(Permissions.ignorenpcbuffdetection))
{
bool detectedNPCBuffTimeCheat = false;
if (NPCAddBuffTimeMax.ContainsKey(type))
@ -1990,11 +1992,24 @@ namespace TShockAPI
detectedNPCBuffTimeCheat = true;
}
if (npc.townNPC && npc.netID != NPCID.Guide && npc.netID != NPCID.Clothier)
if (npc.townNPC)
{
if (type != BuffID.Lovestruck && type != BuffID.Stinky && type != BuffID.DryadsWard &&
type != BuffID.Wet && type != BuffID.Slimed && type != BuffID.GelBalloonBuff && type != BuffID.Frostburn2 &&
type != BuffID.Shimmer)
if (type != BuffID.Poisoned
&& type != BuffID.OnFire
&& type != BuffID.Confused
&& type != BuffID.CursedInferno
&& type != BuffID.Ichor
&& type != BuffID.Venom
&& type != BuffID.Midas
&& type != BuffID.Wet
&& type != BuffID.Lovestruck
&& type != BuffID.Stinky
&& type != BuffID.Slimed
&& type != BuffID.DryadsWard
&& type != BuffID.GelBalloonBuff
&& type != BuffID.OnFire3
&& type != BuffID.Frostburn2
&& type != BuffID.Shimmer)
{
detectedNPCBuffTimeCheat = true;
}
@ -2012,6 +2027,7 @@ namespace TShockAPI
args.Handled = true;
}
}
}
/// <summary>The Bouncer handler for when an NPC is rehomed.</summary>
/// <param name="sender">The object that triggered the event.</param>
@ -2842,7 +2858,7 @@ namespace TShockAPI
{ BuffID.MaceWhipNPCDebuff, 240 }, // BuffID: 319
{ BuffID.GelBalloonBuff, 1800 }, // BuffID: 320
{ BuffID.OnFire3, 1200 }, // BuffID: 323
{ BuffID.Frostburn2, 900 }, // BuffID: 324
{ BuffID.Frostburn2, 1200 }, // BuffID: 324
{ BuffID.BoneWhipNPCDebuff, 240 }, // BuffID: 326
{ BuffID.TentacleSpike, 540 }, // BuffID: 337
{ BuffID.CoolWhipNPCDebuff, 240 }, // BuffID: 340

View file

@ -155,6 +155,9 @@ namespace TShockAPI
[Description("Prevents your actions from being ignored if damage is too high.")]
public static readonly string ignoredamagecap = "tshock.ignore.damage";
[Description("Prevents your from being kicked by npc buff hack detection.")]
public static readonly string ignorenpcbuffdetection = "tshock.ignore.npcbuff";
[Description("Bypass server side character checks.")]
public static readonly string bypassssc = "tshock.ignore.ssc";

View file

@ -945,6 +945,9 @@ namespace TShockAPI
{
PrepareLangForDump();
// Lang.setLang(true);
Directory.CreateDirectory("docs");
Configuration.TShockConfig.DumpDescriptions();
Permissions.DumpDescriptions();
Configuration.ServerSideConfig.DumpDescriptions();

View file

@ -69,6 +69,7 @@ Use past tense when adding new entries; sign your name off when you add or chang
* Check loadout slots for hacked item stacks. (@drunderscore)
* Fix players being kicked after using the Flamethrower to apply the `OnFire3` debuff for `1200` ticks. (@BashGuy10)
* Fix being kicked for using the new sponge types on liquid. (@BashGuy10)
* Allow flask buffs to be applied on town npc due to the Flymeal. Add a permission could skip the buff detection. (@KawaiiYuyu)
## TShock 4.5.18
* Fixed `TSPlayer.GiveItem` not working if the player is in lava. (@PotatoCider)

View file

@ -210,6 +210,10 @@ Prevents you from being disabled by liquid set abuse detection.
Prevents you from being disabled by abnormal MP.
* **Commands**: `None`
## tshock.ignore.npcbuff
Prevents your from being kicked by npc buff hack detection.
* **Commands**: `None`
## tshock.ignore.paint
Prevents you from being disabled by paint abuse detection.
* **Commands**: `None`