From 4fdd0936447592abdfccd841c4728595f43f1d78 Mon Sep 17 00:00:00 2001 From: Kei-Luna Date: Sun, 24 May 2026 07:44:10 +0900 Subject: [PATCH] Lineups_Update --- .../CallGS/Handlers/Lineup/Lineups_Update.cs | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 GameServer/Server/CallGS/Handlers/Lineup/Lineups_Update.cs diff --git a/GameServer/Server/CallGS/Handlers/Lineup/Lineups_Update.cs b/GameServer/Server/CallGS/Handlers/Lineup/Lineups_Update.cs new file mode 100644 index 0000000..80b892f --- /dev/null +++ b/GameServer/Server/CallGS/Handlers/Lineup/Lineups_Update.cs @@ -0,0 +1,43 @@ +using MikuSB.Database; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace MikuSB.GameServer.Server.CallGS.Handlers.Lineup; + +[CallGSApi("Lineups_Update")] +public class Lineups_Update : ICallGSHandler +{ + public async Task Handle(Connection connection, string param, ushort seqNo) + { + var req = JsonSerializer.Deserialize>(param); + if (req == null) + { + await CallGSRouter.SendScript(connection, "UpdateLineup", "{}"); + return; + } + + foreach (var lineup in req) + { + if (lineup == null) + continue; + + await connection.Player!.LineupManager.UpdateLineup( + lineup.Index, + lineup.Member1, + lineup.Member2, + lineup.Member3); + } + + DatabaseHelper.SaveDatabaseType(connection.Player!.LineupManager.LineupData); + await CallGSRouter.SendScript(connection, "UpdateLineup", "{}"); + } +} + +internal sealed class LineupUpdateBatchParam +{ + [JsonPropertyName("name")] public string Name { get; set; } = ""; + [JsonPropertyName("index")] public int Index { get; set; } + [JsonPropertyName("member1")] public uint Member1 { get; set; } + [JsonPropertyName("member2")] public uint Member2 { get; set; } + [JsonPropertyName("member3")] public uint Member3 { get; set; } +}