private String initPatterns(String x, ServerInfo serverInfo) { return x.replace("%server%", serverInfo.getServiceId().getServerId()) .replace("%id%", serverInfo.getServiceId().getId() + NetworkUtils.EMPTY_STRING) .replace("%host%", serverInfo.getHost()) .replace("%port%", serverInfo.getPort() + NetworkUtils.EMPTY_STRING) .replace("%memory%", serverInfo.getMemory() + "MB") .replace("%online_players%", serverInfo.getOnlineCount() + NetworkUtils.EMPTY_STRING) .replace("%max_players%", serverInfo.getMaxPlayers() + NetworkUtils.EMPTY_STRING) .replace("%motd%", ChatColor.translateAlternateColorCodes('&', serverInfo.getMotd())) .replace("%state%", serverInfo.getServerState().name() + NetworkUtils.EMPTY_STRING) .replace("%wrapper%", serverInfo.getServiceId().getWrapperId() + NetworkUtils.EMPTY_STRING) .replace("%extra%", serverInfo.getServerConfig().getExtra()) .replace("%template%", serverInfo.getTemplate().getName()) .replace("%group%", serverInfo.getServiceId().getGroup()); }
public Collection<String> freeServers(String group) { List<String> servers = new ArrayList<>(); for (ServerInfo serverInfo : getServers(group)) servers.add(serverInfo.getServiceId().getServerId()); for (Sign sign : signs.values()) if (sign.getServerInfo() != null && servers.contains(sign.getServerInfo().getServiceId().getServerId())) servers.remove(sign.getServerInfo().getServiceId().getServerId()); List<String> x = new ArrayList<>(); ServerInfo serverInfo; for (short i = 0; i < servers.size(); i++) { serverInfo = this.servers.get(servers.get(i)); if (serverInfo != null) { if (!serverInfo.isOnline() || !serverInfo.getServerState().equals(ServerState.LOBBY) || serverInfo.getServerConfig().isHideServer() || serverInfo.getMotd().contains("INGAME") || serverInfo.getMotd().contains("RUNNING") || serverInfo.getServerConfig().isHideServer()) x.add(serverInfo.getServiceId().getServerId()); } else x.add(servers.get(i)); } for (String b : x) servers.remove(b); Collections.sort(servers); return servers; }
public Return<Integer, Integer> getOnlineCount(String group) { int atomicInteger = 0; int atomicInteger1 = 0; for (ServerInfo serverInfo : this.servers.values()) { if (serverInfo.getServiceId().getGroup().equalsIgnoreCase(group)) { atomicInteger = atomicInteger + serverInfo.getOnlineCount(); atomicInteger1 = atomicInteger1 + serverInfo.getMaxPlayers(); } } return new Return<>(atomicInteger, atomicInteger1); }
public CloudServer(BukkitBootstrap bukkitBootstrap, CloudAPI cloudAPI) { instance = this; cloudAPI.setCloudService(this); this.bukkitBootstrap = bukkitBootstrap; ServerInfo serverInfo = cloudAPI.getConfig().getObject("serverInfo", new TypeToken<ServerInfo>() { }.getType()); cloudAPI.getNetworkHandlerProvider().registerHandler(new NetworkHandlerImpl()); this.allowAutoStart = !cloudAPI.getConfig().contains("cloudProcess"); this.maxPlayers = serverInfo.getMaxPlayers(); this.motd = serverInfo.getMotd(); this.hostAdress = serverInfo.getHost(); this.port = serverInfo.getPort(); this.serverConfig = serverInfo.getServerConfig(); this.memory = serverInfo.getMemory(); this.template = serverInfo.getTemplate(); this.serverState = ServerState.LOBBY; }
@Override public void run() Sign newSign = findFreeSign(serverInfo.getServiceId().getGroup()); if (newSign != null) if (serverInfo.isOnline() && !serverInfo.isIngame()) if ((signLayoutConfig.isFullServerHide() && serverInfo.getOnlineCount() >= serverInfo.getMaxPlayers()) || serverInfo.getServerConfig().isHideServer()) if (serverInfo.getOnlineCount() >= serverInfo.getMaxPlayers()) } else if (serverInfo.getOnlineCount() == 0)
@Override public boolean isAccepted(ServerInfo value) { return value.getServiceId().getGroup().equalsIgnoreCase(fallback); } }).keySet());
NetworkUtils.SPACE_STRING, "Connection: " + (minecraftServer.getChannel() != null ? "connected" : "not connected"), "State: " + (minecraftServer.getServerInfo().isOnline() ? "Online" : "Offline") + " | " + minecraftServer.getServerInfo().getServerState(), "Online: " + minecraftServer.getServerInfo().getOnlineCount() + NetworkUtils.SLASH_STRING + minecraftServer.getServerInfo().getMaxPlayers(), "Motd: " + minecraftServer.getServerInfo().getMotd(), NetworkUtils.SPACE_STRING, "Memory: " + minecraftServer.getServerInfo().getMemory(), "Address: " + minecraftServer.getServerInfo().getHost(), "Port: " + minecraftServer.getServerInfo().getPort(), NetworkUtils.SPACE_STRING );
for (ServerInfo simpleProxyInfo : CloudAPI.getInstance().getServers()) if (simpleProxyInfo.getServiceId().getGroup() != null) if (!groupSorted.containsKey(simpleProxyInfo.getServiceId().getGroup())) groupSorted.put(simpleProxyInfo.getServiceId().getGroup(), new ArrayList<>()); groupSorted.get(simpleProxyInfo.getServiceId().getGroup()).add(simpleProxyInfo); continue; TextComponent textComponent = new TextComponent(TextComponent.fromLegacyText("§8[§c" + simpleProxyInfo.getServiceId().getServerId() + "§8] §8(§e" + simpleProxyInfo.getOnlineCount() + "§8) §e" + simpleProxyInfo.getServerState().name() + " §8: §7" + simpleProxyInfo.getMemory() + "MB")); textComponent.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/server " + simpleProxyInfo.getServiceId().getServerId())); commandSender.sendMessage(textComponent); usedMemory = usedMemory + simpleProxyInfo.getMemory(); serverInfo.getServiceId().getServerId() + "§8] §8(§e" + serverInfo.getOnlineCount() + "§8) §e" + serverInfo.getServerState().name() + " §8: §7" + serverInfo.getMemory() + "MB")); textComponent.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/server " + serverInfo.getServiceId().getServerId())); commandSender.sendMessage(textComponent); usedMemory = usedMemory + serverInfo.getMemory(); TextComponent textComponent = new TextComponent(TextComponent.fromLegacyText("§7- " + (server.isOnline() ? "§e" : "§c") + server.getServiceId().getServerId() + "§8(" + server.getOnlineCount() + "§8) §7State: " + server.getServerState())); textComponent.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/server " + server.getServiceId().getServerId())); commandSender.sendMessage(textComponent); if (server.getOnlineCount() == 0) CloudAPI.getInstance().stopServer(server.getServiceId().getServerId());
if (serverInfo.getOnlineCount() < serverInfo.getMaxPlayers() && serverInfo.getServerState().equals(ServerState.LOBBY)) byteArrayDataOutput.writeUTF(serverInfo.getServiceId().getServerId()); e.getPlayer().sendPluginMessage(CloudServer.getInstance().getPlugin(), "BungeeCord", byteArrayDataOutput.toByteArray()); return;
@Override public void onServerAdd(ServerInfo serverInfo) { if (serverInfo == null) return; ProxyServer.getInstance().getPluginManager().callEvent(new ProxiedServerAddEvent(serverInfo)); ProxyServer.getInstance().getServers().put( serverInfo.getServiceId().getServerId(), ProxyServer.getInstance().constructServerInfo(serverInfo.getServiceId().getServerId(), new InetSocketAddress(serverInfo.getHost(), serverInfo.getPort()), "CloudNet2 Game-Server", false) ); if (serverInfo.getServiceId().getGroup().equalsIgnoreCase(getProxyGroup().getProxyConfig().getDynamicFallback().getDefaultFallback())) CollectionWrapper.iterator(ProxyServer.getInstance().getConfig().getListeners(), new Runnabled<ListenerInfo>() { @Override public void run(ListenerInfo obj) { obj.getServerPriority().add(serverInfo.getServiceId().getServerId()); } }); cachedServers.put(serverInfo.getServiceId().getServerId(), serverInfo); if (CloudAPI.getInstance().getModuleProperties().contains("notifyService") && CloudAPI.getInstance().getModuleProperties().getBoolean("notifyService")) for (ProxiedPlayer proxiedPlayer : ProxyServer.getInstance().getPlayers()) if (proxiedPlayer.hasPermission("cloudnet.notify")) proxiedPlayer.sendMessage(ChatColor.translateAlternateColorCodes('&', CloudAPI.getInstance().getCloudNetwork().getMessages().getString("notify-message-server-add").replace("%server%", serverInfo.getServiceId().getServerId()))); }
for (MinecraftServer proxyServer : wrapper.getServers().values()) sender.sendMessage("Server [" + proxyServer.getServerId() + "] @" + proxyServer.getServerInfo().getHost() + " | " + proxyServer.getServerInfo().getOnlineCount() + NetworkUtils.SLASH_STRING + proxyServer.getServerInfo().getMaxPlayers() + " | State: " + (proxyServer.getChannel() != null ? "connected" : "not connected"));
@Override public Trio<String, Integer, Integer> doCatch(MinecraftServer key) { return new Trio<>(key.getServerId(), key.getServerInfo().getOnlineCount(), key.getServerInfo().getMaxPlayers()); } });
@Override public Integer doCatch(MinecraftServer key) { return key.getServerInfo().getPort(); } });
@Override public void run(ServerInfo obj) { integer.addAndGet(obj.getOnlineCount()); } });
/** * Updates the ServerInfo */ public void update() { List<String> list = new CopyOnWriteArrayList<>(); for (Player all : Bukkit.getOnlinePlayers()) list.add(all.getName()); ServerInfo serverInfo = new ServerInfo(CloudAPI.getInstance().getServiceId(), hostAdress, port, true, list, memory, motd, Bukkit.getOnlinePlayers().size(), maxPlayers, serverState, serverConfig, template); CloudAPI.getInstance().update(serverInfo); }
if (serverInfo.isOnline() && !serverInfo.isIngame()) if ((signLayoutConfig.isFullServerHide() && serverInfo.getOnlineCount() >= serverInfo.getMaxPlayers()) || serverInfo.getServerConfig().isHideServer()) if (serverInfo.getOnlineCount() >= serverInfo.getMaxPlayers()) } else if (serverInfo.getOnlineCount() == 0) Sign next = findFreeSign(serverInfo.getServiceId().getGroup()); Location location = toLocation(next.getPosition()); if (serverInfo.isOnline() && !serverInfo.isIngame()) if ((signLayoutConfig.isFullServerHide() && serverInfo.getOnlineCount() >= serverInfo.getMaxPlayers()) || serverInfo.getServerConfig().isHideServer()) if (serverInfo.getOnlineCount() >= serverInfo.getMaxPlayers()) } else if (serverInfo.getOnlineCount() == 0)
@Override public boolean isAccepted(ServerInfo value) { return value.getServiceId().getGroup().equals(group); } });
@Override public Integer doCatch(MinecraftServer key) { return key.getServerInfo().getPort(); } });
public int getOnlineCount(String group) { int onlineCount = 0; for (Wrapper wrapper : wrappers.values()) for (MinecraftServer minecraftServer : wrapper.getServers().values()) if (minecraftServer.getServiceId().getGroup().equalsIgnoreCase(group)) onlineCount = onlineCount + minecraftServer.getServerInfo().getOnlineCount(); return onlineCount; }
@Override public void run() { List<String> list = new CopyOnWriteArrayList<>(); for (Player all : Bukkit.getOnlinePlayers()) { list.add(all.getName()); } ServerInfo serverInfo = new ServerInfo(CloudAPI.getInstance().getServiceId(), hostAdress, port, true, list, memory, motd, Bukkit.getOnlinePlayers().size(), maxPlayers, serverState, serverConfig, template); CloudAPI.getInstance().update(serverInfo); } });