diff --git a/Lagrange.OneBot/Core/Login/LoginService.cs b/Lagrange.OneBot/Core/Login/LoginService.cs index 9114f4699..b38b9df45 100644 --- a/Lagrange.OneBot/Core/Login/LoginService.cs +++ b/Lagrange.OneBot/Core/Login/LoginService.cs @@ -1,3 +1,4 @@ +using System.Text.Json; using Lagrange.Core; using Lagrange.Core.Common.Interface.Api; using Lagrange.Core.Event.EventArg; @@ -57,6 +58,9 @@ public async Task StartAsync(CancellationToken token) if (!isSucceed) throw new Exception("All login failed!"); + string keystoreJson = JsonSerializer.Serialize(_lagrange.UpdateKeystore()); + File.WriteAllText(configuration["ConfigPath:Keystore"] ?? "keystore.json", keystoreJson); + _logger.LogInformation("Bot Uin: {}", _lagrange.BotUin); await _web.StartAsync(token); diff --git a/Lagrange.OneBot/Extensions/HostApplicationBuilderExtension.cs b/Lagrange.OneBot/Extensions/HostApplicationBuilderExtension.cs index 33478f2e8..63c45f1e9 100644 --- a/Lagrange.OneBot/Extensions/HostApplicationBuilderExtension.cs +++ b/Lagrange.OneBot/Extensions/HostApplicationBuilderExtension.cs @@ -48,9 +48,14 @@ public static HostApplicationBuilder ConfigureLagrangeCore(this HostApplicationB var configuration = services.GetRequiredService(); string path = configuration["ConfigPath:DeviceInfo"] ?? "device.json"; - return File.Exists(path) + var device = File.Exists(path) ? JsonSerializer.Deserialize(File.ReadAllText(path)) ?? BotDeviceInfo.GenerateInfo() : BotDeviceInfo.GenerateInfo(); + + string deviceJson = JsonSerializer.Serialize(device); + File.WriteAllText(path, deviceJson); + + return device; }) .AddSingleton((services) => // Keystore {