diff --git a/CHANGELOG.md b/CHANGELOG.md index d651ce6d..abd107a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,12 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin * Fixed painting wall/tile being rejected from hand of creation. (@Rozen4334) * Added a second `Utils.TryParseTime` method for parsing large, positive time spans. (@punchready) * Fixed `/tempgroup` breaking on durations greater than roughly 24 days. (@punchready) +* Fixed `HandlePlayerAddBuff` data handler always being marked as `Handled`, and therefore never allowing the `PlayerAddBuff` to be sent to anyone. (@drunderscore) +* Improved `OnPlayerBuff` logic to properly handle players adding buffs to other players. (@drunderscore) + * Check if the target ID is within bounds as the first thing to check. + * Check if the buff type being applied is within bounds. + * Introduce `AddPlayerBuffWhitelist` (replacing `WhitelistBuffMaxTime`), which allows us to specify the maximum amount of ticks a buff can be applied for, and if it can be applied without the target being in PvP. + * When rejecting from `OnPlayerBuff`, instead of sending a `PlayerAddBuff` packet with the rejected buff (essentially a no-op, as the sender implicitly applies the buff to the target, and causes desync as the buff was rejected), send a `PlayerBuff` to re-sync the target's buffs, without the buff we just rejected. ## TShock 4.5.18 * Fixed `TSPlayer.GiveItem` not working if the player is in lava. (@gohjoseph)