diff --git a/EmperorPalpatine/DiscordCommands.cs b/EmperorPalpatine/DiscordCommands.cs index dc32740..2a7077f 100644 --- a/EmperorPalpatine/DiscordCommands.cs +++ b/EmperorPalpatine/DiscordCommands.cs @@ -176,7 +176,15 @@ public class DiscordCommands : ApplicationCommandModule foreach (var vm in vms) { if (!vm.cvm.ConnectedToVM || vm.cvm.Users.All(u => u.Username != username)) continue; - var ip = await vm.cvm.GetIP(username); + string ip; + try + { + ip = await vm.cvm.GetIP(username); + } + catch (TimeoutException ex) + { + continue; + } var ipinfo = await Program.IPinfo.IPApi.GetDetailsAsync(ip); IPEmbeds.Add(new DiscordEmbedBuilder() .WithAuthor(username) diff --git a/EmperorPalpatine/VM.cs b/EmperorPalpatine/VM.cs index 9ddf8fd..eabc6be 100644 --- a/EmperorPalpatine/VM.cs +++ b/EmperorPalpatine/VM.cs @@ -113,10 +113,19 @@ public class VM await cvm.Ban(e.Username); break; } + string ip; + try + { + ip = await cvm.GetIP(username); + } + catch (TimeoutException ex) + { + ip = "unknown"; + } MessageIncident.Invoke(this, new MessageIncident { FilterDescription = filter.Description, - IP = await cvm.GetIP(e.Username), + IP = ip, Message = e.Message, Punishment = filter.Punishment, Username = e.Username, @@ -128,8 +137,16 @@ public class VM private async Task CheckUsername(User user) { - var ip = await cvm.GetIP(user.Username); - await database.LogIPAsync(Config.Name, user.Username, IPAddress.Parse(ip)); + string ip; + try + { + ip = await cvm.GetIP(username); + await database.LogIPAsync(Config.Name, user.Username, IPAddress.Parse(ip)); + } + catch (TimeoutException ex) + { + ip = "unknown"; + } if (user.Rank != Rank.Unregistered) return; foreach (var filter in Program.Filters.Where(f => f.CheckUsername)) { @@ -140,7 +157,7 @@ public class VM UsernameIncident.Invoke(this, new UsernameIncident { FilterDescription = filter.Description, - IP = await cvm.GetIP(user.Username), + IP = ip, Username = user.Username, VM = Config.Name });