/** * Retrieves the {@link net.dv8tion.jda.core.Region Region} based on the provided key. * * @param key * The key relating to the {@link net.dv8tion.jda.core.Region Region} we wish to retrieve. * * @return The {@link net.dv8tion.jda.core.Region Region} matching the key. If there is no match, * returns {@link net.dv8tion.jda.core.Region#UNKNOWN UNKNOWN}. */ public static Region fromKey(String key) { for (Region region : values()) { if (region.getKey().equals(key)) { return region; } } return UNKNOWN; }
private Region getRandomRegion(Region currentRegion) { List<Region> regions = new ArrayList<>(); for (Region region : Region.values()) { if (region.equals(Region.UNKNOWN) || region.equals(currentRegion) || region.isVip() != currentRegion.isVip()) { continue; } regions.add(region); } return (Region) RandomUtil.pickRandom(regions); }
@Override public void handle(AvaIre avaire) { Metrics.uptime.labels("dynamic").set(ManagementFactory.getRuntimeMXBean().getUptime()); Metrics.memoryTotal.set(Runtime.getRuntime().totalMemory()); Metrics.memoryUsed.set(Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()); if (!avaire.areWeReadyYet() || !hasLoadedGuilds(avaire)) { return; } Metrics.guilds.set(avaire.getShardEntityCounter().getGuilds()); Metrics.users.set(avaire.getShardEntityCounter().getUsers()); Metrics.channels.labels("text").set(avaire.getShardEntityCounter().getTextChannels()); Metrics.channels.labels("voice").set(avaire.getShardEntityCounter().getVoiceChannels()); for (Region region : Region.values()) { Metrics.geoTracker.labels(region.getName()).set(0); } for (JDA shard : avaire.getShardManager().getShards()) { for (Guild guild : shard.getGuilds()) { Metrics.geoTracker.labels(guild.getRegion().getName()).inc(); } } }