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

48 lines
1.3 KiB
C#

using nksrv.Database;
using nksrv.Utils;
namespace nksrv.LobbyServer.Msgs.Inventory
{
[PacketPath("/inventory/wearequipmentlist")]
public class WearEquipmentList : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<ReqWearEquipmentList>();
var user = GetUser();
var response = new ResWearEquipmentList();
// TODO optimize
foreach (var item2 in req.IsnList)
{
var pos = NetUtils.GetItemPos(user, item2);
// unequip previous items
foreach (var item in user.Items.ToArray())
{
if (item.Position == pos && item.Csn == req.Csn)
{
item.Csn = 0;
item.Position = 0;
}
}
foreach (var item in user.Items.ToArray())
{
if (item2 == item.Isn)
{
item.Csn = req.Csn;
item.Position = pos;
response.Items.Add(NetUtils.ToNet(item));
}
}
}
JsonDb.Save();
await WriteDataAsync(response);
}
}
}