server-master/srcs/_plugins/WingsEmu.Plugins.PacketHandling/Game/Npc/NrunPacketHandler.cs
2026-02-10 18:21:30 +01:00

31 lines
No EOL
1.1 KiB
C#

using System.Threading.Tasks;
using WingsEmu.Game._NpcDialog.Event;
using WingsEmu.Game.Managers;
using WingsEmu.Game.Networking;
using WingsEmu.Packets.ClientPackets;
namespace WingsEmu.Plugins.PacketHandling.Game.Npc;
public class NrunPacketHandler : GenericGamePacketHandlerBase<NRunPacket>
{
private readonly IItemUsageManager _itemUsageManager;
public NrunPacketHandler(IItemUsageManager itemUsageManager) => _itemUsageManager = itemUsageManager;
protected override async Task HandlePacketAsync(IClientSession session, NRunPacket packet)
{
session.PlayerEntity.LastNRunId = packet.NpcId;
_itemUsageManager.SetLastItemUsed(session.PlayerEntity.Id, 0);
if (session.PlayerEntity.Hp > 0 && session.HasCurrentMapInstance)
{
await session.EmitEventAsync(new NpcDialogEvent
{
NpcRunType = packet.Type,
Argument = packet.Argument,
VisualType = packet.Value,
NpcId = packet.NpcId,
Confirmation = packet.Confirmation
});
}
}
}