diff --git a/CHANGELOG.md b/CHANGELOG.md index aa42a2aa..267c8ece 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,13 @@ This is the rolling changelog for TShock for Terraria. Use past tense when adding new entries; sign your name off when you add or change something. This should primarily be things like user changes, not necessarily codebase changes unless it's really relevant or large. ## Upcoming Changes +* API: Added hooks for item, projectile and tile bans (@deadsurgeon42) +* API: New WorldGrassSpread hook which shold allow corruption/crimson/hallow creep config options to work (@DeathCradle) +* Fixed saving when one player is one the server and another one joins (@MarioE) +* Fixed /spawnmob not spawning negative IDs (@MarioE) +* Validated tile placement on PlaceObject; clients can no longer place frames, paintings etc with dirt blocks (@bartico6, @ProfessorXZ) +## TShock 4.3.24 * Updated OpenTerraria API to 1.3.5.3 (@DeathCradle) * Updated Terraria Server API to 1.3.5.3 (@WhiteXZ, @hakusaro) * Updated TShock core components to 1.3.5.3 (@hakusaro) diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 2a7ddd00..77e37c03 100644 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -2350,6 +2350,15 @@ namespace TShockAPI return true; } + // This is neccessary to check in order to prevent special tiles such as + // queen bee larva, paintings etc that use this packet from being placed + // without selecting the right item. + if (type != args.TPlayer.inventory[args.TPlayer.selectedItem].createTile) + { + args.Player.SendTileSquare(x, y, 4); + return true; + } + TileObjectData tileData = TileObjectData.GetTileData(type, style, 0); if (tileData == null) return true;