Merge branch 'general-devel' into displaydollsynchook

This commit is contained in:
Patrikkk 2020-06-25 01:42:58 +02:00 committed by GitHub
commit b70f4fe96e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 9 deletions

View file

@ -22,10 +22,15 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
* Adding GolfBallItemIDs list in Handlers.LandGolfBallInCupHandler.cs
* Fixed an issue in the SendTileSquare handler that was rejecting valid tile objects (@QuiCM)
* Fixed the issue where players were unable to place regular ropes because of the valid placement being caught in Bouncer OnTileEdit. (@Patrikkk)
* Added pet license usage permissions to `trustedadmin` and `owner` groups. Do note that this has a high network usage and can be easily be abused so it is not recommended to give out this permission to lower level groups. (@moisterrific)
* 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)
* 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)
* Multiple modifications in Command.cs (@Patrikkk)
* `/itemban` - `/projban` - `/tileban` - Added a `default:` case to the commands so an invalid subcommand promts the player to enter the help subcommand to get more information on valid subcommands. (@Patrikkk)
* `/world` - Renamed to /worldinfo to be more accurate to it's function. Command now displays the world's `Seed`. Reformatted the world information so each line isn't repeatedly starting with "World". (@Patrikkk)
* `/who` - Changed the display format of the online players when the `-i` flag is used. From `PlayerName (ID: 0, ID: 0)` to `PlayerName (Index: 0, Account ID: 0)` for clarification. (@Patrikkk)
* Adding DisplayDollItemSync event. An event that is called when a player modifies the slot of a DisplayDoll (Mannequin). This event provides information about the current item in the displaydoll, as well as the item that the player is about to set. (@Patrikkk)
* Adding DisplayDollItemSyncHandler, which checks for building permissions of the player at the position of the DisplayDoll. (If they do not have permissions, it means they are hacking as they could not even open the doll in the first place.) (@Patrikkk)

View file

@ -521,7 +521,7 @@ namespace TShockAPI
{
HelpText = "Changes the wind speed."
});
add(new Command(Permissions.worldinfo, WorldInfo, "world")
add(new Command(Permissions.worldinfo, WorldInfo, "worldinfo")
{
HelpText = "Shows information about the current world."
});
@ -1155,9 +1155,11 @@ namespace TShockAPI
private static void WorldInfo(CommandArgs args)
{
args.Player.SendInfoMessage("World name: " + (TShock.Config.UseServerName ? TShock.Config.ServerName : Main.worldName));
args.Player.SendInfoMessage("World size: {0}x{1}", Main.maxTilesX, Main.maxTilesY);
args.Player.SendInfoMessage("World ID: " + Main.worldID);
args.Player.SendInfoMessage("Information of the currently running world");
args.Player.SendInfoMessage("Name: " + (TShock.Config.UseServerName ? TShock.Config.ServerName : Main.worldName));
args.Player.SendInfoMessage("Size: {0}x{1}", Main.maxTilesX, Main.maxTilesY);
args.Player.SendInfoMessage("ID: " + Main.worldID);
args.Player.SendInfoMessage("Seed: " + WorldGen.currentWorldSeed);
}
#endregion
@ -3749,6 +3751,14 @@ namespace TShockAPI
}
#endregion
return;
default:
#region Default
{
args.Player.SendErrorMessage("Invalid subcommand! Type {0}itemban help for more information on valid subcommands.", Specifier);
}
#endregion
return;
}
}
#endregion Item Management
@ -3919,6 +3929,13 @@ namespace TShockAPI
}
#endregion
return;
default:
#region Default
{
args.Player.SendErrorMessage("Invalid subcommand! Type {0}projban help for more information on valid subcommands.", Specifier);
}
#endregion
return;
}
}
#endregion Projectile Management
@ -4088,6 +4105,13 @@ namespace TShockAPI
}
#endregion
return;
default:
#region Default
{
args.Player.SendErrorMessage("Invalid subcommand! Type {0}tileban help for more information on valid subcommands.", Specifier);
}
#endregion
return;
}
}
#endregion Tile Management
@ -5066,7 +5090,7 @@ namespace TShockAPI
{
if (displayIdsRequested)
{
players.Add(String.Format("{0} (ID: {1}{2})", ply.Name, ply.Index, ply.Account != null ? ", ID: " + ply.Account.ID : ""));
players.Add(String.Format("{0} (Index: {1}{2})", ply.Name, ply.Index, ply.Account != null ? ", Account ID: " + ply.Account.ID : ""));
}
else
{

View file

@ -77,7 +77,7 @@ namespace TShockAPI.DB
Permissions.whisper,
Permissions.wormhole,
Permissions.canpaint,
Permissions.pylon));
Permissions.pylon));
AddDefaultGroup("vip", "default",
string.Join(",",
@ -125,7 +125,7 @@ namespace TShockAPI.DB
Permissions.tppos,
Permissions.tpsilent,
Permissions.userinfo,
Permissions.spawn));
Permissions.spawn));
AddDefaultGroup("trustedadmin", "admin",
string.Join(",",
@ -158,7 +158,8 @@ namespace TShockAPI.DB
Permissions.startdd2,
Permissions.uploaddata,
Permissions.uploadothersdata,
Permissions.journey_timefreeze,
Permissions.spawnpets,
Permissions.journey_timefreeze,
Permissions.journey_timeset,
Permissions.journey_timespeed,
Permissions.journey_godmode,
@ -170,7 +171,7 @@ namespace TShockAPI.DB
Permissions.journey_setdifficulty,
Permissions.journey_biomespreadfreeze,
Permissions.journey_setspawnrate,
Permissions.journey_contributeresearch));
Permissions.journey_contributeresearch));
AddDefaultGroup("owner", "trustedadmin",
string.Join(",",