Merge branch 'general-devel' into general-devel

This commit is contained in:
Rustly 2020-06-18 16:53:14 -05:00 committed by GitHub
commit 0a01ae6d83
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 19 deletions

View file

@ -24,6 +24,8 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
* Fixed the issue where players were unable to place regular ropes because of the valid placement being caught in Bouncer OnTileEdit. (@Patrikkk) * Fixed the issue where players were unable to place regular ropes because of the valid placement being caught in Bouncer OnTileEdit. (@Patrikkk)
* Remove checks that prevented people placing personal storage tiles in SSC as the personal storage is synced with the server.(@Patrikkk) * Remove checks that prevented people placing personal storage tiles in SSC as the personal storage is synced with the server.(@Patrikkk)
* Cleaned up a check in Bouner OnTileEdit where it checks for using the respective item when placing a tile to make it clearer. This change also fixed the issue in a previous commit where valid replace action was caught. Moved the check for max tile/wall types to the beginning of the method. (@Patrikkk) * Cleaned up a check in Bouner OnTileEdit where it checks for using the respective item when placing a tile to make it clearer. This change also fixed the issue in a previous commit where valid replace action was caught. Moved the check for max tile/wall types to the beginning of the method. (@Patrikkk)
* Improved clarity for insufficient permission related error messages. (@moisterrific)
* Remove redundant Boulder placement check that prevented placing chests on them, as it is no longer possible to place a chest on a boulder, so nothing crashes the server. "1.2.3: Boulders with Chests on them no longer crash the game if the boulder is hit." (@kevzhao2, @Patrikkk)
## TShock 4.4.0 (Pre-release 11) ## TShock 4.4.0 (Pre-release 11)
* New permission `tshock.tp.pylon` to enable teleporting via Teleportation Pylons (@QuiCM) * New permission `tshock.tp.pylon` to enable teleporting via Teleportation Pylons (@QuiCM)

View file

@ -384,14 +384,6 @@ namespace TShockAPI
args.Handled = true; args.Handled = true;
return; return;
} }
if ((TShock.Utils.TilePlacementValid(tileX, tileY + 1) && Main.tile[tileX, tileY + 1].type == TileID.Boulder) ||
(TShock.Utils.TilePlacementValid(tileX + 1, tileY + 1) && Main.tile[tileX + 1, tileY + 1].type == TileID.Boulder))
{
TShock.Log.ConsoleDebug("Bouncer / OnTileEdit rejected from (validplacement) {0} {1} {2}", args.Player.Name, action, editData);
args.Player.SendTileSquare(tileX, tileY, 3);
args.Handled = true;
return;
}
} }
} }
else if (action == EditAction.PlaceWire || action == EditAction.PlaceWire2 || action == EditAction.PlaceWire3) else if (action == EditAction.PlaceWire || action == EditAction.PlaceWire2 || action == EditAction.PlaceWire3)

View file

@ -2628,7 +2628,7 @@ namespace TShockAPI
if (Main.npc[id].townNPC && !args.Player.HasPermission(Permissions.hurttownnpc)) if (Main.npc[id].townNPC && !args.Player.HasPermission(Permissions.hurttownnpc))
{ {
args.Player.SendErrorMessage("You do not have permission to hurt this NPC."); args.Player.SendErrorMessage("You do not have permission to hurt Town NPCs.");
args.Player.SendData(PacketTypes.NpcUpdate, "", id); args.Player.SendData(PacketTypes.NpcUpdate, "", id);
TShock.Log.ConsoleDebug("GetDataHandlers / HandleNpcStrike rejected npc strike {0}", args.Player.Name); TShock.Log.ConsoleDebug("GetDataHandlers / HandleNpcStrike rejected npc strike {0}", args.Player.Name);
return true; return true;
@ -3017,7 +3017,7 @@ namespace TShockAPI
if (type == 1 && TShock.Config.DisableDungeonGuardian) if (type == 1 && TShock.Config.DisableDungeonGuardian)
{ {
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpecial rejected type 1 for {0}", args.Player.Name); TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpecial rejected type 1 for {0}", args.Player.Name);
args.Player.SendMessage("The Dungeon Guardian returned you to your spawn point", Color.Purple); args.Player.SendMessage("The Dungeon Guardian returned you to your spawn point.", Color.Purple);
args.Player.Spawn(PlayerSpawnContext.RecallFromItem); args.Player.Spawn(PlayerSpawnContext.RecallFromItem);
return true; return true;
} }
@ -3025,7 +3025,7 @@ namespace TShockAPI
if (type == 3 && !args.Player.HasPermission(Permissions.usesundial)) if (type == 3 && !args.Player.HasPermission(Permissions.usesundial))
{ {
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpecial rejected enchanted sundial permission {0}", args.Player.Name); TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpecial rejected enchanted sundial permission {0}", args.Player.Name);
args.Player.SendErrorMessage("You do not have permission to use the Enchanted Sundial!"); args.Player.SendErrorMessage("You do not have permission to use the Enchanted Sundial.");
return true; return true;
} }
@ -3070,7 +3070,7 @@ namespace TShockAPI
if (!args.Player.HasPermission(Permissions.movenpc)) if (!args.Player.HasPermission(Permissions.movenpc))
{ {
TShock.Log.ConsoleDebug("GetDataHandlers / UpdateNPCHome rejected no permission {0}", args.Player.Name); TShock.Log.ConsoleDebug("GetDataHandlers / UpdateNPCHome rejected no permission {0}", args.Player.Name);
args.Player.SendErrorMessage("You do not have permission to relocate NPCs."); args.Player.SendErrorMessage("You do not have permission to relocate Town NPCs.");
args.Player.SendData(PacketTypes.UpdateNPCHome, "", id, Main.npc[id].homeTileX, Main.npc[id].homeTileY, args.Player.SendData(PacketTypes.UpdateNPCHome, "", id, Main.npc[id].homeTileX, Main.npc[id].homeTileY,
Convert.ToByte(Main.npc[id].homeless)); Convert.ToByte(Main.npc[id].homeless));
return true; return true;
@ -3097,14 +3097,14 @@ namespace TShockAPI
if (bosses.Contains(thingType) && !args.Player.HasPermission(Permissions.summonboss)) if (bosses.Contains(thingType) && !args.Player.HasPermission(Permissions.summonboss))
{ {
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawnBoss rejected boss {0} {1}", args.Player.Name, thingType); TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawnBoss rejected boss {0} {1}", args.Player.Name, thingType);
args.Player.SendErrorMessage("You do not have permission to summon a boss."); args.Player.SendErrorMessage("You do not have permission to summon bosses.");
return true; return true;
} }
if (invasions.Contains(thingType) && !args.Player.HasPermission(Permissions.startinvasion)) if (invasions.Contains(thingType) && !args.Player.HasPermission(Permissions.startinvasion))
{ {
TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawnBoss rejected invasion {0} {1}", args.Player.Name, thingType); TShock.Log.ConsoleDebug("GetDataHandlers / HandleSpawnBoss rejected invasion {0} {1}", args.Player.Name, thingType);
args.Player.SendErrorMessage("You do not have permission to start an invasion."); args.Player.SendErrorMessage("You do not have permission to start invasions.");
return true; return true;
} }
@ -3302,8 +3302,8 @@ namespace TShockAPI
if (type == 0 && !args.Player.HasPermission(Permissions.rod)) if (type == 0 && !args.Player.HasPermission(Permissions.rod))
{ {
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleport rejected rod type {0} {1}", args.Player.Name, type); TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleport rejected rod type {0} {1}", args.Player.Name, type);
args.Player.SendErrorMessage("You do not have permission to teleport."); args.Player.SendErrorMessage("You do not have permission to teleport using items."); // Was going to write using RoD but Hook of Disonnance and Potion of Return both use the same teleport packet as RoD.
args.Player.Teleport(args.TPlayer.position.X, args.TPlayer.position.Y); args.Player.Teleport(args.TPlayer.position.X, args.TPlayer.position.Y); // Suggest renaming rod permission unless someone plans to add separate perms for the other 2 tp items.
return true; return true;
} }
@ -3326,7 +3326,7 @@ namespace TShockAPI
if (!args.Player.HasPermission(Permissions.wormhole)) if (!args.Player.HasPermission(Permissions.wormhole))
{ {
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleport rejected p2p wormhole permission {0} {1}", args.Player.Name, type); TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleport rejected p2p wormhole permission {0} {1}", args.Player.Name, type);
args.Player.SendErrorMessage("You do not have permission to teleport."); args.Player.SendErrorMessage("You do not have permission to teleport using Wormhole Potions.");
args.Player.Teleport(args.TPlayer.position.X, args.TPlayer.position.Y); args.Player.Teleport(args.TPlayer.position.X, args.TPlayer.position.Y);
return true; return true;
} }
@ -3597,7 +3597,7 @@ namespace TShockAPI
if (!args.Player.HasPermission(Permissions.startdd2)) if (!args.Player.HasPermission(Permissions.startdd2))
{ {
TShock.Log.ConsoleDebug("GetDataHandlers / HandleOldOnesArmy rejected permissions {0}", args.Player.Name); TShock.Log.ConsoleDebug("GetDataHandlers / HandleOldOnesArmy rejected permissions {0}", args.Player.Name);
args.Player.SendErrorMessage("You do not have permission to start the Old One's Army event."); args.Player.SendErrorMessage("You do not have permission to start the Old One's Army.");
return true; return true;
} }

View file

@ -51,7 +51,7 @@ namespace TShockAPI.Handlers.NetModules
if (!player.HasPermission(Permissions.pylon)) if (!player.HasPermission(Permissions.pylon))
{ {
rejectPacket = true; rejectPacket = true;
player.SendErrorMessage("You do not have permission to teleport with pylons."); player.SendErrorMessage("You do not have permission to teleport using pylons.");
return; return;
} }
} }