mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-15 00:14:48 +01:00
Fix add slots in synchro device. (#49)
This commit is contained in:
39
EpinelPS/LobbyServer/Character/SynchroAddSlotByItem.cs
Normal file
39
EpinelPS/LobbyServer/Character/SynchroAddSlotByItem.cs
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
using EpinelPS.Database;
|
||||||
|
using EpinelPS.Utils;
|
||||||
|
|
||||||
|
namespace EpinelPS.LobbyServer.Character
|
||||||
|
{
|
||||||
|
[PacketPath("/character/synchrodevice/addslotbyitem")]
|
||||||
|
public class SynchroAddSlotByItem : LobbyMsgHandler
|
||||||
|
{
|
||||||
|
protected override async Task HandleAsync()
|
||||||
|
{
|
||||||
|
// Broken protocol so we didn't validate request data.
|
||||||
|
// May fix later.
|
||||||
|
ReqSynchroAddSlot req = await ReadData<ReqSynchroAddSlot>();
|
||||||
|
|
||||||
|
User user = GetUser();
|
||||||
|
ResSynchroAddSlot response = new();
|
||||||
|
|
||||||
|
NetSynchroSlot newSlot = new()
|
||||||
|
{
|
||||||
|
Csn = 0,
|
||||||
|
Slot = user.SynchroSlots.Last().Slot + 1, // any upper bound?
|
||||||
|
AvailableRegisterAt = 0
|
||||||
|
};
|
||||||
|
|
||||||
|
user.SynchroSlots.Add(new SynchroSlot()
|
||||||
|
{
|
||||||
|
Slot = newSlot.Slot,
|
||||||
|
CharacterSerialNumber = newSlot.Csn,
|
||||||
|
AvailableAt = newSlot.AvailableRegisterAt
|
||||||
|
});
|
||||||
|
|
||||||
|
response.Slot = newSlot;
|
||||||
|
|
||||||
|
JsonDb.Save();
|
||||||
|
|
||||||
|
await WriteDataAsync(response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user