Merge pull request #2753 from KawaiiYuyu/npcbuff
Update Bouncer / OnNPCAddBuff
This commit is contained in:
commit
22f9153621
5 changed files with 53 additions and 26 deletions
|
|
@ -1737,7 +1737,7 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
bucket = 6;
|
bucket = 6;
|
||||||
}
|
}
|
||||||
else if (selectedItemType == ItemID.BottomlessHoneyBucket
|
else if (selectedItemType == ItemID.BottomlessHoneyBucket
|
||||||
|| selectedItemType == ItemID.HoneyAbsorbantSponge)
|
|| selectedItemType == ItemID.HoneyAbsorbantSponge)
|
||||||
{
|
{
|
||||||
bucket = 7;
|
bucket = 7;
|
||||||
|
|
@ -1981,36 +1981,52 @@ namespace TShockAPI
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool detectedNPCBuffTimeCheat = false;
|
if (!args.Player.HasPermission(Permissions.ignorenpcbuffdetection))
|
||||||
|
|
||||||
if (NPCAddBuffTimeMax.ContainsKey(type))
|
|
||||||
{
|
{
|
||||||
if (time > NPCAddBuffTimeMax[type])
|
bool detectedNPCBuffTimeCheat = false;
|
||||||
|
|
||||||
|
if (NPCAddBuffTimeMax.ContainsKey(type))
|
||||||
|
{
|
||||||
|
if (time > NPCAddBuffTimeMax[type])
|
||||||
|
{
|
||||||
|
detectedNPCBuffTimeCheat = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (npc.townNPC)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
detectedNPCBuffTimeCheat = true;
|
detectedNPCBuffTimeCheat = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (npc.townNPC && npc.netID != NPCID.Guide && npc.netID != NPCID.Clothier)
|
if (detectedNPCBuffTimeCheat)
|
||||||
{
|
{
|
||||||
if (type != BuffID.Lovestruck && type != BuffID.Stinky && type != BuffID.DryadsWard &&
|
TShock.Log.ConsoleDebug(GetString("Bouncer / OnNPCAddBuff rejected abnormal buff ({0}) added to {1} ({2}) from {3}.", type, npc.TypeName, npc.netID, args.Player.Name));
|
||||||
type != BuffID.Wet && type != BuffID.Slimed && type != BuffID.GelBalloonBuff && type != BuffID.Frostburn2 &&
|
args.Player.Kick(GetString($"Added buff to {npc.TypeName} NPC abnormally."), true);
|
||||||
type != BuffID.Shimmer)
|
args.Handled = true;
|
||||||
{
|
|
||||||
detectedNPCBuffTimeCheat = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
detectedNPCBuffTimeCheat = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (detectedNPCBuffTimeCheat)
|
|
||||||
{
|
|
||||||
TShock.Log.ConsoleDebug(GetString("Bouncer / OnNPCAddBuff rejected abnormal buff ({0}) added to {1} ({2}) from {3}.", type, npc.TypeName, npc.netID, args.Player.Name));
|
|
||||||
args.Player.Kick(GetString($"Added buff to {npc.TypeName} NPC abnormally."), true);
|
|
||||||
args.Handled = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>The Bouncer handler for when an NPC is rehomed.</summary>
|
/// <summary>The Bouncer handler for when an NPC is rehomed.</summary>
|
||||||
|
|
@ -2842,12 +2858,12 @@ namespace TShockAPI
|
||||||
{ BuffID.MaceWhipNPCDebuff, 240 }, // BuffID: 319
|
{ BuffID.MaceWhipNPCDebuff, 240 }, // BuffID: 319
|
||||||
{ BuffID.GelBalloonBuff, 1800 }, // BuffID: 320
|
{ BuffID.GelBalloonBuff, 1800 }, // BuffID: 320
|
||||||
{ BuffID.OnFire3, 1200 }, // BuffID: 323
|
{ BuffID.OnFire3, 1200 }, // BuffID: 323
|
||||||
{ BuffID.Frostburn2, 900 }, // BuffID: 324
|
{ BuffID.Frostburn2, 1200 }, // BuffID: 324
|
||||||
{ BuffID.BoneWhipNPCDebuff, 240 }, // BuffID: 326
|
{ BuffID.BoneWhipNPCDebuff, 240 }, // BuffID: 326
|
||||||
{ BuffID.TentacleSpike, 540 }, // BuffID: 337
|
{ BuffID.TentacleSpike, 540 }, // BuffID: 337
|
||||||
{ BuffID.CoolWhipNPCDebuff, 240 }, // BuffID: 340
|
{ BuffID.CoolWhipNPCDebuff, 240 }, // BuffID: 340
|
||||||
{ BuffID.BloodButcherer, 540 }, // BuffID: 344
|
{ BuffID.BloodButcherer, 540 }, // BuffID: 344
|
||||||
{ BuffID.Shimmer, 100 }, // BuffID: 353
|
{ BuffID.Shimmer, 100 }, // BuffID: 353
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,9 @@ namespace TShockAPI
|
||||||
[Description("Prevents your actions from being ignored if damage is too high.")]
|
[Description("Prevents your actions from being ignored if damage is too high.")]
|
||||||
public static readonly string ignoredamagecap = "tshock.ignore.damage";
|
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.")]
|
[Description("Bypass server side character checks.")]
|
||||||
public static readonly string bypassssc = "tshock.ignore.ssc";
|
public static readonly string bypassssc = "tshock.ignore.ssc";
|
||||||
|
|
||||||
|
|
@ -439,7 +442,7 @@ namespace TShockAPI
|
||||||
|
|
||||||
[Description("User can kill others.")]
|
[Description("User can kill others.")]
|
||||||
public static readonly string kill = "tshock.kill";
|
public static readonly string kill = "tshock.kill";
|
||||||
|
|
||||||
[Description("Player can respawn themselves.")]
|
[Description("Player can respawn themselves.")]
|
||||||
public static readonly string respawn = "tshock.respawn";
|
public static readonly string respawn = "tshock.respawn";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -945,6 +945,9 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
PrepareLangForDump();
|
PrepareLangForDump();
|
||||||
// Lang.setLang(true);
|
// Lang.setLang(true);
|
||||||
|
|
||||||
|
Directory.CreateDirectory("docs");
|
||||||
|
|
||||||
Configuration.TShockConfig.DumpDescriptions();
|
Configuration.TShockConfig.DumpDescriptions();
|
||||||
Permissions.DumpDescriptions();
|
Permissions.DumpDescriptions();
|
||||||
Configuration.ServerSideConfig.DumpDescriptions();
|
Configuration.ServerSideConfig.DumpDescriptions();
|
||||||
|
|
|
||||||
|
|
@ -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)
|
* 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 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)
|
* 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
|
## TShock 4.5.18
|
||||||
* Fixed `TSPlayer.GiveItem` not working if the player is in lava. (@PotatoCider)
|
* Fixed `TSPlayer.GiveItem` not working if the player is in lava. (@PotatoCider)
|
||||||
|
|
|
||||||
|
|
@ -210,6 +210,10 @@ Prevents you from being disabled by liquid set abuse detection.
|
||||||
Prevents you from being disabled by abnormal MP.
|
Prevents you from being disabled by abnormal MP.
|
||||||
* **Commands**: `None`
|
* **Commands**: `None`
|
||||||
|
|
||||||
|
## tshock.ignore.npcbuff
|
||||||
|
Prevents your from being kicked by npc buff hack detection.
|
||||||
|
* **Commands**: `None`
|
||||||
|
|
||||||
## tshock.ignore.paint
|
## tshock.ignore.paint
|
||||||
Prevents you from being disabled by paint abuse detection.
|
Prevents you from being disabled by paint abuse detection.
|
||||||
* **Commands**: `None`
|
* **Commands**: `None`
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue