try to counter the hug of death

This commit is contained in:
Stanley Dimant
2022-08-02 23:26:36 +02:00
parent ee0ccdf0cb
commit bcb4f6565e

View File

@@ -52,6 +52,12 @@ namespace MareSynchronosServer.Discord
{ {
if (arg.Data.Name == "register") if (arg.Data.Name == "register")
{ {
if (DiscordLodestoneMapping.Count > 10)
{
await arg.RespondAsync("The bot registrations are currently overloaded. Please wait a few minutes and try again.", ephemeral: true);
return;
}
if (arg.Data.Options.FirstOrDefault(f => f.Name == "overwrite_old_account") != null) if (arg.Data.Options.FirstOrDefault(f => f.Name == "overwrite_old_account") != null)
{ {
await DeletePreviousUserAccount(arg.User.Id); await DeletePreviousUserAccount(arg.User.Id);
@@ -117,7 +123,9 @@ namespace MareSynchronosServer.Discord
{ {
Random rand = new(); Random rand = new();
var randomServer = LodestoneServers[rand.Next(LodestoneServers.Length)]; var randomServer = LodestoneServers[rand.Next(LodestoneServers.Length)];
var response = await req.GetAsync($"https://{randomServer}.finalfantasyxiv.com/lodestone/character/{DiscordLodestoneMapping[id]}"); CancellationTokenSource cts = new CancellationTokenSource();
cts.CancelAfter(TimeSpan.FromSeconds(2));
var response = await req.GetAsync($"https://{randomServer}.finalfantasyxiv.com/lodestone/character/{DiscordLodestoneMapping[id]}", cts.Token);
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{ {
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
@@ -188,7 +196,7 @@ namespace MareSynchronosServer.Discord
else else
{ {
embedBuilder.WithTitle("Failed to get response from Lodestone"); embedBuilder.WithTitle("Failed to get response from Lodestone");
embedBuilder.WithDescription("Try again later"); embedBuilder.WithDescription("Wait a few seconds and try again.");
lodestoneAuth.StartedAt = DateTime.UtcNow; lodestoneAuth.StartedAt = DateTime.UtcNow;
} }