42 lines
No EOL
998 B
C#
42 lines
No EOL
998 B
C#
using System.Threading.Tasks;
|
|
using PhoenixLib.Logging;
|
|
using WingsEmu.Game._Guri;
|
|
using WingsEmu.Game._Guri.Event;
|
|
using WingsEmu.Game.Characters.Events;
|
|
using WingsEmu.Game.Inventory;
|
|
using WingsEmu.Game.Networking;
|
|
using WingsEmu.Packets.Enums;
|
|
|
|
namespace WingsEmu.Plugins.BasicImplementations.Guri;
|
|
|
|
public class UseBoxGuriHandler : IGuriHandler
|
|
{
|
|
public long GuriEffectId => 300;
|
|
|
|
public async Task ExecuteAsync(IClientSession session, GuriEvent guriPacket)
|
|
{
|
|
if (guriPacket.Data != 8023)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (guriPacket.User == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
short slot = (short)guriPacket.User.Value;
|
|
InventoryItem box = session.PlayerEntity.GetItemBySlotAndType(slot, InventoryType.Equipment);
|
|
|
|
if (box == null)
|
|
{
|
|
Log.Info("No box");
|
|
return;
|
|
}
|
|
|
|
await session.EmitEventAsync(new RollItemBoxEvent
|
|
{
|
|
Item = box
|
|
});
|
|
}
|
|
} |