diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dba6b4b..f674639a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,11 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin * Fixed Inferno Fork causing kick from rejected abnormal buff. (@Stealownz) * Prevented Server Broadcast from executing without a message. (@PackmanDude, @punchready) +* Update Github CI to not tarball files for Windows only (@PotatoCider) +* Allow Blood Butcherer and Shimmer buffs to be applied to NPCs by players (@drunderscore) +* Add `LiquidType.Shimmer` (@drunderscore) +* Make Bouncer allow Bottomless Honey Bucket usage (@drunderscore) +* Make Bouncer reject Shimmer placement without bucket or whilst banned (@drunderscore) ## TShock 4.5.18 * Fixed `TSPlayer.GiveItem` not working if the player is in lava. (@PotatoCider) diff --git a/TShockAPI/Bouncer.cs b/TShockAPI/Bouncer.cs index a26cfa86..1fd7d6db 100644 --- a/TShockAPI/Bouncer.cs +++ b/TShockAPI/Bouncer.cs @@ -1544,6 +1544,14 @@ namespace TShockAPI { bucket = 6; } + else if (selectedItemType == ItemID.BottomlessHoneyBucket) + { + bucket = 7; + } + else if (selectedItemType == ItemID.BottomlessShimmerBucket) + { + bucket = 8; + } if (!wasThereABombNearby && type == LiquidType.Lava && !(bucket == 2 || bucket == 0 || bucket == 5 || bucket == 6)) { @@ -1585,7 +1593,7 @@ namespace TShockAPI return; } - if (!wasThereABombNearby && type == LiquidType.Honey && !(bucket == 3 || bucket == 0)) + if (!wasThereABombNearby && type == LiquidType.Honey && !(bucket == 3 || bucket == 0 || bucket == 7)) { TShock.Log.ConsoleDebug("Bouncer / OnLiquidSet rejected bucket check 4 from {0}", args.Player.Name); args.Player.SendErrorMessage("You do not have permission to perform this action."); @@ -1604,6 +1612,27 @@ namespace TShockAPI args.Handled = true; return; } + + if (!wasThereABombNearby && type == LiquidType.Shimmer && bucket != 8) + { + TShock.Log.ConsoleDebug("Bouncer / OnLiquidSet rejected bucket check 6 from {0}", args.Player.Name); + args.Player.SendErrorMessage("You do not have permission to perform this action."); + args.Player.Disable("Spreading shimmer without holding a honey bucket", DisableFlags.WriteToLogAndConsole); + args.Player.SendTileSquareCentered(tileX, tileY, 1); + args.Handled = true; + return; + } + + if (!wasThereABombNearby && type == LiquidType.Shimmer && + TShock.ItemBans.DataModel.ItemIsBanned("Bottomless Shimmer Bucket", args.Player)) + { + TShock.Log.ConsoleDebug("Bouncer / OnLiquidSet rejected bucket check 7 from {0}", args.Player.Name); + args.Player.SendErrorMessage("You do not have permission to perform this action."); + args.Player.Disable("Using banned bottomless shimmer bucket without permissions", DisableFlags.WriteToLogAndConsole); + args.Player.SendTileSquareCentered(tileX, tileY, 1); + args.Handled = true; + return; + } } if (!args.Player.HasBuildPermission(tileX, tileY)) diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index bf594724..5e1369e0 100644 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -1296,6 +1296,7 @@ namespace TShockAPI Water = 0, Lava = 1, Honey = 2, + Shimmer = 3, Removal = 255 //@Olink: lets hope they never invent 255 fluids or decide to also use this :( }