public static DiscordColor BuildLureColor(this PokestopLureType lureType, DiscordServerConfig server) { string color; switch (lureType) { case PokestopLureType.Normal: color = server.DiscordEmbedColors.Pokestops.Lures.Normal; break; case PokestopLureType.Glacial: color = server.DiscordEmbedColors.Pokestops.Lures.Glacial; break; case PokestopLureType.Mossy: color = server.DiscordEmbedColors.Pokestops.Lures.Mossy; break; case PokestopLureType.Magnetic: color = server.DiscordEmbedColors.Pokestops.Lures.Magnetic; break; default: return(DiscordColor.White); } return(new DiscordColor(color)); }
public static DiscordColor BuildPokemonPvPColor(this int rank, DiscordServerConfig server) { if (rank <= 0) { return(DiscordColor.White); } var color = server.DiscordEmbedColors.Pokemon.PvP.FirstOrDefault(x => rank >= x.Minimum && rank <= x.Maximum); return(new DiscordColor(color.Color)); }
public static DiscordColor BuildPokemonIVColor(this string iv, DiscordServerConfig server) { if (!double.TryParse(iv.Substring(0, iv.Length - 1), out var result)) { return(DiscordColor.White); } var color = server.DiscordEmbedColors.Pokemon.IV.FirstOrDefault(x => result >= x.Minimum && result <= x.Maximum); return(new DiscordColor(color.Color)); }
private async Task PruneQuestChannels(DiscordClient client, DiscordServerConfig server) { try { var channelIds = server.QuestChannelIds; _logger.Debug($"Quest channel pruning started for {channelIds.Count:N0} channels..."); for (var j = 0; j < channelIds.Count; j++) { var result = await client.DeleteMessages(channelIds[j]); _logger.Debug($"Deleted all {result.Item2:N0} quest messages from channel {result.Item1.Name}."); Thread.Sleep(1000); } _logger.Debug($"Finished automatic quest messages cleanup..."); } catch (Exception ex) { _logger.Error(ex); } }
public static DiscordColor BuildRaidColor(this int level, DiscordServerConfig server) { if (level == 0) { return(DiscordColor.White); } var color = string.Empty; switch (level) { case 1: color = server.DiscordEmbedColors.Raids.Level1; break; case 2: color = server.DiscordEmbedColors.Raids.Level2; break; case 3: color = server.DiscordEmbedColors.Raids.Level3; break; case 4: color = server.DiscordEmbedColors.Raids.Level4; break; case 5: color = server.DiscordEmbedColors.Raids.Level5; break; case 6: color = server.DiscordEmbedColors.Raids.Level6; break; default: color = server.DiscordEmbedColors.Raids.Ex; break; } return(new DiscordColor(color)); }
public static DiscordColor BuildWeatherColor(this WeatherType weather, DiscordServerConfig server) { var color = "#808080"; switch (weather) { case WeatherType.Clear: color = server.DiscordEmbedColors.Weather.Clear; break; case WeatherType.Cloudy: color = server.DiscordEmbedColors.Weather.Cloudy; break; case WeatherType.Fog: color = server.DiscordEmbedColors.Weather.Fog; break; case WeatherType.PartlyCloudy: color = server.DiscordEmbedColors.Weather.PartlyCloudy; break; case WeatherType.Rain: color = server.DiscordEmbedColors.Weather.Rain; break; case WeatherType.Snow: color = server.DiscordEmbedColors.Weather.Snow; break; case WeatherType.Windy: color = server.DiscordEmbedColors.Weather.Windy; break; } return(new DiscordColor(color)); }
private DiscordColor GetPvPColor(List <PVPRank> greatLeague, List <PVPRank> ultraLeague, DiscordServerConfig server) { if (greatLeague != null) { greatLeague.Sort((x, y) => (x.Rank ?? 0).CompareTo(y.Rank ?? 0)); } if (ultraLeague != null) { ultraLeague.Sort((x, y) => (x.Rank ?? 0).CompareTo(y.Rank ?? 0)); } var greatRank = greatLeague.FirstOrDefault(x => x.Rank > 0 && x.Rank <= 25 && x.CP >= Strings.MinimumGreatLeagueCP && x.CP <= Strings.MaximumGreatLeagueCP); var ultraRank = ultraLeague.FirstOrDefault(x => x.Rank > 0 && x.Rank <= 25 && x.CP >= Strings.MinimumUltraLeagueCP && x.CP <= Strings.MaximumUltraLeagueCP); var color = server.DiscordEmbedColors.Pokemon.PvP.FirstOrDefault(x => ((greatRank?.Rank ?? 0) >= x.Minimum && (greatRank?.Rank ?? 0) <= x.Maximum) || ((ultraRank?.Rank ?? 0) >= x.Minimum && (ultraRank?.Rank ?? 0) <= x.Maximum)); if (color == null) { return(DiscordColor.White); } return(new DiscordColor(color.Color)); }
private async Task PostShinyStats(DiscordClient client, ulong guildId, DiscordServerConfig server) { var statsChannel = await client.GetChannelAsync(server.ShinyStats.ChannelId); if (statsChannel == null) { _logger.Warn($"Unable to get channel id {server.ShinyStats.ChannelId} to post shiny stats."); return; } if (server.ShinyStats.ClearMessages) { _logger.Debug($"Deleting previous shiny stats messages in channel {server.ShinyStats.ChannelId}"); await client.DeleteMessages(server.ShinyStats.ChannelId); } //var guildId = server.GuildId; _logger.Debug($"Posting shiny stats for guild {client.Guilds[guildId].Name} ({guildId}) in channel {server.ShinyStats.ChannelId}"); // Subtract an hour to make sure it shows yesterday's date. await statsChannel.SendMessageAsync(Translator.Instance.Translate("SHINY_STATS_TITLE").FormatText(DateTime.Now.Subtract(TimeSpan.FromHours(1)).ToLongDateString())); Thread.Sleep(500); await statsChannel.SendMessageAsync(Translator.Instance.Translate("SHINY_STATS_NEWLINE")); var stats = await ShinyStats.GetShinyStats(_whConfig.Instance.Database.Scanner.ToString()); if (stats == null) { _logger.Error($"Failed to get list of shiny stats for guild {guildId}, skipping..."); return; } var sorted = stats.Keys.ToList(); sorted.Sort(); foreach (var pokemon in sorted) { if (pokemon == 0) { continue; } if (!MasterFile.Instance.Pokedex.ContainsKey((int)pokemon)) { continue; } var pkmn = MasterFile.Instance.Pokedex[(int)pokemon]; var pkmnStats = stats[pokemon]; var chance = pkmnStats.Shiny == 0 || pkmnStats.Total == 0 ? 0 : Convert.ToInt32(pkmnStats.Total / pkmnStats.Shiny); if (chance == 0) { await statsChannel.SendMessageAsync(Translator.Instance.Translate("SHINY_STATS_MESSAGE").FormatText(pkmn.Name, pokemon, pkmnStats.Shiny.ToString("N0"), pkmnStats.Total.ToString("N0"))); } else { await statsChannel.SendMessageAsync(Translator.Instance.Translate("SHINY_STATS_MESSAGE_WITH_RATIO").FormatText(pkmn.Name, pokemon, pkmnStats.Shiny.ToString("N0"), pkmnStats.Total.ToString("N0"), chance)); } Thread.Sleep(500); } var total = stats[0]; var totalRatio = total.Shiny == 0 || total.Total == 0 ? 0 : Convert.ToInt32(total.Total / total.Shiny); if (totalRatio == 0) { await statsChannel.SendMessageAsync(Translator.Instance.Translate("SHINY_STATS_TOTAL_MESSAGE").FormatText(total.Shiny.ToString("N0"), total.Total.ToString("N0"))); } else { await statsChannel.SendMessageAsync(Translator.Instance.Translate("SHINY_STATS_TOTAL_MESSAGE_WITH_RATIO").FormatText(total.Shiny.ToString("N0"), total.Total.ToString("N0"), totalRatio)); } Thread.Sleep(10 * 1000); }