From 681a0dc0e4f5cf7e7e2fc5a9b5aaf21b59af96bb Mon Sep 17 00:00:00 2001 From: KennyTV Date: Mon, 10 Feb 2020 10:05:56 +0100 Subject: [PATCH] Remove deprecated api, remove a bit of magic --- .../us/myles/ViaVersion/ViaVersionPlugin.java | 56 +++-- .../us/myles/ViaVersion/api/ViaVersion.java | 19 -- .../myles/ViaVersion/api/ViaVersionAPI.java | 144 ------------ .../bukkit/classgenerator/ClassGenerator.java | 17 +- .../protocol1_9to1_8/DeathListener.java | 3 +- .../bukkit/platform/BukkitViaAPI.java | 48 ++-- .../java/us/myles/ViaVersion/ViaManager.java | 35 ++- .../myles/ViaVersion/api/PacketWrapper.java | 11 +- .../java/us/myles/ViaVersion/api/Pair.java | 37 +++- .../java/us/myles/ViaVersion/api/Triple.java | 47 +++- .../java/us/myles/ViaVersion/api/Via.java | 11 +- .../java/us/myles/ViaVersion/api/ViaAPI.java | 7 +- .../us/myles/ViaVersion/api/boss/BossBar.java | 1 + .../myles/ViaVersion/api/boss/BossColor.java | 13 +- .../myles/ViaVersion/api/boss/BossFlag.java | 13 +- .../myles/ViaVersion/api/boss/BossStyle.java | 13 +- .../ViaVersion/api/protocol/Protocol.java | 10 - .../api/protocol/ProtocolPipeline.java | 41 +--- .../api/protocol/ProtocolRegistry.java | 3 - .../us/myles/ViaVersion/boss/CommonBoss.java | 17 +- .../myles/ViaVersion/packets/PacketType.java | 208 ------------------ .../protocols/base/BaseProtocol1_7.java | 9 +- 22 files changed, 220 insertions(+), 543 deletions(-) delete mode 100644 bukkit/src/main/java/us/myles/ViaVersion/api/ViaVersion.java delete mode 100644 bukkit/src/main/java/us/myles/ViaVersion/api/ViaVersionAPI.java delete mode 100644 common/src/main/java/us/myles/ViaVersion/packets/PacketType.java diff --git a/bukkit/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java b/bukkit/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java index 5f7cf42af..0be901cde 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java @@ -1,7 +1,6 @@ package us.myles.ViaVersion; import com.google.gson.JsonObject; -import lombok.Getter; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -9,7 +8,6 @@ import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.ViaAPI; -import us.myles.ViaVersion.api.ViaVersion; import us.myles.ViaVersion.api.command.ViaCommandSender; import us.myles.ViaVersion.api.configuration.ConfigurationProvider; import us.myles.ViaVersion.api.platform.TaskId; @@ -28,19 +26,20 @@ import java.util.UUID; public class ViaVersionPlugin extends JavaPlugin implements ViaPlatform { + private static ViaVersionPlugin instance; private final BukkitCommandHandler commandHandler; - private boolean compatSpigotBuild = false; - private boolean spigot = true; - private boolean lateBind = false; - private boolean protocolSupport = false; - @Getter private final BukkitViaConfig conf; - @Getter private final ViaAPI api = new BukkitViaAPI(this); private final List queuedTasks = new ArrayList<>(); private final List asyncQueuedTasks = new ArrayList<>(); + private final boolean protocolSupport; + private boolean compatSpigotBuild; + private boolean spigot = true; + private boolean lateBind; public ViaVersionPlugin() { + instance = this; + // Command handler commandHandler = new BukkitCommandHandler(); // Init platform @@ -52,8 +51,6 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaPlatform { .build()); // Config magic conf = new BukkitViaConfig(); - // For compatibility - ViaVersion.setInstance(this); // Check if we're using protocol support too protocolSupport = Bukkit.getPluginManager().getPlugin("ProtocolSupport") != null; @@ -127,19 +124,6 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaPlatform { Via.getManager().destroy(); } - public boolean isCompatSpigotBuild() { - return compatSpigotBuild; - } - - - public boolean isSpigot() { - return this.spigot; - } - - public boolean isProtocolSupport() { - return protocolSupport; - } - @Override public String getPlatformName() { return Bukkit.getServer().getName(); @@ -264,4 +248,30 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaPlatform { public boolean isOldClientsAllowed() { return !protocolSupport; // Use protocolsupport for older clients } + + @Override + public BukkitViaConfig getConf() { + return conf; + } + + @Override + public ViaAPI getApi() { + return api; + } + + public boolean isCompatSpigotBuild() { + return compatSpigotBuild; + } + + public boolean isSpigot() { + return this.spigot; + } + + public boolean isProtocolSupport() { + return protocolSupport; + } + + public static ViaVersionPlugin getInstance() { + return instance; + } } diff --git a/bukkit/src/main/java/us/myles/ViaVersion/api/ViaVersion.java b/bukkit/src/main/java/us/myles/ViaVersion/api/ViaVersion.java deleted file mode 100644 index c6dff9729..000000000 --- a/bukkit/src/main/java/us/myles/ViaVersion/api/ViaVersion.java +++ /dev/null @@ -1,19 +0,0 @@ -package us.myles.ViaVersion.api; - -import lombok.Getter; -import org.apache.commons.lang.Validate; -import us.myles.ViaVersion.ViaVersionPlugin; - -@Deprecated -public class ViaVersion { - @Getter - private static ViaVersionAPI instance; - @Getter - private static ViaVersionConfig config; - - public static void setInstance(ViaVersionPlugin plugin) { - Validate.isTrue(instance == null, "Instance is already set"); - ViaVersion.instance = (ViaVersionAPI) plugin.getApi(); - ViaVersion.config = plugin.getConf(); - } -} diff --git a/bukkit/src/main/java/us/myles/ViaVersion/api/ViaVersionAPI.java b/bukkit/src/main/java/us/myles/ViaVersion/api/ViaVersionAPI.java deleted file mode 100644 index a1dfcf212..000000000 --- a/bukkit/src/main/java/us/myles/ViaVersion/api/ViaVersionAPI.java +++ /dev/null @@ -1,144 +0,0 @@ -package us.myles.ViaVersion.api; - -import io.netty.buffer.ByteBuf; -import org.bukkit.entity.Player; -import us.myles.ViaVersion.api.boss.BossBar; -import us.myles.ViaVersion.api.boss.BossColor; -import us.myles.ViaVersion.api.boss.BossStyle; -import us.myles.ViaVersion.api.command.ViaVersionCommand; -import us.myles.ViaVersion.api.protocol.ProtocolRegistry; - -import java.util.SortedSet; -import java.util.UUID; - -@Deprecated -public interface ViaVersionAPI extends ViaAPI { - /** - * Is the player connection modified by ViaVersion? - * - * @param player Bukkit player object - * @return True if the client is modified (At the moment it also means version 1.9 and higher) - * @deprecated As of 0.9.9, because all players are ported use {@link #getPlayerVersion(Player)} - */ - boolean isPorted(Player player); - - /** - * Get protocol number from a player - * Will also retrieve version from ProtocolSupport if it's being used. - * - * @param player Bukkit player object - * @return Protocol ID, For example (47=1.8-1.8.8, 107=1.9, 108=1.9.1) - */ - int getPlayerVersion(Player player); - - /** - * Get protocol number from a player - * - * @param uuid UUID of a player - * @return Protocol ID, For example (47=1.8-1.8.8, 107=1.9, 108=1.9.1) - */ - int getPlayerVersion(UUID uuid); - - /** - * Is player using 1.9? - * - * @param playerUUID UUID of a player - * @return True if the client is on 1.9 - * @deprecated As of 0.9.9, because all players are ported use {@link #getPlayerVersion(UUID)} - */ - @Deprecated - boolean isPorted(UUID playerUUID); - - /** - * Get the version of the plugin - * - * @return Plugin version - */ - String getVersion(); - - /** - * Send a raw packet to the player (Use new IDs) - * - * @param player The player to send packet - * @param packet The packet, you need a VarInt ID then the packet contents. - * @throws IllegalArgumentException If not on 1.9 throws IllegalArg - */ - void sendRawPacket(Player player, ByteBuf packet) throws IllegalArgumentException; - - /** - * Send a raw packet to the player (Use new IDs) - * - * @param uuid The uuid from the player to send packet - * @param packet The packet, you need a VarInt ID then the packet contents. - * @throws IllegalArgumentException If not on 1.9 throws IllegalArg - */ - void sendRawPacket(UUID uuid, ByteBuf packet) throws IllegalArgumentException; - - /** - * Create a new bossbar instance - * - * @param title The title - * @param color The color - * @param style The style - * @return BossBar instance - */ - BossBar createBossBar(String title, BossColor color, BossStyle style); - - /** - * Create a new bossbar instance - * - * @param title The title - * @param health Number between 0 and 1 - * @param color The color - * @param style The style - * @return BossBar instance - */ - BossBar createBossBar(String title, float health, BossColor color, BossStyle style); - - /** - * Get if global debug is enabled - * - * @return true if debug is enabled - */ - boolean isDebug(); - - /** - * Get ViaVersions commands handler - * - * @return commands handler - */ - ViaVersionCommand getCommandHandler(); - - /** - * Get if this version is a compatibility build for spigot. - * Eg. 1.9.1 / 1.9.2 allow certain versions to connect - * - * @return True if it is - */ - boolean isCompatSpigotBuild(); - - /** - * Get the supported protocol versions - * This method removes any blocked protocol versions. - * - * @return a list of protocol versions - * @see ProtocolRegistry#getSupportedVersions() for full list. - */ - SortedSet getSupportedVersions(); - - /** - * Gets if the server uses spigot - *

- * Note: Will only work after ViaVersion load - * - * @return True if spigot - */ - boolean isSpigot(); - - /** - * Gets if protocol support is also being used. - * - * @return True if it is being used. - */ - boolean isProtocolSupport(); -} diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/classgenerator/ClassGenerator.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/classgenerator/ClassGenerator.java index 5fdf04f49..ee12fdc76 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/classgenerator/ClassGenerator.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/classgenerator/ClassGenerator.java @@ -3,10 +3,6 @@ package us.myles.ViaVersion.bukkit.classgenerator; import javassist.*; import javassist.expr.ConstructorCall; import javassist.expr.ExprEditor; - -import java.lang.reflect.Method; -import java.util.Arrays; - import org.bukkit.Bukkit; import org.bukkit.event.Event; import org.bukkit.event.EventException; @@ -15,14 +11,15 @@ import org.bukkit.event.Listener; import org.bukkit.plugin.EventExecutor; import org.bukkit.plugin.Plugin; import us.myles.ViaVersion.ViaVersionPlugin; -import us.myles.ViaVersion.api.ViaVersion; import us.myles.ViaVersion.bukkit.handlers.BukkitDecodeHandler; import us.myles.ViaVersion.bukkit.handlers.BukkitEncodeHandler; import us.myles.ViaVersion.bukkit.util.NMSUtil; +import java.lang.reflect.Method; + public class ClassGenerator { private static HandlerConstructor constructor = new BasicHandlerConstructor(); - private static String psPackage = null; + private static String psPackage; private static Class psConnectListener; public static HandlerConstructor getConstructor() { @@ -30,14 +27,14 @@ public class ClassGenerator { } public static void generate() { - if (ViaVersion.getInstance().isCompatSpigotBuild() || ViaVersion.getInstance().isProtocolSupport()) { + if (ViaVersionPlugin.getInstance().isCompatSpigotBuild() || ViaVersionPlugin.getInstance().isProtocolSupport()) { try { ClassPool pool = ClassPool.getDefault(); for (Plugin p : Bukkit.getPluginManager().getPlugins()) { pool.insertClassPath(new LoaderClassPath(p.getClass().getClassLoader())); } - if (ViaVersion.getInstance().isCompatSpigotBuild()) { + if (ViaVersionPlugin.getInstance().isCompatSpigotBuild()) { Class decodeSuper = NMSUtil.nms("PacketDecoder"); Class encodeSuper = NMSUtil.nms("PacketEncoder"); // Generate the classes @@ -215,7 +212,7 @@ public class ClassGenerator { " int protoVersion = packet.b();\n" )) // ViaVersion has at this point already spoofed the connectionversion. (Since it is higher up the pipeline) - // If via has put the protoVersion to the server we can spoof ProtocolSupport's version. + // If via has put the protoVersion to the server we can spoof ProtocolSupport's version. + " if (connection.getVersion() == ProtocolVersion.MINECRAFT_FUTURE && protoVersion == us.myles.ViaVersion.api.protocol.ProtocolRegistry.SERVER_PROTOCOL) {\n" + " connection.setVersion(ProtocolVersion.getLatest(ProtocolType.PC));\n" + " }\n" @@ -230,7 +227,7 @@ public class ClassGenerator { } return null; } - + public static void registerPSConnectListener(ViaVersionPlugin plugin) { if (getPSConnectListener() != null) { try { diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java index 076fed5df..9182406a7 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java @@ -8,7 +8,6 @@ import org.bukkit.event.entity.PlayerDeathEvent; import us.myles.ViaVersion.ViaVersionPlugin; import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.Via; -import us.myles.ViaVersion.api.ViaVersion; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.bukkit.listeners.ViaBukkitListener; @@ -22,7 +21,7 @@ public class DeathListener extends ViaBukkitListener { @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onDeath(PlayerDeathEvent e) { Player p = e.getEntity(); - if (isOnPipe(p) && ViaVersion.getConfig().isShowNewDeathMessages() && checkGamerule(p.getWorld()) && e.getDeathMessage() != null) + if (isOnPipe(p) && Via.getConfig().isShowNewDeathMessages() && checkGamerule(p.getWorld()) && e.getDeathMessage() != null) sendPacket(p, e.getDeathMessage()); } diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaAPI.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaAPI.java index a2ca54db9..8ff4ec35d 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaAPI.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaAPI.java @@ -1,18 +1,15 @@ package us.myles.ViaVersion.bukkit.platform; import io.netty.buffer.ByteBuf; -import lombok.AllArgsConstructor; import lombok.NonNull; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import us.myles.ViaVersion.ViaVersionPlugin; import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.ViaAPI; -import us.myles.ViaVersion.api.ViaVersionAPI; import us.myles.ViaVersion.api.boss.BossBar; import us.myles.ViaVersion.api.boss.BossColor; import us.myles.ViaVersion.api.boss.BossStyle; -import us.myles.ViaVersion.api.command.ViaVersionCommand; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.protocol.ProtocolRegistry; import us.myles.ViaVersion.boss.ViaBossBar; @@ -24,15 +21,16 @@ import java.util.SortedSet; import java.util.TreeSet; import java.util.UUID; -@AllArgsConstructor -public class BukkitViaAPI implements ViaAPI, ViaVersionAPI { +public class BukkitViaAPI implements ViaAPI { private final ViaVersionPlugin plugin; + public BukkitViaAPI(ViaVersionPlugin plugin) { + this.plugin = plugin; + } + @Override public int getPlayerVersion(@NonNull Player player) { - if (!isPorted(player)) - return getExternalVersion(player); - return getPortedPlayers().get(player.getUniqueId()).get(ProtocolInfo.class).getProtocolVersion(); + return getPlayerVersion(player.getUniqueId()); } @Override @@ -50,11 +48,6 @@ public class BukkitViaAPI implements ViaAPI, ViaVersionAPI { } } - @Override - public boolean isPorted(Player player) { - return isPorted(player.getUniqueId()); - } - @Override public boolean isPorted(UUID playerUUID) { return getPortedPlayers().containsKey(playerUUID); @@ -87,16 +80,6 @@ public class BukkitViaAPI implements ViaAPI, ViaVersionAPI { return new ViaBossBar(title, health, color, style); } - @Override - public boolean isDebug() { - return Via.getManager().isDebug(); - } - - @Override - public ViaVersionCommand getCommandHandler() { - return Via.getManager().getCommandHandler(); - } - @Override public SortedSet getSupportedVersions() { SortedSet outputSet = new TreeSet<>(ProtocolRegistry.getSupportedVersions()); @@ -105,18 +88,21 @@ public class BukkitViaAPI implements ViaAPI, ViaVersionAPI { return outputSet; } - @Override + /** + * Returns if this version is a compatibility build for spigot. + * Eg. 1.9.1 / 1.9.2 allow certain versions to connect + * + * @return true if compat Spigot build + */ public boolean isCompatSpigotBuild() { return plugin.isCompatSpigotBuild(); } - - @Override - public boolean isSpigot() { - return plugin.isSpigot(); - } - - @Override + /** + * Returns if ProtocolSupport is also being used. + * + * @return true if ProtocolSupport is used + */ public boolean isProtocolSupport() { return plugin.isProtocolSupport(); } diff --git a/common/src/main/java/us/myles/ViaVersion/ViaManager.java b/common/src/main/java/us/myles/ViaVersion/ViaManager.java index 515c1920b..2d0d00c2a 100644 --- a/common/src/main/java/us/myles/ViaVersion/ViaManager.java +++ b/common/src/main/java/us/myles/ViaVersion/ViaManager.java @@ -21,13 +21,11 @@ import java.util.Map; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -@Getter public class ViaManager { private final Map portedPlayers = new ConcurrentHashMap<>(); private final ViaPlatform platform; private final ViaProviders providers = new ViaProviders(); - @Setter - private boolean debug = false; + private boolean debug; // Internals private final ViaInjector injector; private final ViaCommandHandler commandHandler; @@ -128,4 +126,35 @@ public class ViaManager { return portedPlayers.get(playerUUID); } + public Map getPortedPlayers() { + return portedPlayers; + } + + public ViaPlatform getPlatform() { + return platform; + } + + public ViaProviders getProviders() { + return providers; + } + + public boolean isDebug() { + return debug; + } + + public void setDebug(boolean debug) { + this.debug = debug; + } + + public ViaInjector getInjector() { + return injector; + } + + public ViaCommandHandler getCommandHandler() { + return commandHandler; + } + + public ViaPlatformLoader getLoader() { + return loader; + } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java b/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java index 2b36c505c..961c55b71 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java +++ b/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java @@ -3,8 +3,6 @@ package us.myles.ViaVersion.api; import com.google.common.base.Preconditions; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelFuture; -import lombok.Getter; -import lombok.Setter; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.protocol.Protocol; import us.myles.ViaVersion.api.remapper.ValueCreator; @@ -26,8 +24,6 @@ public class PacketWrapper { private final ByteBuf inputBuffer; private final UserConnection userConnection; private boolean send = true; - @Setter - @Getter private int id = -1; private final LinkedList> readableObjects = new LinkedList<>(); private final List> packetValues = new ArrayList<>(); @@ -518,6 +514,13 @@ public class PacketWrapper { sendToServer(packetProtocol, true); } + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } @Override public String toString() { diff --git a/common/src/main/java/us/myles/ViaVersion/api/Pair.java b/common/src/main/java/us/myles/ViaVersion/api/Pair.java index ae1ccf19e..efb87619b 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/Pair.java +++ b/common/src/main/java/us/myles/ViaVersion/api/Pair.java @@ -1,14 +1,9 @@ package us.myles.ViaVersion.api; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.Setter; +import java.util.Objects; -@Getter -@Setter -@EqualsAndHashCode public class Pair { - private X key; + private final X key; private Y value; public Pair(X key, Y value) { @@ -16,8 +11,36 @@ public class Pair { this.value = value; } + public X getKey() { + return key; + } + + public Y getValue() { + return value; + } + + public void setValue(Y value) { + this.value = value; + } + @Override public String toString() { return "Pair{" + key + ", " + value + '}'; } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Pair pair = (Pair) o; + if (!Objects.equals(key, pair.key)) return false; + return Objects.equals(value, pair.value); + } + + @Override + public int hashCode() { + int result = key != null ? key.hashCode() : 0; + result = 31 * result + (value != null ? value.hashCode() : 0); + return result; + } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/Triple.java b/common/src/main/java/us/myles/ViaVersion/api/Triple.java index 57e1ca21a..02600957e 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/Triple.java +++ b/common/src/main/java/us/myles/ViaVersion/api/Triple.java @@ -1,17 +1,50 @@ package us.myles.ViaVersion.api; -import lombok.AllArgsConstructor; -import lombok.Data; +import java.util.Objects; -@Data -@AllArgsConstructor public class Triple { - private A first; - private B second; - private C third; + private final A first; + private final B second; + private final C third; + + public Triple(A first, B second, C third) { + this.first = first; + this.second = second; + this.third = third; + } + + public A getFirst() { + return first; + } + + public B getSecond() { + return second; + } + + public C getThird() { + return third; + } @Override public String toString() { return "Triple{" + first + ", " + second + ", " + third + '}'; } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Triple triple = (Triple) o; + if (!Objects.equals(first, triple.first)) return false; + if (!Objects.equals(second, triple.second)) return false; + return Objects.equals(third, triple.third); + } + + @Override + public int hashCode() { + int result = first != null ? first.hashCode() : 0; + result = 31 * result + (second != null ? second.hashCode() : 0); + result = 31 * result + (third != null ? third.hashCode() : 0); + return result; + } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/Via.java b/common/src/main/java/us/myles/ViaVersion/api/Via.java index 6339ef84e..1edd82b7c 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/Via.java +++ b/common/src/main/java/us/myles/ViaVersion/api/Via.java @@ -1,14 +1,11 @@ package us.myles.ViaVersion.api; import com.google.common.base.Preconditions; -import lombok.Getter; import us.myles.ViaVersion.ViaManager; import us.myles.ViaVersion.api.platform.ViaPlatform; public class Via { - @Getter private static ViaPlatform platform; - @Getter private static ViaManager manager; /** @@ -42,4 +39,12 @@ public class Via { Preconditions.checkArgument(platform != null, "ViaVersion has not loaded the Platform"); return Via.platform.getConf(); } + + public static ViaPlatform getPlatform() { + return platform; + } + + public static ViaManager getManager() { + return manager; + } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/ViaAPI.java b/common/src/main/java/us/myles/ViaVersion/api/ViaAPI.java index 39d58bf01..7a074af97 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/ViaAPI.java +++ b/common/src/main/java/us/myles/ViaVersion/api/ViaAPI.java @@ -15,6 +15,7 @@ import java.util.UUID; * @param The player type for the specific platform, for bukkit it's {@code ViaAPI} */ public interface ViaAPI { + /** * Get protocol number from a player * Will also retrieve version from ProtocolSupport if it's being used. @@ -33,11 +34,11 @@ public interface ViaAPI { int getPlayerVersion(UUID uuid); /** - * Is player using 1.9? + * Returns if the player is ported by Via. * * @param playerUUID UUID of a player - * @return True if the client is on 1.9 - * @deprecated As of 0.9.9, because all players are ported use {@link #getPlayerVersion(UUID)} + * @return true if Via has a cached userconnection for this player + * @deprecated as of 0.9.9, because all players are ported use {@link #getPlayerVersion(UUID)} */ @Deprecated boolean isPorted(UUID playerUUID); diff --git a/common/src/main/java/us/myles/ViaVersion/api/boss/BossBar.java b/common/src/main/java/us/myles/ViaVersion/api/boss/BossBar.java index 9398e8ed1..a1aeb7b0f 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/boss/BossBar.java +++ b/common/src/main/java/us/myles/ViaVersion/api/boss/BossBar.java @@ -6,6 +6,7 @@ import java.util.Set; import java.util.UUID; public abstract class BossBar { + /** * Get the current title * diff --git a/common/src/main/java/us/myles/ViaVersion/api/boss/BossColor.java b/common/src/main/java/us/myles/ViaVersion/api/boss/BossColor.java index fef66641a..802f93b3a 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/boss/BossColor.java +++ b/common/src/main/java/us/myles/ViaVersion/api/boss/BossColor.java @@ -1,10 +1,5 @@ package us.myles.ViaVersion.api.boss; -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -@RequiredArgsConstructor -@Getter public enum BossColor { PINK(0), BLUE(1), @@ -15,4 +10,12 @@ public enum BossColor { WHITE(6); private final int id; + + BossColor(int id) { + this.id = id; + } + + public int getId() { + return id; + } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/boss/BossFlag.java b/common/src/main/java/us/myles/ViaVersion/api/boss/BossFlag.java index 3c3afd0ef..5b72fd69a 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/boss/BossFlag.java +++ b/common/src/main/java/us/myles/ViaVersion/api/boss/BossFlag.java @@ -1,13 +1,16 @@ package us.myles.ViaVersion.api.boss; -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -@RequiredArgsConstructor -@Getter public enum BossFlag { DARKEN_SKY(1), PLAY_BOSS_MUSIC(2); private final int id; + + BossFlag(int id) { + this.id = id; + } + + public int getId() { + return id; + } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/boss/BossStyle.java b/common/src/main/java/us/myles/ViaVersion/api/boss/BossStyle.java index 712e25e7a..60dd209ea 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/boss/BossStyle.java +++ b/common/src/main/java/us/myles/ViaVersion/api/boss/BossStyle.java @@ -1,10 +1,5 @@ package us.myles.ViaVersion.api.boss; -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -@RequiredArgsConstructor -@Getter public enum BossStyle { SOLID(0), SEGMENTED_6(1), @@ -13,4 +8,12 @@ public enum BossStyle { SEGMENTED_20(4); private final int id; + + BossStyle(int id) { + this.id = id; + } + + public int getId() { + return id; + } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/protocol/Protocol.java b/common/src/main/java/us/myles/ViaVersion/api/protocol/Protocol.java index 73da1cce5..b7711a82b 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/protocol/Protocol.java +++ b/common/src/main/java/us/myles/ViaVersion/api/protocol/Protocol.java @@ -51,16 +51,6 @@ public abstract class Protocol { output.add(packet); } - /** - * Register listeners for this protocol - * - * @deprecated No longer used as listeners are registered in {@link us.myles.ViaVersion.api.platform.ViaPlatformLoader#load} - */ - @Deprecated - protected void registerListeners() { - - } - /** * Handle protocol registration phase, use this to register providers / tasks. * diff --git a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolPipeline.java b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolPipeline.java index e3e3d762d..25f5b1048 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolPipeline.java +++ b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolPipeline.java @@ -5,7 +5,6 @@ import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.platform.ViaPlatform; import us.myles.ViaVersion.packets.Direction; -import us.myles.ViaVersion.packets.PacketType; import us.myles.ViaVersion.packets.State; import us.myles.ViaVersion.protocols.base.ProtocolInfo; @@ -84,55 +83,23 @@ public class ProtocolPipeline extends Protocol { if (Via.getManager().isDebug()) { // Debug packet - String packet = "UNKNOWN"; - - int serverProtocol = userConnection.get(ProtocolInfo.class).getServerProtocolVersion(); int clientProtocol = userConnection.get(ProtocolInfo.class).getProtocolVersion(); - - // For 1.8/1.9 server version, eventually we'll probably get an API for this... - if (serverProtocol >= ProtocolVersion.v1_8.getId() && - serverProtocol <= ProtocolVersion.v1_9_3.getId()) { - PacketType type; - if (serverProtocol <= ProtocolVersion.v1_8.getId()) { - if (direction == Direction.INCOMING) { - type = PacketType.findNewPacket(state, direction, originalID); - } else { - type = PacketType.findOldPacket(state, direction, originalID); - } - } else { - type = PacketType.findNewPacket(state, direction, originalID); - } - if (type != null) { - // Filter :) This would be not hard coded too, sorry :( - if (type == PacketType.PLAY_CHUNK_DATA) return; - if (type == PacketType.PLAY_TIME_UPDATE) return; - if (type == PacketType.PLAY_KEEP_ALIVE) return; - if (type == PacketType.PLAY_KEEP_ALIVE_REQUEST) return; - if (type == PacketType.PLAY_ENTITY_LOOK_MOVE) return; - if (type == PacketType.PLAY_ENTITY_LOOK) return; - if (type == PacketType.PLAY_ENTITY_RELATIVE_MOVE) return; - if (type == PacketType.PLAY_PLAYER_POSITION_LOOK_REQUEST) return; - if (type == PacketType.PLAY_PLAYER_LOOK_REQUEST) return; - if (type == PacketType.PLAY_PLAYER_POSITION_REQUEST) return; - - packet = type.name(); - } - } - String name = packet + "[" + clientProtocol + "]"; ViaPlatform platform = Via.getPlatform(); String actualUsername = packetWrapper.user().get(ProtocolInfo.class).getUsername(); String username = actualUsername != null ? actualUsername + " " : ""; - platform.getLogger().log(Level.INFO, "{0}{1}: {2} {3} -> {4} [{5}] Value: {6}", + platform.getLogger().log(Level.INFO, "{0}{1} {2}: {3} (0x{4}) -> {5} (0x{6}) [{7}] {8}", new Object[]{ username, direction, state, originalID, + Integer.toHexString(originalID), packetWrapper.getId(), - name, + Integer.toHexString(packetWrapper.getId()), + Integer.toString(clientProtocol), packetWrapper }); } diff --git a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolRegistry.java b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolRegistry.java index 4ab95074e..ae3656a86 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolRegistry.java +++ b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolRegistry.java @@ -114,7 +114,6 @@ public class ProtocolRegistry { } if (Via.getPlatform().isPluginEnabled()) { - protocol.registerListeners(); protocol.register(Via.getManager().getProviders()); refreshVersions(); } else { @@ -133,7 +132,6 @@ public class ProtocolRegistry { public static void registerBaseProtocol(Protocol baseProtocol, Range supportedProtocols) { baseProtocols.add(new Pair<>(supportedProtocols, baseProtocol)); if (Via.getPlatform().isPluginEnabled()) { - baseProtocol.registerListeners(); baseProtocol.register(Via.getManager().getProviders()); refreshVersions(); } else { @@ -180,7 +178,6 @@ public class ProtocolRegistry { */ public static void onServerLoaded() { for (Protocol protocol : registerList) { - protocol.registerListeners(); protocol.register(Via.getManager().getProviders()); } registerList.clear(); diff --git a/common/src/main/java/us/myles/ViaVersion/boss/CommonBoss.java b/common/src/main/java/us/myles/ViaVersion/boss/CommonBoss.java index a23bf4918..748c7aae7 100644 --- a/common/src/main/java/us/myles/ViaVersion/boss/CommonBoss.java +++ b/common/src/main/java/us/myles/ViaVersion/boss/CommonBoss.java @@ -3,7 +3,6 @@ package us.myles.ViaVersion.boss; import com.google.common.base.Preconditions; import lombok.Getter; import lombok.NonNull; -import lombok.RequiredArgsConstructor; import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.boss.BossBar; @@ -19,14 +18,14 @@ import java.util.*; @Getter public abstract class CommonBoss extends BossBar { - private UUID uuid; + private final UUID uuid; private String title; private float health; private BossColor color; private BossStyle style; - private Set players; + private final Set players; private boolean visible; - private Set flags; + private final Set flags; public CommonBoss(String title, float health, BossColor color, BossStyle style) { Preconditions.checkNotNull(title, "Title cannot be null"); @@ -217,8 +216,6 @@ public abstract class CommonBoss extends BossBar { return bitmask; } - @RequiredArgsConstructor - @Getter private enum UpdateAction { ADD(0), REMOVE(1), @@ -228,5 +225,13 @@ public abstract class CommonBoss extends BossBar { UPDATE_FLAGS(5); private final int id; + + UpdateAction(int id) { + this.id = id; + } + + public int getId() { + return id; + } } } diff --git a/common/src/main/java/us/myles/ViaVersion/packets/PacketType.java b/common/src/main/java/us/myles/ViaVersion/packets/PacketType.java deleted file mode 100644 index e468f24b4..000000000 --- a/common/src/main/java/us/myles/ViaVersion/packets/PacketType.java +++ /dev/null @@ -1,208 +0,0 @@ -package us.myles.ViaVersion.packets; - -import java.util.HashMap; - -@Deprecated -public enum PacketType { - /* Handshake serverbound */ - HANDSHAKE(State.HANDSHAKE, Direction.INCOMING, 0x00), // Mapped - /* Login serverbound */ - LOGIN_START(State.LOGIN, Direction.INCOMING, 0x00), // Mapped - LOGIN_ENCRYPTION_RESPONSE(State.LOGIN, Direction.INCOMING, 0x01), // Mapped - /* Login clientbound */ - LOGIN_DISCONNECT(State.LOGIN, Direction.OUTGOING, 0x00), // Mapped - LOGIN_ENCRYPTION_REQUEST(State.LOGIN, Direction.OUTGOING, 0x01), // Mapped - LOGIN_SUCCESS(State.LOGIN, Direction.OUTGOING, 0x02), // Mapped - LOGIN_SETCOMPRESSION(State.LOGIN, Direction.OUTGOING, 0x03), // Mapped - - /* Status serverbound */ - STATUS_REQUEST(State.STATUS, Direction.INCOMING, 0x00), // Mapped - STATUS_PING(State.STATUS, Direction.INCOMING, 0x01), // Mapped - /* Status clientbound */ - STATUS_RESPONSE(State.STATUS, Direction.OUTGOING, 0x00), - STATUS_PONG(State.STATUS, Direction.OUTGOING, 0x01), - /* Play serverbound */ - PLAY_TP_CONFIRM(State.PLAY, Direction.INCOMING, -1, 0x00), // Mapped - PLAY_TAB_COMPLETE_REQUEST(State.PLAY, Direction.INCOMING, 0x14, 0x01), // Mapped - PLAY_CHAT_MESSAGE_CLIENT(State.PLAY, Direction.INCOMING, 0x01, 0x02), // Mapped - PLAY_CLIENT_STATUS(State.PLAY, Direction.INCOMING, 0x16, 0x03), // Mapped - PLAY_CLIENT_SETTINGS(State.PLAY, Direction.INCOMING, 0x15, 0x04), // Mapped - PLAY_CONFIRM_TRANS(State.PLAY, Direction.INCOMING, 0x0F, 0x05), // Mapped - PLAY_ENCHANT_ITEM(State.PLAY, Direction.INCOMING, 0x11, 0x06), // Mapped - PLAY_CLICK_WINDOW(State.PLAY, Direction.INCOMING, 0x0E, 0x07), // Mapped - PLAY_CLOSE_WINDOW_REQUEST(State.PLAY, Direction.INCOMING, 0x0D, 0x08), // Mapped - PLAY_PLUGIN_MESSAGE_REQUEST(State.PLAY, Direction.INCOMING, 0x17, 0x09), - PLAY_USE_ENTITY(State.PLAY, Direction.INCOMING, 0x02, 0x0A), // Mapped - PLAY_KEEP_ALIVE_REQUEST(State.PLAY, Direction.INCOMING, 0x00, 0x0B), // Mapped - PLAY_PLAYER_POSITION_REQUEST(State.PLAY, Direction.INCOMING, 0x04, 0x0C), // Mapped - PLAY_PLAYER_POSITION_LOOK_REQUEST(State.PLAY, Direction.INCOMING, 0x06, 0x0D), // Mapped - PLAY_PLAYER_LOOK_REQUEST(State.PLAY, Direction.INCOMING, 0x05, 0x0E), // Mapped - PLAY_PLAYER(State.PLAY, Direction.INCOMING, 0x03, 0x0F), // Mapped - PLAY_VEHICLE_MOVE_REQUEST(State.PLAY, Direction.INCOMING, -1, 0x10), // Mapped - PLAY_STEER_BOAT(State.PLAY, Direction.INCOMING, -1, 0x11), // Mapped - PLAY_PLAYER_ABILITIES_REQUEST(State.PLAY, Direction.INCOMING, 0x13, 0x12), // Mapped - PLAY_PLAYER_DIGGING(State.PLAY, Direction.INCOMING, 0x07, 0x13), // Mapped - PLAY_ENTITY_ACTION(State.PLAY, Direction.INCOMING, 0x0B, 0x14), // Mapped - PLAY_STEER_VEHICLE(State.PLAY, Direction.INCOMING, 0x0C, 0x15), // Mapped - - PLAY_RESOURCE_PACK_STATUS(State.PLAY, Direction.INCOMING, 0x19, 0x16), // Mapped - PLAY_HELD_ITEM_CHANGE_REQUEST(State.PLAY, Direction.INCOMING, 0x09, 0x17), // Mapped - - PLAY_CREATIVE_INVENTORY_ACTION(State.PLAY, Direction.INCOMING, 0x10, 0x18), // Mapped - PLAY_UPDATE_SIGN_REQUEST(State.PLAY, Direction.INCOMING, 0x12, 0x19), // Mapped - PLAY_ANIMATION_REQUEST(State.PLAY, Direction.INCOMING, 0x0A, 0x1A), // Mapped - PLAY_SPECTATE(State.PLAY, Direction.INCOMING, 0x18, 0x1B), // Mapped - PLAY_PLAYER_BLOCK_PLACEMENT(State.PLAY, Direction.INCOMING, 0x08, 0x1C), // Mapped - PLAY_USE_ITEM(State.PLAY, Direction.INCOMING, -1, 0x1D), // Mapped - /* Play clientbound */ - PLAY_SPAWN_OBJECT(State.PLAY, Direction.OUTGOING, 0x0E, 0x00), // Mapped - PLAY_SPAWN_XP_ORB(State.PLAY, Direction.OUTGOING, 0x11, 0x01), // Mapped - PLAY_SPAWN_GLOBAL_ENTITY(State.PLAY, Direction.OUTGOING, 0x2C, 0x02), // Mapped - PLAY_SPAWN_MOB(State.PLAY, Direction.OUTGOING, 0x0F, 0x03), // Mapped - PLAY_SPAWN_PAINTING(State.PLAY, Direction.OUTGOING, 0x10, 0x04), // Mapped - PLAY_SPAWN_PLAYER(State.PLAY, Direction.OUTGOING, 0x0C, 0x05), // Mapped - - PLAY_ANIMATION(State.PLAY, Direction.OUTGOING, 0x0B, 0x06), // Mapped - PLAY_STATS(State.PLAY, Direction.OUTGOING, 0x37, 0x07), // Mapped - - PLAY_BLOCK_BREAK_ANIMATION(State.PLAY, Direction.OUTGOING, 0x25, 0x08), // Mapped - PLAY_UPDATE_BLOCK_ENTITY(State.PLAY, Direction.OUTGOING, 0x35, 0x09), // Mapped - PLAY_BLOCK_ACTION(State.PLAY, Direction.OUTGOING, 0x24, 0x0A), // Mapped - PLAY_BLOCK_CHANGE(State.PLAY, Direction.OUTGOING, 0x23, 0x0B), // Mapped - - PLAY_BOSS_BAR(State.PLAY, Direction.OUTGOING, -1, 0x0C), - PLAY_SERVER_DIFFICULTY(State.PLAY, Direction.OUTGOING, 0x41, 0x0D), // Mapped - PLAY_TAB_COMPLETE(State.PLAY, Direction.OUTGOING, 0x3A, 0x0E), // Mapped - PLAY_CHAT_MESSAGE(State.PLAY, Direction.OUTGOING, 0x02, 0x0F), // Mapped - PLAY_MULTI_BLOCK_CHANGE(State.PLAY, Direction.OUTGOING, 0x22, 0x10), // Mapped - PLAY_CONFIRM_TRANSACTION(State.PLAY, Direction.OUTGOING, 0x32, 0x11), // Mapped - PLAY_CLOSE_WINDOW(State.PLAY, Direction.OUTGOING, 0x2E, 0x12), // Mapped - PLAY_OPEN_WINDOW(State.PLAY, Direction.OUTGOING, 0x2D, 0x13), // Mapped - PLAY_WINDOW_ITEMS(State.PLAY, Direction.OUTGOING, 0x30, 0x14), // Mapped - PLAY_WINDOW_PROPERTY(State.PLAY, Direction.OUTGOING, 0x31, 0x15), // Mapped - PLAY_SET_SLOT(State.PLAY, Direction.OUTGOING, 0x2F, 0x16), // Mapped - PLAY_SET_COOLDOWN(State.PLAY, Direction.OUTGOING, -1, 0x17), - PLAY_PLUGIN_MESSAGE(State.PLAY, Direction.OUTGOING, 0x3F, 0x18), // Mapped - PLAY_NAMED_SOUND_EFFECT(State.PLAY, Direction.OUTGOING, 0x29, 0x19), // Mapped - PLAY_DISCONNECT(State.PLAY, Direction.OUTGOING, 0x40, 0x1A), // Mapped - PLAY_ENTITY_STATUS(State.PLAY, Direction.OUTGOING, 0x1A, 0x1B), // Mapped - PLAY_EXPLOSION(State.PLAY, Direction.OUTGOING, 0x27, 0x1C), // Mapped - PLAY_UNLOAD_CHUNK(State.PLAY, Direction.OUTGOING, -1, 0x1D), - PLAY_CHANGE_GAME_STATE(State.PLAY, Direction.OUTGOING, 0x2B, 0x1E), - PLAY_KEEP_ALIVE(State.PLAY, Direction.OUTGOING, 0x00, 0x1F), // Mapped - PLAY_CHUNK_DATA(State.PLAY, Direction.OUTGOING, 0x21, 0x20), // Mapped - PLAY_EFFECT(State.PLAY, Direction.OUTGOING, 0x28, 0x21), // Mapped - PLAY_PARTICLE(State.PLAY, Direction.OUTGOING, 0x2A, 0x22), // Mapped - PLAY_JOIN_GAME(State.PLAY, Direction.OUTGOING, 0x01, 0x23), // Mapped - PLAY_MAP(State.PLAY, Direction.OUTGOING, 0x34, 0x24), // Mapped - PLAY_ENTITY_RELATIVE_MOVE(State.PLAY, Direction.OUTGOING, 0x15, 0x25), // Mapped - PLAY_ENTITY_LOOK_MOVE(State.PLAY, Direction.OUTGOING, 0x17, 0x26), // Mapped - PLAY_ENTITY_LOOK(State.PLAY, Direction.OUTGOING, 0x16, 0x27), // Mapped - PLAY_ENTITY(State.PLAY, Direction.OUTGOING, 0x14, 0x28), // Mapped - PLAY_VEHICLE_MOVE(State.PLAY, Direction.OUTGOING, -1, 0x29), - PLAY_OPEN_SIGN_EDITOR(State.PLAY, Direction.OUTGOING, 0x36, 0x2A), // Mapped - PLAY_PLAYER_ABILITIES(State.PLAY, Direction.OUTGOING, 0x39, 0x2B), // Mapped - PLAY_COMBAT_EVENT(State.PLAY, Direction.OUTGOING, 0x42, 0x2C), // Mapped - PLAY_PLAYER_LIST_ITEM(State.PLAY, Direction.OUTGOING, 0x38, 0x2D), // Mapped - PLAY_PLAYER_POSITION_LOOK(State.PLAY, Direction.OUTGOING, 0x08, 0x2E), // Mapped - PLAY_USE_BED(State.PLAY, Direction.OUTGOING, 0x0A, 0x2F), // Mapped - PLAY_DESTROY_ENTITIES(State.PLAY, Direction.OUTGOING, 0x13, 0x30), // Mapped - PLAY_REMOVE_ENTITY_EFFECT(State.PLAY, Direction.OUTGOING, 0x1E, 0x31), // Mapped - PLAY_RESOURCE_PACK_SEND(State.PLAY, Direction.OUTGOING, 0x48, 0x32), // Mapped - PLAY_RESPAWN(State.PLAY, Direction.OUTGOING, 0x07, 0x33), // Mapped - PLAY_ENTITY_HEAD_LOOK(State.PLAY, Direction.OUTGOING, 0x19, 0x34), // Mapped - PLAY_WORLD_BORDER(State.PLAY, Direction.OUTGOING, 0x44, 0x35), // Mapped - PLAY_CAMERA(State.PLAY, Direction.OUTGOING, 0x43, 0x36), // Mapped - PLAY_HELD_ITEM_CHANGE(State.PLAY, Direction.OUTGOING, 0x09, 0x37), // Mapped - PLAY_DISPLAY_SCOREBOARD(State.PLAY, Direction.OUTGOING, 0x3D, 0x38), // Mapped - PLAY_ENTITY_METADATA(State.PLAY, Direction.OUTGOING, 0x1C, 0x39), // Mapped - PLAY_ATTACH_ENTITY(State.PLAY, Direction.OUTGOING, 0x1B, 0x3A), // Mapped - PLAY_ENTITY_VELOCITY(State.PLAY, Direction.OUTGOING, 0x12, 0x3B), // Mapped - PLAY_ENTITY_EQUIPMENT(State.PLAY, Direction.OUTGOING, 0x04, 0x3C), // Mapped - PLAY_SET_XP(State.PLAY, Direction.OUTGOING, 0x1F, 0x3D), // Mapped - PLAY_UPDATE_HEALTH(State.PLAY, Direction.OUTGOING, 0x06, 0x3E), // Mapped - PLAY_SCOREBOARD_OBJ(State.PLAY, Direction.OUTGOING, 0x3B, 0x3F), // Mapped - PLAY_SET_PASSENGERS(State.PLAY, Direction.OUTGOING, -1, 0x40), - PLAY_TEAM(State.PLAY, Direction.OUTGOING, 0x3E, 0x41), // Mapped - PLAY_UPDATE_SCORE(State.PLAY, Direction.OUTGOING, 0x3C, 0x42), // Mapped - PLAY_SPAWN_POSITION(State.PLAY, Direction.OUTGOING, 0x05, 0x43), // Mapped - PLAY_TIME_UPDATE(State.PLAY, Direction.OUTGOING, 0x03, 0x44), // Mapped - PLAY_TITLE(State.PLAY, Direction.OUTGOING, 0x45, 0x45), // Mapped - PLAY_UPDATE_SIGN(State.PLAY, Direction.OUTGOING, 0x33, 0x46), // Mapped - PLAY_SOUND_EFFECT(State.PLAY, Direction.OUTGOING, -1, 0x47), - PLAY_PLAYER_LIST_HEADER_FOOTER(State.PLAY, Direction.OUTGOING, 0x47, 0x48), // Mapped - PLAY_COLLECT_ITEM(State.PLAY, Direction.OUTGOING, 0x0D, 0x49), // Mapped - PLAY_ENTITY_TELEPORT(State.PLAY, Direction.OUTGOING, 0x18, 0x4A), // Mapped - PLAY_ENTITY_PROPERTIES(State.PLAY, Direction.OUTGOING, 0x20, 0x4B), // Mapped - PLAY_ENTITY_EFFECT(State.PLAY, Direction.OUTGOING, 0x1D, 0x4C), // Mapped - - PLAY_MAP_CHUNK_BULK(State.PLAY, Direction.OUTGOING, 0x26, -1), - PLAY_SET_COMPRESSION(State.PLAY, Direction.OUTGOING, 0x46, -1), - PLAY_UPDATE_ENTITY_NBT(State.PLAY, Direction.OUTGOING, 0x49, -1); - - private static final HashMap oldids = new HashMap<>(); - private static final HashMap newids = new HashMap<>(); - - static { - for (PacketType pt : PacketType.values()) { - oldids.put(toShort((short) pt.getPacketID(), (short) pt.getDirection().ordinal(), (short) pt.getState().ordinal()), pt); - newids.put(toShort((short) pt.getNewPacketID(), (short) pt.getDirection().ordinal(), (short) pt.getState().ordinal()), pt); - } - } - - private final State state; - private final Direction direction; - private final int packetID; - private final int newPacketID; - - PacketType(State state, Direction direction, int packetID) { - this.state = state; - this.direction = direction; - this.packetID = packetID; - this.newPacketID = packetID; - } - - PacketType(State state, Direction direction, int packetID, int newPacketID) { - this.state = state; - this.direction = direction; - this.packetID = packetID; - this.newPacketID = newPacketID; - } - - public static PacketType findNewPacket(State state, Direction direction, int id) { - return newids.get(toShort((short) id, (short) direction.ordinal(), (short) state.ordinal())); - } - - public static PacketType findOldPacket(State state, Direction direction, int id) { - return oldids.get(toShort((short) id, (short) direction.ordinal(), (short) state.ordinal())); - } - - public static PacketType getIncomingPacket(State state, int id) { - return findNewPacket(state, Direction.INCOMING, id); - } - - public static PacketType getOutgoingPacket(State state, int id) { - return findOldPacket(state, Direction.OUTGOING, id); - } - - private static short toShort(short id, short direction, short state) { - return (short) ((id & 0x00FF) | (direction << 8) & 0x0F00 | (state << 12) & 0xF000); - } - - public State getState() { - return state; - } - - public Direction getDirection() { - return direction; - } - - public int getPacketID() { - return packetID; - } - - public int getNewPacketID() { - return newPacketID; - } - -} diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol1_7.java b/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol1_7.java index 6b79c2632..799539d2d 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol1_7.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/base/BaseProtocol1_7.java @@ -5,8 +5,6 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import io.netty.channel.ChannelFuture; -import io.netty.util.concurrent.Future; -import io.netty.util.concurrent.GenericFutureListener; import net.md_5.bungee.api.ChatColor; import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.Pair; @@ -174,12 +172,7 @@ public class BaseProtocol1_7 extends Protocol { // Send and close ChannelFuture future = disconnectPacket.sendFuture(BaseProtocol.class); - future.addListener(new GenericFutureListener>() { - @Override - public void operationComplete(Future future) throws Exception { - wrapper.user().getChannel().close(); - } - }); + future.addListener(f -> wrapper.user().getChannel().close()); } } });