Merge branch 'general-devel' into 1.4

This commit is contained in:
Lucas Nicodemus 2020-05-17 11:14:42 -07:00
commit 96468871a0
No known key found for this signature in database
GPG key ID: A07BD9023D1664DB
3 changed files with 124 additions and 9 deletions

View file

@ -297,15 +297,7 @@ namespace TShockAPI
return;
}
// Using the actuation accessory can lead to actuator hacking
if (TShock.Itembans.ItemIsBanned("Actuator", args.Player) && args.Player.TPlayer.autoActuator)
{
args.Player.SendTileSquare(tileX, tileY, 1);
args.Player.SendErrorMessage("You do not have permission to place actuators.");
args.Handled = true;
return;
}
if (TShock.Itembans.ItemIsBanned(EnglishLanguage.GetItemNameById(selectedItem.netID), args.Player) || editData >= (action == EditAction.PlaceTile ? Main.maxTileSets : Main.maxWallTypes))
if (editData >= (action == EditAction.PlaceTile ? Main.maxTileSets : Main.maxWallTypes))
{
args.Player.SendTileSquare(tileX, tileY, 4);
args.Handled = true;

View file

@ -59,6 +59,7 @@ namespace TShockAPI
ServerApi.Hooks.GameUpdate.Register(plugin, OnGameUpdate);
GetDataHandlers.PlayerUpdate += OnPlayerUpdate;
GetDataHandlers.ChestItemChange += OnChestItemChange;
GetDataHandlers.TileEdit += OnTileEdit;
}
/// <summary>Called on the game update loop (the XNA tickrate).</summary>
@ -192,6 +193,27 @@ namespace TShockAPI
return;
}
internal void OnTileEdit(object sender, TileEditEventArgs args)
{
if (args.Action == EditAction.PlaceTile || args.Action == EditAction.PlaceWall)
{
if (args.Player.TPlayer.autoActuator && DataModel.ItemIsBanned("Actuator", args.Player))
{
args.Player.SendTileSquare(args.X, args.Y, 1);
args.Player.SendErrorMessage("You do not have permission to place actuators.");
args.Handled = true;
return;
}
if (DataModel.ItemIsBanned(EnglishLanguage.GetItemNameById(args.Player.SelectedItem.netID), args.Player))
{
args.Player.SendTileSquare(args.X, args.Y, 4);
args.Handled = true;
return;
}
}
}
private void UnTaint(TSPlayer player)
{
player.IsDisabledForBannedWearable = false;