Implement saving settings

This commit is contained in:
Kei-Luna
2026-05-09 20:03:28 +09:00
parent 7507d10072
commit bdb4ee3d51
11 changed files with 110 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
using MikuSB.Database.Player;
using MikuSB.Database;
using MikuSB.Database.Player;
using MikuSB.Proto;
namespace MikuSB.GameServer.Server.Packet.Recv.Login;
@@ -12,7 +13,11 @@ public class HandlerNtfSetAttr : Handler
var player = connection.Player!;
var attr = player.Data.Attrs
.FirstOrDefault(x => x.Gid == req.Gid && x.Sid == req.Sid);
if (attr != null) attr.Val = req.Val;
if (attr != null)
{
attr.Val = req.Val;
}
else
{
player.Data.Attrs.Add(new PlayerAttr
@@ -22,6 +27,7 @@ public class HandlerNtfSetAttr : Handler
Val = req.Val
});
}
DatabaseHelper.SaveDatabaseType(player.Data);
await player.OnHeartBeat();
}
}

View File

@@ -0,0 +1,19 @@
using MikuSB.Database;
using MikuSB.Proto;
namespace MikuSB.GameServer.Server.Packet.Recv.Login;
[Opcode(CmdIds.NtfSetStrAttr)]
public class HandlerNtfSetStrAttr : Handler
{
public override async Task OnHandle(Connection connection, byte[] data, ushort seqNo)
{
var req = NtfSetStrAttr.Parser.ParseFrom(data);
var player = connection.Player!;
player.SetStrAttr(req.Gid, req.Sid, req.Val);
DatabaseHelper.SaveDatabaseType(player.Data);
await player.OnHeartBeat();
}
}