@EventHandler(priority = EventPriority.HIGHEST) public void handleProxyPing(ProxyPingEvent event) { ProxyGroup proxyGroup = CloudAPI.getInstance().getProxyGroupData(CloudAPI.getInstance().getGroup()); if (proxyGroup != null && proxyGroup.getProxyConfig().isEnabled()) { ProxyConfig proxyConfig = proxyGroup.getProxyConfig(); ServerPing serverPing = event.getResponse(); if (!proxyConfig.isMaintenance()) { Motd motd = proxyConfig.getMotdsLayouts().get(NetworkUtils.RANDOM.nextInt(proxyConfig.getMotdsLayouts().size())); serverPing.setDescription(ChatColor.translateAlternateColorCodes('&', motd.getFirstLine() + "\n" + motd.getSecondLine()).replace("%proxy%", CloudAPI.getInstance().getServerId()).replace("%version%", CloudProxy.class.getPackage().getImplementationVersion())); } else { serverPing.setDescription(ChatColor.translateAlternateColorCodes('&', proxyConfig.getMaintenanceMotdLayout().getFirstLine() + "\n" + proxyConfig.getMaintenanceMotdLayout().getSecondLine()).replace("%proxy%", CloudAPI.getInstance().getServerId()).replace("%version%", CloudProxy.class.getPackage().getImplementationVersion())); } int onlineCount = CloudAPI.getInstance().getOnlineCount(); int max = (proxyConfig.getAutoSlot().isEnabled() ? onlineCount + proxyConfig.getAutoSlot().getDynamicSlotSize() : proxyConfig.getMaxPlayers()); ServerPing.PlayerInfo[] playerInfos = new ServerPing.PlayerInfo[proxyConfig.getPlayerInfo().length]; for (short i = 0; i < playerInfos.length; i++) { playerInfos[i] = new ServerPing.PlayerInfo(ChatColor.translateAlternateColorCodes('&', proxyConfig.getPlayerInfo()[i]), UUID.randomUUID()); } serverPing.setPlayers(new ServerPing.Players(max, onlineCount, playerInfos)); if (proxyConfig.isMaintenance()) serverPing.setVersion(new ServerPing.Protocol(proxyConfig.getMaintenaceProtocol(), 1)); event.setResponse(serverPing); } }