Add RequestTileEntityInteractionHandler. Check Mannequin modif perms.
Users can no longer open a Mannequin if they do not have building permissions at the position of the Mannequin. (Mannequins work as a chest since 1.4)
This commit is contained in:
parent
3012c92370
commit
c418dda42c
3 changed files with 43 additions and 1 deletions
37
TShockAPI/Handlers/RequestTileEntityInteractionHandler.cs
Normal file
37
TShockAPI/Handlers/RequestTileEntityInteractionHandler.cs
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Terraria.DataStructures;
|
||||
using Terraria.GameContent.Tile_Entities;
|
||||
using static TShockAPI.GetDataHandlers;
|
||||
|
||||
namespace TShockAPI.Handlers
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class RequestTileEntityInteractionHandler : IPacketHandler<RequestTileEntityInteractionEventArgs>
|
||||
{
|
||||
public void OnReceive(object sender, RequestTileEntityInteractionEventArgs args)
|
||||
{
|
||||
if (args.TileEntityID != -1)
|
||||
{
|
||||
TileEntity tileEntity;
|
||||
if (TileEntity.ByID.TryGetValue(args.TileEntityID, out tileEntity))
|
||||
{
|
||||
if (tileEntity is TEDisplayDoll)
|
||||
{
|
||||
if (!args.Player.HasBuildPermission(tileEntity.Position.X, tileEntity.Position.Y, false))
|
||||
{
|
||||
args.Player.SendErrorMessage("You have no permission to modify a Mannequin in a protected area!");
|
||||
args.Handled = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue