add new synchro slots, fix synchro state not saving

This commit is contained in:
Kyle873
2024-12-22 00:13:38 -05:00
parent e2ca6f7ec3
commit 2f7c12713c
3 changed files with 57 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
using EpinelPS.Utils;
using EpinelPS.Database;
using EpinelPS.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -48,6 +49,9 @@ namespace EpinelPS.LobbyServer.Character
{
response.Slots.Add(new NetSynchroSlot() { Slot = item.Slot, AvailableRegisterAt = item.AvailableAt, Csn = item.CharacterSerialNumber });
}
JsonDb.Save();
await WriteDataAsync(response);
}
}

View File

@@ -1,4 +1,5 @@
using EpinelPS.Utils;
using EpinelPS.Database;
using EpinelPS.Utils;
namespace EpinelPS.LobbyServer.Character
{
@@ -41,6 +42,7 @@ namespace EpinelPS.LobbyServer.Character
}
}
JsonDb.Save();
await WriteDataAsync(response);
}

View File

@@ -0,0 +1,49 @@
using EpinelPS.Database;
using EpinelPS.Utils;
namespace EpinelPS.LobbyServer.Character
{
[PacketPath("/character/synchrodevice/addslot")]
public class SynchroAddSlot : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<ReqSynchroAddSlot>();
var user = GetUser();
var response = new ResSynchroAddSlot();
var slot = user.SynchroSlots.FirstOrDefault(x => x.Slot == req.Slot);
if (slot != null)
{
response.Slot = new NetSynchroSlot
{
Csn = slot.CharacterSerialNumber,
Slot = slot.Slot,
AvailableRegisterAt = slot.AvailableAt
};
}
else
{
var newSlot = new NetSynchroSlot
{
Csn = 0,
Slot = req.Slot,
AvailableRegisterAt = 0
};
user.SynchroSlots.Add(new SynchroSlot()
{
Slot = newSlot.Slot,
CharacterSerialNumber = newSlot.Csn,
AvailableAt = newSlot.AvailableRegisterAt
});
response.Slot = newSlot;
}
JsonDb.Save();
await WriteDataAsync(response);
}
}
}