@Override public boolean execute(ViaCommandSender sender, String[] args) { Map<ProtocolVersion, Set<String>> playerVersions = new TreeMap<>(new Comparator<ProtocolVersion>() { @Override public int compare(ProtocolVersion o1, ProtocolVersion o2) { return ProtocolVersion.getIndex(o2) - ProtocolVersion.getIndex(o1); } }); for (ViaCommandSender p : Via.getPlatform().getOnlinePlayers()) { int playerVersion = Via.getAPI().getPlayerVersion(p.getUUID()); ProtocolVersion key = ProtocolVersion.getProtocol(playerVersion); if (!playerVersions.containsKey(key)) playerVersions.put(key, new HashSet<String>()); playerVersions.get(key).add(p.getName()); } for (Map.Entry<ProtocolVersion, Set<String>> entry : playerVersions.entrySet()) sendMessage(sender, "&8[&6%s&8] (&7%d&8): &b%s", entry.getKey().getName(), entry.getValue().size(), entry.getValue()); playerVersions.clear(); return true; } }
public void onServerLoaded() { // Load Server Protocol try { ProtocolRegistry.SERVER_PROTOCOL = injector.getServerProtocolVersion(); } catch (Exception e) { getPlatform().getLogger().severe("ViaVersion failed to get the server protocol!"); e.printStackTrace(); } // Check if there are any pipes to this version if (ProtocolRegistry.SERVER_PROTOCOL != -1) { getPlatform().getLogger().info("ViaVersion detected server version: " + ProtocolVersion.getProtocol(ProtocolRegistry.SERVER_PROTOCOL)); if (!ProtocolRegistry.isWorkingPipe()) { getPlatform().getLogger().warning("ViaVersion does not have any compatible versions for this server version, please read our resource page carefully."); } } // Load Listeners / Tasks ProtocolRegistry.onServerLoaded(); // Load Platform loader.load(); // Refresh Versions ProtocolRegistry.refreshVersions(); }
sendMessage(sender, "&8[&6%s&8]: &b%s", ProtocolVersion.getProtocol(entry.getKey()).getName(), entry.getValue()); sorted.clear(); return true;