diff --git a/MareSynchronosServer/MareSynchronosServer/Startup.cs b/MareSynchronosServer/MareSynchronosServer/Startup.cs index 9059a27..fa23961 100644 --- a/MareSynchronosServer/MareSynchronosServer/Startup.cs +++ b/MareSynchronosServer/MareSynchronosServer/Startup.cs @@ -57,7 +57,7 @@ public class Startup Names = { MethodName.Default }, RetryPolicy = new RetryPolicy { - MaxAttempts = 100, + MaxAttempts = 1000, InitialBackoff = TimeSpan.FromSeconds(1), MaxBackoff = TimeSpan.FromSeconds(5), BackoffMultiplier = 1.5, @@ -65,12 +65,6 @@ public class Startup } }; - var identMethodConfig = new MethodConfig - { - Names = { MethodName.Default }, - RetryPolicy = null - }; - services.AddSingleton(new MareMetrics(new List { MetricsAPI.CounterInitializedConnections, @@ -113,7 +107,7 @@ public class Startup c.Address = new Uri(mareConfig.GetValue("ServiceAddress")); }).ConfigureChannel(c => { - c.ServiceConfig = new ServiceConfig { MethodConfigs = { identMethodConfig } }; + c.ServiceConfig = new ServiceConfig { MethodConfigs = { defaultMethodConfig } }; c.HttpHandler = new SocketsHttpHandler() { EnableMultipleHttp2Connections = true diff --git a/MareSynchronosServer/MareSynchronosServices/Discord/DiscordBot.cs b/MareSynchronosServer/MareSynchronosServices/Discord/DiscordBot.cs index cd4bce1..e408bae 100644 --- a/MareSynchronosServer/MareSynchronosServices/Discord/DiscordBot.cs +++ b/MareSynchronosServer/MareSynchronosServices/Discord/DiscordBot.cs @@ -148,8 +148,8 @@ internal class DiscordBot : IHostedService { EmbedBuilder eb = new(); - IUser optionalUser = (IUser?)arg.Data.Options.FirstOrDefault(f => f.Name == "discord_user")?.Value ?? null; - string uid = (string?)arg.Data.Options.FirstOrDefault(f => f.Name == "uid")?.Value ?? null; + string? optionalUser = (string?)arg.Data.Options.FirstOrDefault(f => f.Name == "discord_user")?.Value ?? null; + string? uid = (string?)arg.Data.Options.FirstOrDefault(f => f.Name == "uid")?.Value ?? null; eb = await HandleUserInfo(eb, arg.User.Id, optionalUser, uid); @@ -167,7 +167,7 @@ internal class DiscordBot : IHostedService } } - private async Task HandleUserInfo(EmbedBuilder eb, ulong id, IUser? optionalUser, string? uid) + private async Task HandleUserInfo(EmbedBuilder eb, ulong id, string? optionalUser, string? uid) { using var scope = services.CreateScope(); await using var db = scope.ServiceProvider.GetRequiredService(); @@ -192,9 +192,9 @@ internal class DiscordBot : IHostedService else { LodeStoneAuth userInDb = null; - if (optionalUser != null) + if (optionalUser != null && ulong.TryParse(optionalUser, out ulong optionalUserId)) { - userInDb = await db.LodeStoneAuth.Include(u => u.User).SingleOrDefaultAsync(u => u.DiscordId == optionalUser.Id).ConfigureAwait(false); + userInDb = await db.LodeStoneAuth.Include(u => u.User).SingleOrDefaultAsync(u => u.DiscordId == optionalUserId).ConfigureAwait(false); } else if (uid != null) { @@ -690,7 +690,7 @@ internal class DiscordBot : IHostedService var userInfo = new SlashCommandBuilder(); userInfo.WithName("userinfo"); userInfo.WithDescription("Checks and returns your user information about your Mare account. The parameters are solely for admins, do not use them."); - userInfo.AddOption("discord_user", ApplicationCommandOptionType.User, "Discord User", isRequired: false); + userInfo.AddOption("discord_user", ApplicationCommandOptionType.String, "Discord User", isRequired: false); userInfo.AddOption("uid", ApplicationCommandOptionType.String, "UID", isRequired: false); try diff --git a/MareSynchronosServer/MareSynchronosShared/Services/GrpcBaseService.cs b/MareSynchronosServer/MareSynchronosShared/Services/GrpcBaseService.cs index cc081ea..2c95ef0 100644 --- a/MareSynchronosServer/MareSynchronosShared/Services/GrpcBaseService.cs +++ b/MareSynchronosServer/MareSynchronosShared/Services/GrpcBaseService.cs @@ -72,14 +72,14 @@ public abstract class GrpcBaseService : IHostedService, IDisposable { try { - await CheckFaultStateAndResend().ConfigureAwait(false); + await CheckFaultStateAndRestore().ConfigureAwait(false); } catch { SetGrpcFaulty(); } await Task.Delay(250).ConfigureAwait(false); } } - private async Task CheckFaultStateAndResend() + private async Task CheckFaultStateAndRestore() { if (GrpcIsFaulty) { @@ -96,8 +96,6 @@ public abstract class GrpcBaseService : IHostedService, IDisposable { var result = await toExecute.ConfigureAwait(false); - await CheckFaultStateAndResend().ConfigureAwait(false); - return result; } catch @@ -113,7 +111,7 @@ public abstract class GrpcBaseService : IHostedService, IDisposable try { await toExecute.ConfigureAwait(false); - await CheckFaultStateAndResend().ConfigureAwait(false); + await CheckFaultStateAndRestore().ConfigureAwait(false); } catch {