@Override public void execute(CommandSender sender, String[] strings) { for (ServerGroupObject serverGroupObject : TimoCloudAPI.getBungeeAPI().getThisProxy().getGroup().getServerGroups()) { for (ServerObject serverObject : serverGroupObject.getServers()) { sender.sendMessage( new TextComponent(ChatColor.translateAlternateColorCodes('&', "&a[" + serverObject.getName() + "] &e(" + serverObject.getOnlinePlayerCount() + "): &r" + serverObject.getOnlinePlayers().stream().map(PlayerObject::getName).sorted(String.CASE_INSENSITIVE_ORDER).collect(Collectors.joining(", ")))) ); } } sender.sendMessage(new TextComponent(ChatColor.RESET + "Total players online: " + TimoCloudAPI.getBungeeAPI().getThisProxy().getGroup().getOnlinePlayerCount())); } }
@EventHandler public void onProxyPingEvent(ProxyPingEvent event) { ProxyObject proxyObject = TimoCloudAPI.getBungeeAPI().getThisProxy(); ServerPing serverPing = event.getResponse(); serverPing.setPlayers(new ServerPing.Players( proxyObject.getGroup().getMaxPlayerCount(), proxyObject.getGroup().getOnlinePlayerCount(), serverPing.getPlayers().getSample() )); serverPing.setDescriptionComponent(new TextComponent(ChatColor.translateAlternateColorCodes('&', proxyObject.getGroup().getMotd()))); } }
public static ByteBuf createStatusPacket(ProxyGroupObject proxyGroupObject, int protocolVersion) { ByteBuf buf = Unpooled.buffer(); writeVarInt(0, buf); writeString(Message.create() .set("version", Message.create() .set("name", "TimoCloudCord") .set("protocol", protocolVersion) .toJson()) .set("players", Message.create() .set("max", proxyGroupObject.getMaxPlayerCount()) .set("online", proxyGroupObject.getOnlinePlayerCount()) .toJson()) .set("description", Message.create() .set("text", proxyGroupObject.getMotd()) .toJson()) .toString(), buf); return buf; }