Files
EpinelPS/nksrv/LobbyServer/Msgs/Inventory/WearEquipment.cs
2024-07-26 14:12:30 -04:00

45 lines
1.1 KiB
C#

using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Inventory
{
[PacketPath("/inventory/wearequipment")]
public class WearEquipment : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<ReqWearEquipment>();
var user = GetUser();
var response = new ResWearEquipment();
var pos = NetUtils.GetItemPos(user, req.Isn);
// unequip old item
foreach (var item in user.Items.ToArray())
{
if (item.Csn == req.Csn && item.Position == pos)
{
item.Csn = 0;
}
}
foreach (var item in user.Items.ToArray())
{
if (item.Isn == req.Isn)
{
// update character id
item.Csn = req.Csn;
item.Position = pos;
response.Items.Add(NetUtils.ToNet(item));
break;
}
}
JsonDb.Save();
await WriteDataAsync(response);
}
}
}