TileEntityInteraction - Pass TileEntity object instead of ID in args.

This commit is contained in:
Patrikkk 2020-06-25 01:51:30 +02:00
parent 972483340a
commit 89ab7be0f8
2 changed files with 25 additions and 29 deletions

View file

@ -17,31 +17,24 @@ namespace TShockAPI.Handlers
{
public void OnReceive(object sender, RequestTileEntityInteractionEventArgs args)
{
if (args.TileEntityID != -1)
if (args.TileEntity is TEHatRack && !args.Player.HasBuildPermission(args.TileEntity.Position.X, args.TileEntity.Position.Y, false))
{
TileEntity tileEntity;
if (TileEntity.ByID.TryGetValue(args.TileEntityID, out tileEntity))
{
if (tileEntity is TEHatRack && !args.Player.HasBuildPermission(tileEntity.Position.X, tileEntity.Position.Y, false))
{
args.Player.SendErrorMessage("You do not have permission to modify a Hat Rack in a protected area!");
args.Handled = true;
return;
}
else if (tileEntity is TEDisplayDoll && !args.Player.HasBuildPermission(tileEntity.Position.X, tileEntity.Position.Y, false))
{
args.Player.SendErrorMessage("You do not have permission to modify a Mannequin in a protected area!");
args.Handled = true;
return;
}
else if (!args.Player.HasBuildPermission(tileEntity.Position.X, tileEntity.Position.Y, false))
{
args.Player.SendErrorMessage("You do not have permission to modify a TileEntity in a protected area!");
TShock.Log.ConsoleDebug($"RequestTileEntityInteractionHandler: Rejected packet due to lack of building permissions! - From {args.Player.Name} | Position X:{tileEntity.Position.X} Y:{tileEntity.Position.Y}, TileEntity type: {tileEntity.type}, Tile type: {Main.tile[tileEntity.Position.X, tileEntity.Position.Y].type}");
args.Handled = true;
return;
}
}
args.Player.SendErrorMessage("You do not have permission to modify a Hat Rack in a protected area!");
args.Handled = true;
return;
}
else if (args.TileEntity is TEDisplayDoll && !args.Player.HasBuildPermission(args.TileEntity.Position.X, args.TileEntity.Position.Y, false))
{
args.Player.SendErrorMessage("You do not have permission to modify a Mannequin in a protected area!");
args.Handled = true;
return;
}
else if (!args.Player.HasBuildPermission(args.TileEntity.Position.X, args.TileEntity.Position.Y, false))
{
args.Player.SendErrorMessage("You do not have permission to modify a TileEntity in a protected area!");
TShock.Log.ConsoleDebug($"RequestTileEntityInteractionHandler: Rejected packet due to lack of building permissions! - From {args.Player.Name} | Position X:{args.TileEntity.Position.X} Y:{args.TileEntity.Position.Y}, TileEntity type: {args.TileEntity.type}, Tile type: {Main.tile[args.TileEntity.Position.X, args.TileEntity.Position.Y].type}");
args.Handled = true;
return;
}
}
}