Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions TShockAPI/Bouncer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ internal sealed class Bouncer
internal Handlers.EmojiHandler EmojiHandler { get; private set; }
internal Handlers.IllegalPerSe.EmojiPlayerMismatch EmojiPlayerMismatch { get; private set; }
internal Handlers.DisplayDollItemSyncHandler DisplayDollItemSyncHandler { get; private set; }
internal Handlers.DisplayDollPoseSyncHandler DisplayDollPoseSyncHandler { get; private set; }
internal Handlers.RequestTileEntityInteractionHandler RequestTileEntityInteractionHandler { get; private set; }
internal Handlers.LandGolfBallInCupHandler LandGolfBallInCupHandler { get; private set; }
internal Handlers.SyncTilePickingHandler SyncTilePickingHandler { get; private set; }
Expand Down Expand Up @@ -99,6 +100,9 @@ internal Bouncer()
DisplayDollItemSyncHandler = new Handlers.DisplayDollItemSyncHandler();
GetDataHandlers.DisplayDollItemSync += DisplayDollItemSyncHandler.OnReceive;

DisplayDollPoseSyncHandler = new Handlers.DisplayDollPoseSyncHandler();
GetDataHandlers.DisplayDollPoseSync += DisplayDollPoseSyncHandler.OnReceive;

RequestTileEntityInteractionHandler = new Handlers.RequestTileEntityInteractionHandler();
GetDataHandlers.RequestTileEntityInteraction += RequestTileEntityInteractionHandler.OnReceive;

Expand Down
7 changes: 6 additions & 1 deletion TShockAPI/GetDataHandlers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2168,10 +2168,15 @@ public enum DisplayDollInventoryID
/// </summary>
Dyes = 1,

/// <summary>
/// The ID of the pose. Not actually an item inventory.
/// </summary>
Pose = 2,

/// <summary>
/// The ID of the inventory holding the miscellaneous items (mounts, pets, etc.).
/// </summary>
Misc = 2,
Misc = 3
Comment thread
ACaiCat marked this conversation as resolved.
}
/// <summary>
/// For use in a TileEntityDisplayDollItemSync event.
Expand Down
27 changes: 27 additions & 0 deletions TShockAPI/Handlers/DisplayDollPoseSyncHandler.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
Comment thread
ACaiCat marked this conversation as resolved.
using static TShockAPI.GetDataHandlers;

namespace TShockAPI.Handlers
{
/// <summary>
/// Handles the TileEntityDisplayDollPoseSync packets and checks for permissions.
/// </summary>
public class DisplayDollPoseSyncHandler : IPacketHandler<DisplayDollPoseSyncEventArgs>
{
public void OnReceive(object sender, DisplayDollPoseSyncEventArgs args)
{
if (!args.Player.HasBuildPermission(args.DisplayDollEntity.Position.X, args.DisplayDollEntity.Position.Y, false))
{
args.Player.SendErrorMessage(GetString("You do not have permission to modify a Mannequin in a protected area!"));
// Note - itemIndex is unused, so it remains 0 here.
args.Player.SendData(PacketTypes.TileEntityDisplayDollItemSync, "", 255, args.TileEntityID, 0, (int)DisplayDollInventoryID.Pose);
Comment thread
ACaiCat marked this conversation as resolved.
args.Handled = true;
return;
}
}
}
}
Loading