@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; } }
private void sendPacket(UUID uuid, PacketWrapper wrapper) { if (!Via.getAPI().isPorted(uuid) || !(Via.getAPI().getPlayerVersion(uuid) >= ProtocolVersion.v1_9.getId())) { players.remove(uuid); return; } try { wrapper.send(Protocol1_9TO1_8.class); } catch (Exception e) { e.printStackTrace(); } }
int playerVersion = Via.getAPI().getPlayerVersion(p.getUUID()); if (!playerVersions.containsKey(playerVersion)) playerVersions.put(playerVersion, new HashSet<String>());
public void send(CommandSender sender, String... args) { if (sender instanceof Player) { if (TellrawCreator.isViaVersionLoaded()) { TLocale.Tellraw.send(sender, Strings.replaceWithOrder(toRawMessage(Via.getAPI().getPlayerVersion(sender) > 316 ? TellrawVersion.HIGH_VERSION : TellrawVersion.LOW_VERSION), args)); } else if (TellrawCreator.isProtocolSupportLoaded()) { TLocale.Tellraw.send(sender, Strings.replaceWithOrder(toRawMessage(ProtocolSupportAPI.getProtocolVersion((Player) sender).getId() > 316 ? TellrawVersion.HIGH_VERSION : TellrawVersion.LOW_VERSION), args)); } else { TLocale.Tellraw.send(sender, Strings.replaceWithOrder(toRawMessage(), args)); } } else { TLocale.Tellraw.send(sender, Strings.replaceWithOrder(toRawMessage(), args)); } }