public static long[] getPingsForShards() { long[] pings = new long[Getters.getShards().size()]; for (int shardId = 0; shardId < pings.length; shardId++) pings[shardId] = getShardById(shardId).getPing(); return pings; } }
private JSONArray buildShards() { JSONArray shards = new JSONArray(); for (JDA shard : metrics.getAvaire().getShardManager().getShards()) { JSONObject stats = new JSONObject(); stats.put("id", shard.getShardInfo().getShardId()) .put("guilds", shard.getGuilds().size()) .put("users", shard.getUsers().size()) .put("status", shard.getStatus()) .put("channels", (shard.getTextChannels().size() + shard.getVoiceChannels().size())) .put("latency", shard.getPing()); shards.put(stats); } return shards; }
private String buildPayload(SelfUser selfUser) { JSONObject main = new JSONObject(); JSONObject bot = new JSONObject(); bot.put("name", selfUser.getName()); bot.put("avatar", selfUser.getAvatarId()); main.put("bot", bot); JSONArray shards = new JSONArray(); for (JDA shard : avaire.getShardManager().getShards()) { JSONObject shardObj = new JSONObject(); shardObj.put("id", shard.getShardInfo().getShardId()); shardObj.put("latency", shard.getPing()); shardObj.put("users", shard.getUsers().size()); shardObj.put("channels", getTotalChannels(shard)); shardObj.put("guilds", shard.getGuilds().size()); shards.put(shardObj); } main.put("shards", shards); return main.toString(); }
@Override public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) { PagedTableBuilder tb = new PagedTableBuilder(); tb.addColumn("Shard ID"); tb.addColumn("Status"); tb.addColumn("Ping"); tb.addColumn("Guild Count"); tb.addColumn("Connected VCs"); List<JDA> shards = new ArrayList<>(Getters.getShards()); Collections.reverse(shards); for (JDA jda : shards) { List<String> row = new ArrayList<>(); row.add(ShardUtils.getDisplayShardId(jda) + (ShardUtils.getShardId(channel.getJDA()) == ShardUtils.getShardId(jda) ? " (You)" : "")); row.add(WordUtils.capitalizeFully(jda.getStatus().toString().replace("_", " "))); row.add(String.valueOf(jda.getPing())); row.add(String.valueOf(jda.getGuilds().size())); row.add(String.valueOf(jda.getVoiceChannels().stream().filter(vc -> vc.getMembers().contains(vc.getGuild() .getSelfMember())).count())); tb.addRow(row); } PaginationUtil.sendPagedMessage(channel, tb.build(), 0, sender, ButtonGroupConstants.SHARDINFO); }
@Override public boolean onCommand(CommandMessage context, String[] args) { long start = System.currentTimeMillis(); context.getMessage().getChannel().sendTyping().queue(v -> { long ping = System.currentTimeMillis() - start; context.makeInfo(context.i18n("message")) .set("heartbeat", context.getJDA().getPing()) .set("rating", ratePing(context, ping)) .set("ping", ping) .queue(); }); return true; }
@Override public void handle(AvaIre avaire) { if (!avaire.areWeReadyYet()) { return; } for (JDA shard : avaire.getShardManager().getShards()) { Metrics.websocketHeartbeat.labels("Shard " + shard.getShardInfo().getShardId()) .set(shard.getPing()); } } }
NumberUtil.formatNicely(shard.getUsers().size()), NumberUtil.formatNicely(shard.getGuilds().size()), NumberUtil.formatNicely(shard.getPing()) ), true));