diff --git a/ProtocolLib/src/main/java/com/comphenix/protocol/CommandPacket.java b/ProtocolLib/src/main/java/com/comphenix/protocol/CommandPacket.java index 9c735a92..a833f57f 100644 --- a/ProtocolLib/src/main/java/com/comphenix/protocol/CommandPacket.java +++ b/ProtocolLib/src/main/java/com/comphenix/protocol/CommandPacket.java @@ -204,10 +204,14 @@ class CommandPacket implements CommandExecutor { sendMessageSilently(sender, ChatColor.BLUE + "Fully removed " + count + " listeners."); } else if (subCommand == SubCommand.NAMES) { + Set named = getNamedPackets(side); + // Print the equivalent name of every given ID for (Range range : ranges) { for (int id : range.asSet(DiscreteDomains.integers())) { - sendMessageSilently(sender, ChatColor.BLUE + "" + id + ": " + Packets.getDeclaredName(id)); + if (named.contains(id)) { + sendMessageSilently(sender, ChatColor.BLUE + "" + id + ": " + Packets.getDeclaredName(id)); + } } } } @@ -368,6 +372,30 @@ class CommandPacket implements CommandExecutor { throw new IllegalArgumentException("Illegal side: " + side); } + private Set getNamedPackets(ConnectionSide side) { + + Set valids = null; + Set result = null; + + try { + valids = getValidPackets(side); + } catch (FieldAccessException e) { + valids = Ranges.closed(0, 255).asSet(DiscreteDomains.integers()); + } + + // Check connection side + if (side.isForClient()) + result = Packets.Client.getRegistry().values(); + else if (side.isForServer()) + result = Packets.Server.getRegistry().values(); + else + throw new IllegalArgumentException("Illegal side: " + side); + + // Remove invalid packets + result.retainAll(valids); + return result; + } + public DetailedPacketListener createPacketListener(final ConnectionSide side, int idStart, int idStop, final boolean detailed) { Set range = Ranges.closed(idStart, idStop).asSet(DiscreteDomains.integers()); diff --git a/ProtocolLib/src/main/java/com/comphenix/protocol/metrics/Updater.java b/ProtocolLib/src/main/java/com/comphenix/protocol/metrics/Updater.java index 7c2e18fc..f3f18939 100644 --- a/ProtocolLib/src/main/java/com/comphenix/protocol/metrics/Updater.java +++ b/ProtocolLib/src/main/java/com/comphenix/protocol/metrics/Updater.java @@ -12,8 +12,6 @@ import java.net.URLConnection; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; -import java.util.logging.Handler; -import java.util.logging.LogRecord; import java.util.logging.Logger; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -22,7 +20,6 @@ import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.events.XMLEvent; -import org.bukkit.Server; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.Plugin; diff --git a/ProtocolLib/src/main/java/com/comphenix/protocol/reflect/IntEnum.java b/ProtocolLib/src/main/java/com/comphenix/protocol/reflect/IntEnum.java index 9a8f3b40..22ac99ec 100644 --- a/ProtocolLib/src/main/java/com/comphenix/protocol/reflect/IntEnum.java +++ b/ProtocolLib/src/main/java/com/comphenix/protocol/reflect/IntEnum.java @@ -18,6 +18,7 @@ package com.comphenix.protocol.reflect; import java.lang.reflect.Field; +import java.util.HashSet; import java.util.Set; import com.google.common.collect.BiMap; @@ -100,6 +101,6 @@ public class IntEnum { * @return Enumeration of every value. */ public Set values() { - return members.keySet(); + return new HashSet(members.keySet()); } }