diff --git a/.travis.yml b/.travis.yml
index b57cd3069..ce6c32a37 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,6 @@ sudo: false
language: java
jdk:
- - oraclejdk8
- openjdk11
cache:
diff --git a/README.md b/README.md
index cc4b9c37b..8440ced50 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# ViaVersion 2.1.1 - Spigot, Sponge, BungeeCord, Velocity
+# ViaVersion 2.1.3 - Spigot, Sponge, BungeeCord, Velocity
[![Build Status](https://travis-ci.com/ViaVersion/ViaVersion.svg?branch=master)](https://travis-ci.com/ViaVersion/ViaVersion)
[![Discord](https://img.shields.io/badge/chat-on%20discord-blue.svg)](https://viaversion.com/discord)
diff --git a/bukkit/pom.xml b/bukkit/pom.xml
index 041162ecf..e643bc718 100644
--- a/bukkit/pom.xml
+++ b/bukkit/pom.xml
@@ -5,7 +5,7 @@
viaversion-parent
us.myles
- 2.1.3-SNAPSHOT
+ 2.1.4-SNAPSHOT
4.0.0
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java b/bukkit/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java
index ada518e35..5f7cf42af 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/ViaVersionPlugin.java
@@ -28,17 +28,17 @@ import java.util.UUID;
public class ViaVersionPlugin extends JavaPlugin implements ViaPlatform {
- private BukkitCommandHandler commandHandler;
+ private final BukkitCommandHandler commandHandler;
private boolean compatSpigotBuild = false;
private boolean spigot = true;
private boolean lateBind = false;
private boolean protocolSupport = false;
@Getter
- private BukkitViaConfig conf;
+ private final BukkitViaConfig conf;
@Getter
- private ViaAPI api = new BukkitViaAPI(this);
- private List queuedTasks = new ArrayList<>();
- private List asyncQueuedTasks = new ArrayList<>();
+ private final ViaAPI api = new BukkitViaAPI(this);
+ private final List queuedTasks = new ArrayList<>();
+ private final List asyncQueuedTasks = new ArrayList<>();
public ViaVersionPlugin() {
// Command handler
@@ -238,7 +238,7 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaPlatform {
if (Bukkit.getPluginManager().getPlugin("ProtocolLib") != null) {
getLogger().severe("ViaVersion is already loaded, we're going to kick all the players... because otherwise we'll crash because of ProtocolLib.");
for (Player player : Bukkit.getOnlinePlayers()) {
- player.kickPlayer(ChatColor.translateAlternateColorCodes('&', getConf().getReloadDisconnectMsg()));
+ player.kickPlayer(ChatColor.translateAlternateColorCodes('&', conf.getReloadDisconnectMsg()));
}
} else {
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/commands/BukkitCommandSender.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/commands/BukkitCommandSender.java
index e1288ca29..9e08186ca 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/commands/BukkitCommandSender.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/commands/BukkitCommandSender.java
@@ -9,7 +9,7 @@ import java.util.UUID;
@AllArgsConstructor
public class BukkitCommandSender implements ViaCommandSender {
- private CommandSender sender;
+ private final CommandSender sender;
@Override
public boolean hasPermission(String permission) {
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java
index a44dc1e74..760839394 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java
@@ -23,12 +23,13 @@ public class PlayerSneakListener extends ViaBukkitListener {
private static final float HEIGHT_1_9 = 1.6F;
private static final float DEFAULT_WIDTH = 0.6F;
+ private final boolean is1_9Fix;
+ private final boolean is1_14Fix;
private Map sneaking; // true = 1.14+, else false
private Set sneakingUuids;
private Method getHandle;
private Method setSize;
- private boolean is1_9Fix;
- private boolean is1_14Fix;
+
private boolean useCache;
public PlayerSneakListener(ViaVersionPlugin plugin, boolean is1_9Fix, boolean is1_14Fix) {
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java
index 4cf432898..4154ad0c1 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java
@@ -13,12 +13,7 @@ import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
public class HandItemCache extends BukkitRunnable {
- public static boolean CACHE = false;
- private static Map handCache = new ConcurrentHashMap<>();
-
- public static Item getHandItem(UUID player) {
- return handCache.get(player);
- }
+ private final Map handCache = new ConcurrentHashMap<>();
@Override
public void run() {
@@ -34,6 +29,10 @@ public class HandItemCache extends BukkitRunnable {
}
}
+ public Item getHandItem(UUID player) {
+ return handCache.get(player);
+ }
+
public static Item convert(ItemStack itemInHand) {
if (itemInHand == null) return new Item((short) 0, (byte) 0, (short) 0, null);
return new Item((short) itemInHand.getTypeId(), (byte) itemInHand.getAmount(), itemInHand.getDurability(), null);
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitTaskId.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitTaskId.java
index 50685a297..462aa0848 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitTaskId.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitTaskId.java
@@ -7,5 +7,5 @@ import us.myles.ViaVersion.api.platform.TaskId;
@Getter
@AllArgsConstructor
public class BukkitTaskId implements TaskId {
- private Integer object;
+ private final Integer object;
}
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 d76cece62..a2ca54db9 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
@@ -26,7 +26,7 @@ import java.util.UUID;
@AllArgsConstructor
public class BukkitViaAPI implements ViaAPI, ViaVersionAPI {
- private ViaVersionPlugin plugin;
+ private final ViaVersionPlugin plugin;
@Override
public int getPlayerVersion(@NonNull Player player) {
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaInjector.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaInjector.java
index 004cb07ea..965098e06 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaInjector.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaInjector.java
@@ -21,8 +21,8 @@ import java.lang.reflect.Method;
import java.util.List;
public class BukkitViaInjector implements ViaInjector {
- private List injectedFutures = new ConcurrentList<>();
- private List> injectedLists = new ConcurrentList<>();
+ private final List injectedFutures = new ConcurrentList<>();
+ private final List> injectedLists = new ConcurrentList<>();
@Override
public void inject() throws Exception {
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java
index b2e3e82e8..e1ca3ed94 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java
@@ -37,10 +37,12 @@ import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;
public class BukkitViaLoader implements ViaPlatformLoader {
- private ViaVersionPlugin plugin;
+ private final ViaVersionPlugin plugin;
- private Set listeners = new HashSet<>();
- private Set tasks = new HashSet<>();
+ private final Set listeners = new HashSet<>();
+ private final Set tasks = new HashSet<>();
+
+ private HandItemCache handItemCache;
public BukkitViaLoader(ViaVersionPlugin plugin) {
this.plugin = plugin;
@@ -94,8 +96,8 @@ public class BukkitViaLoader implements ViaPlatformLoader {
storeListener(new PaperPatch(plugin)).register();
}
if (plugin.getConf().isItemCache()) {
- tasks.add(new HandItemCache().runTaskTimerAsynchronously(plugin, 2L, 2L)); // Updates player's items :)
- HandItemCache.CACHE = true;
+ handItemCache = new HandItemCache();
+ tasks.add(handItemCache.runTaskTimerAsynchronously(plugin, 2L, 2L)); // Updates player's items :)
}
/* Providers */
@@ -110,8 +112,8 @@ public class BukkitViaLoader implements ViaPlatformLoader {
Via.getManager().getProviders().use(HandItemProvider.class, new HandItemProvider() {
@Override
public Item getHandItem(final UserConnection info) {
- if (HandItemCache.CACHE) {
- return HandItemCache.getHandItem(info.get(ProtocolInfo.class).getUuid());
+ if (handItemCache != null) {
+ return handItemCache.getHandItem(info.get(ProtocolInfo.class).getUuid());
} else {
try {
return Bukkit.getScheduler().callSyncMethod(Bukkit.getPluginManager().getPlugin("ViaVersion"), new Callable- () {
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/providers/BukkitInventoryQuickMoveProvider.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/providers/BukkitInventoryQuickMoveProvider.java
index f2586442c..0fbcf42fc 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/providers/BukkitInventoryQuickMoveProvider.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/providers/BukkitInventoryQuickMoveProvider.java
@@ -26,8 +26,8 @@ import java.util.logging.Level;
public class BukkitInventoryQuickMoveProvider extends InventoryQuickMoveProvider {
- private static Map updateTasks = new ConcurrentHashMap();
- private boolean supported;
+ private final Map updateTasks = new ConcurrentHashMap<>();
+ private final boolean supported;
// packet class
private Class> windowClickPacketClass;
private Object clickTypeEnum;
@@ -93,7 +93,7 @@ public class BukkitInventoryQuickMoveProvider extends InventoryQuickMoveProvider
if (tinvtype == InventoryType.BREWING) {
// 1.9 added the blaze powder slot to brewing stand fix for 1.8 servers
if (slotId >= 5 && slotId <= 40) {
- slotId = (short) (slotId - 1);
+ slotId -= 1;
}
}
}
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/tasks/protocol1_12to1_11_1/BukkitInventoryUpdateTask.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/tasks/protocol1_12to1_11_1/BukkitInventoryUpdateTask.java
index 529363b8c..58eb01430 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/tasks/protocol1_12to1_11_1/BukkitInventoryUpdateTask.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/tasks/protocol1_12to1_11_1/BukkitInventoryUpdateTask.java
@@ -12,7 +12,7 @@ import java.util.UUID;
public class BukkitInventoryUpdateTask implements Runnable {
- private BukkitInventoryQuickMoveProvider provider;
+ private final BukkitInventoryQuickMoveProvider provider;
private final UUID uuid;
private final List items;
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/util/NMSUtil.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/util/NMSUtil.java
index d01884ecb..b3f6186d7 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/util/NMSUtil.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/util/NMSUtil.java
@@ -3,8 +3,8 @@ package us.myles.ViaVersion.bukkit.util;
import org.bukkit.Bukkit;
public class NMSUtil {
- private static String BASE = Bukkit.getServer().getClass().getPackage().getName();
- private static String NMS = BASE.replace("org.bukkit.craftbukkit", "net.minecraft.server");
+ private static final String BASE = Bukkit.getServer().getClass().getPackage().getName();
+ private static final String NMS = BASE.replace("org.bukkit.craftbukkit", "net.minecraft.server");
public static Class> nms(String className) throws ClassNotFoundException {
return Class.forName(NMS + "." + className);
diff --git a/bungee/pom.xml b/bungee/pom.xml
index 57fd5d83f..991a2f6df 100644
--- a/bungee/pom.xml
+++ b/bungee/pom.xml
@@ -5,7 +5,7 @@
viaversion-parent
us.myles
- 2.1.3-SNAPSHOT
+ 2.1.4-SNAPSHOT
4.0.0
diff --git a/bungee/src/main/java/us/myles/ViaVersion/BungeePlugin.java b/bungee/src/main/java/us/myles/ViaVersion/BungeePlugin.java
index 6f3cc1b81..f3c0a677a 100644
--- a/bungee/src/main/java/us/myles/ViaVersion/BungeePlugin.java
+++ b/bungee/src/main/java/us/myles/ViaVersion/BungeePlugin.java
@@ -7,6 +7,7 @@ import net.md_5.bungee.api.event.PlayerDisconnectEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.event.EventHandler;
+import net.md_5.bungee.protocol.ProtocolConstants;
import us.myles.ViaVersion.api.Via;
import us.myles.ViaVersion.api.ViaAPI;
import us.myles.ViaVersion.api.command.ViaCommandSender;
@@ -35,6 +36,17 @@ public class BungeePlugin extends Plugin implements ViaPlatform, Listener {
@Override
public void onLoad() {
+ try {
+ ProtocolConstants.class.getField("MINECRAFT_1_14_4");
+ } catch (NoSuchFieldException e) {
+ getLogger().warning(" / \\");
+ getLogger().warning(" / \\");
+ getLogger().warning(" / | \\");
+ getLogger().warning(" / | \\ BUNGEECORD IS OUTDATED");
+ getLogger().warning(" / \\ VIAVERSION MAY NOT WORK AS INTENDED");
+ getLogger().warning(" / o \\");
+ getLogger().warning("/_____________\\");
+ }
api = new BungeeViaAPI();
config = new BungeeViaConfig(getDataFolder());
commandHandler = new BungeeCommandHandler();
diff --git a/common/pom.xml b/common/pom.xml
index 5fd695d26..997820086 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -5,7 +5,7 @@
viaversion-parent
us.myles
- 2.1.3-SNAPSHOT
+ 2.1.4-SNAPSHOT
4.0.0
diff --git a/common/src/main/java/us/myles/ViaVersion/AbstractViaConfig.java b/common/src/main/java/us/myles/ViaVersion/AbstractViaConfig.java
index 94a69c280..5213002b5 100644
--- a/common/src/main/java/us/myles/ViaVersion/AbstractViaConfig.java
+++ b/common/src/main/java/us/myles/ViaVersion/AbstractViaConfig.java
@@ -8,7 +8,7 @@ import java.util.List;
public abstract class AbstractViaConfig extends Config implements ViaVersionConfig {
- public AbstractViaConfig(File configFile) {
+ protected AbstractViaConfig(File configFile) {
super(configFile);
}
diff --git a/common/src/main/java/us/myles/ViaVersion/ViaManager.java b/common/src/main/java/us/myles/ViaVersion/ViaManager.java
index a733cbb94..25563b050 100644
--- a/common/src/main/java/us/myles/ViaVersion/ViaManager.java
+++ b/common/src/main/java/us/myles/ViaVersion/ViaManager.java
@@ -21,14 +21,14 @@ import java.util.concurrent.ConcurrentHashMap;
@Getter
public class ViaManager {
private final Map portedPlayers = new ConcurrentHashMap<>();
- private ViaPlatform platform;
- private ViaProviders providers = new ViaProviders();
+ private final ViaPlatform platform;
+ private final ViaProviders providers = new ViaProviders();
@Setter
private boolean debug = false;
// Internals
- private ViaInjector injector;
- private ViaCommandHandler commandHandler;
- private ViaPlatformLoader loader;
+ private final ViaInjector injector;
+ private final ViaCommandHandler commandHandler;
+ private final ViaPlatformLoader loader;
@Builder
public ViaManager(ViaPlatform platform, ViaInjector injector, ViaCommandHandler commandHandler, ViaPlatformLoader loader) {
@@ -52,19 +52,14 @@ public class ViaManager {
try {
injector.inject();
} catch (Exception e) {
- getPlatform().getLogger().severe("ViaVersion failed to inject:");
+ platform.getLogger().severe("ViaVersion failed to inject:");
e.printStackTrace();
return;
}
// Mark as injected
- System.setProperty("ViaVersion", getPlatform().getPluginVersion());
+ System.setProperty("ViaVersion", platform.getPluginVersion());
// If successful
- platform.runSync(new Runnable() {
- @Override
- public void run() {
- onServerLoaded();
- }
- });
+ platform.runSync(this::onServerLoaded);
}
@@ -73,14 +68,14 @@ public class ViaManager {
try {
ProtocolRegistry.SERVER_PROTOCOL = injector.getServerProtocolVersion();
} catch (Exception e) {
- getPlatform().getLogger().severe("ViaVersion failed to get the server protocol!");
+ platform.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));
+ platform.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.");
+ platform.getLogger().warning("ViaVersion does not have any compatible versions for this server version, please read our resource page carefully.");
}
}
// Load Listeners / Tasks
@@ -95,11 +90,11 @@ public class ViaManager {
public void destroy() {
// Uninject
- getPlatform().getLogger().info("ViaVersion is disabling, if this is a reload and you experience issues consider rebooting.");
+ platform.getLogger().info("ViaVersion is disabling, if this is a reload and you experience issues consider rebooting.");
try {
injector.uninject();
} catch (Exception e) {
- getPlatform().getLogger().severe("ViaVersion failed to uninject:");
+ platform.getLogger().severe("ViaVersion failed to uninject:");
e.printStackTrace();
}
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 29f583064..d56877e38 100644
--- a/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java
+++ b/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java
@@ -224,7 +224,7 @@ public class PacketWrapper {
if (id != -1) {
Type.VAR_INT.write(buffer, id);
}
- if (readableObjects.size() > 0) {
+ if (!readableObjects.isEmpty()) {
packetValues.addAll(readableObjects);
readableObjects.clear();
}
diff --git a/common/src/main/java/us/myles/ViaVersion/api/data/Mappings.java b/common/src/main/java/us/myles/ViaVersion/api/data/Mappings.java
index 3999c5a9c..bb70eb659 100644
--- a/common/src/main/java/us/myles/ViaVersion/api/data/Mappings.java
+++ b/common/src/main/java/us/myles/ViaVersion/api/data/Mappings.java
@@ -1,6 +1,34 @@
package us.myles.ViaVersion.api.data;
-public interface Mappings {
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
- int getNewId(int old);
+import java.util.Arrays;
+
+public class Mappings {
+ protected final short[] oldToNew;
+
+ public Mappings(int size, JsonObject oldMapping, JsonObject newMapping) {
+ oldToNew = new short[size];
+ Arrays.fill(oldToNew, (short) -1);
+ MappingDataLoader.mapIdentifiers(oldToNew, oldMapping, newMapping);
+ }
+
+ public Mappings(JsonObject oldMapping, JsonObject newMapping) {
+ this(oldMapping.entrySet().size(), oldMapping, newMapping);
+ }
+
+ public Mappings(int size, JsonArray oldMapping, JsonArray newMapping) {
+ oldToNew = new short[size];
+ Arrays.fill(oldToNew, (short) -1);
+ MappingDataLoader.mapIdentifiers(oldToNew, oldMapping, newMapping);
+ }
+
+ public Mappings(JsonArray oldMapping, JsonArray newMapping) {
+ this(oldMapping.size(), oldMapping, newMapping);
+ }
+
+ public int getNewId(int old) {
+ return old >= 0 && old < oldToNew.length ? oldToNew[old] : -1;
+ }
}
diff --git a/common/src/main/java/us/myles/ViaVersion/api/data/StoredObject.java b/common/src/main/java/us/myles/ViaVersion/api/data/StoredObject.java
index 80d7e2a85..3b9f8c3a9 100644
--- a/common/src/main/java/us/myles/ViaVersion/api/data/StoredObject.java
+++ b/common/src/main/java/us/myles/ViaVersion/api/data/StoredObject.java
@@ -6,5 +6,5 @@ import lombok.Getter;
@Getter
@AllArgsConstructor
public class StoredObject {
- private UserConnection user;
+ private final UserConnection user;
}
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 f8368bee1..05fec74fa 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
@@ -19,6 +19,7 @@ import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.Protocol1_13To1_12_2;
import us.myles.ViaVersion.protocols.protocol1_14_1to1_14.Protocol1_14_1To1_14;
import us.myles.ViaVersion.protocols.protocol1_14_2to1_14_1.Protocol1_14_2To1_14_1;
import us.myles.ViaVersion.protocols.protocol1_14_3to1_14_2.Protocol1_14_3To1_14_2;
+import us.myles.ViaVersion.protocols.protocol1_14_4to1_14_3.Protocol1_14_4To1_14_3;
import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.Protocol1_14To1_13_2;
import us.myles.ViaVersion.protocols.protocol1_9_1_2to1_9_3_4.Protocol1_9_1_2To1_9_3_4;
import us.myles.ViaVersion.protocols.protocol1_9_1to1_9.Protocol1_9_1To1_9;
@@ -42,32 +43,44 @@ public class ProtocolRegistry {
static {
// Base Protocol
registerBaseProtocol(BASE_PROTOCOL, Range.lessThan(Integer.MIN_VALUE));
- registerBaseProtocol(new BaseProtocol1_7(), Range.all());
+ registerBaseProtocol(new BaseProtocol1_7(), Range.all());
// Register built in protocols
- registerProtocol(new Protocol1_9To1_8(), Collections.singletonList(ProtocolVersion.v1_9.getId()), ProtocolVersion.v1_8.getId());
+ registerProtocol(new Protocol1_9To1_8(), ProtocolVersion.v1_9, ProtocolVersion.v1_8);
registerProtocol(new Protocol1_9_1To1_9(), Arrays.asList(ProtocolVersion.v1_9_1.getId(), ProtocolVersion.v1_9_2.getId()), ProtocolVersion.v1_9.getId());
- registerProtocol(new Protocol1_9_3To1_9_1_2(), Collections.singletonList(ProtocolVersion.v1_9_3.getId()), ProtocolVersion.v1_9_2.getId());
+ registerProtocol(new Protocol1_9_3To1_9_1_2(), ProtocolVersion.v1_9_3, ProtocolVersion.v1_9_2);
// Only supported for 1.9.4 server to 1.9 (nothing else)
- registerProtocol(new Protocol1_9To1_9_1(), Collections.singletonList(ProtocolVersion.v1_9.getId()), ProtocolVersion.v1_9_2.getId());
+ registerProtocol(new Protocol1_9To1_9_1(), ProtocolVersion.v1_9, ProtocolVersion.v1_9_2);
registerProtocol(new Protocol1_9_1_2To1_9_3_4(), Arrays.asList(ProtocolVersion.v1_9_1.getId(), ProtocolVersion.v1_9_2.getId()), ProtocolVersion.v1_9_3.getId());
- registerProtocol(new Protocol1_10To1_9_3_4(), Collections.singletonList(ProtocolVersion.v1_10.getId()), ProtocolVersion.v1_9_3.getId());
+ registerProtocol(new Protocol1_10To1_9_3_4(), ProtocolVersion.v1_10, ProtocolVersion.v1_9_3);
- registerProtocol(new Protocol1_11To1_10(), Collections.singletonList(ProtocolVersion.v1_11.getId()), ProtocolVersion.v1_10.getId());
- registerProtocol(new Protocol1_11_1To1_11(), Collections.singletonList(ProtocolVersion.v1_11_1.getId()), ProtocolVersion.v1_11.getId());
+ registerProtocol(new Protocol1_11To1_10(), ProtocolVersion.v1_11, ProtocolVersion.v1_10);
+ registerProtocol(new Protocol1_11_1To1_11(), ProtocolVersion.v1_11_1, ProtocolVersion.v1_11);
- registerProtocol(new Protocol1_12To1_11_1(), Collections.singletonList(ProtocolVersion.v1_12.getId()), ProtocolVersion.v1_11_1.getId());
- registerProtocol(new Protocol1_12_1To1_12(), Collections.singletonList(ProtocolVersion.v1_12_1.getId()), ProtocolVersion.v1_12.getId());
- registerProtocol(new Protocol1_12_2To1_12_1(), Collections.singletonList(ProtocolVersion.v1_12_2.getId()), ProtocolVersion.v1_12_1.getId());
+ registerProtocol(new Protocol1_12To1_11_1(), ProtocolVersion.v1_12, ProtocolVersion.v1_11_1);
+ registerProtocol(new Protocol1_12_1To1_12(), ProtocolVersion.v1_12_1, ProtocolVersion.v1_12);
+ registerProtocol(new Protocol1_12_2To1_12_1(), ProtocolVersion.v1_12_2, ProtocolVersion.v1_12_1);
- registerProtocol(new Protocol1_13To1_12_2(), Collections.singletonList(ProtocolVersion.v1_13.getId()), ProtocolVersion.v1_12_2.getId());
- registerProtocol(new Protocol1_13_1To1_13(), Arrays.asList(ProtocolVersion.v1_13_1.getId()), ProtocolVersion.v1_13.getId());
- registerProtocol(new Protocol1_13_2To1_13_1(), Arrays.asList(ProtocolVersion.v1_13_2.getId()), ProtocolVersion.v1_13_1.getId());
+ registerProtocol(new Protocol1_13To1_12_2(), ProtocolVersion.v1_13, ProtocolVersion.v1_12_2);
+ registerProtocol(new Protocol1_13_1To1_13(), ProtocolVersion.v1_13_1, ProtocolVersion.v1_13);
+ registerProtocol(new Protocol1_13_2To1_13_1(), ProtocolVersion.v1_13_2, ProtocolVersion.v1_13_1);
- registerProtocol(new Protocol1_14To1_13_2(), Arrays.asList(ProtocolVersion.v1_14.getId()), ProtocolVersion.v1_13_2.getId());
- registerProtocol(new Protocol1_14_1To1_14(), Arrays.asList(ProtocolVersion.v1_14_1.getId()), ProtocolVersion.v1_14.getId());
- registerProtocol(new Protocol1_14_2To1_14_1(), Arrays.asList(ProtocolVersion.v1_14_2.getId()), ProtocolVersion.v1_14_1.getId());
- registerProtocol(new Protocol1_14_3To1_14_2(), Arrays.asList(ProtocolVersion.v1_14_3.getId()), ProtocolVersion.v1_14_2.getId());
+ registerProtocol(new Protocol1_14To1_13_2(), ProtocolVersion.v1_14, ProtocolVersion.v1_13_2);
+ registerProtocol(new Protocol1_14_1To1_14(), ProtocolVersion.v1_14_1, ProtocolVersion.v1_14);
+ registerProtocol(new Protocol1_14_2To1_14_1(), ProtocolVersion.v1_14_2, ProtocolVersion.v1_14_1);
+ registerProtocol(new Protocol1_14_3To1_14_2(), ProtocolVersion.v1_14_3, ProtocolVersion.v1_14_2);
+ registerProtocol(new Protocol1_14_4To1_14_3(), ProtocolVersion.v1_14_4, ProtocolVersion.v1_14_3);
+ }
+
+ /**
+ * Register a protocol
+ *
+ * @param protocol The protocol to register.
+ * @param supported Supported client versions.
+ * @param output The output server version it converts to.
+ */
+ public static void registerProtocol(Protocol protocol, ProtocolVersion supported, ProtocolVersion output) {
+ registerProtocol(protocol, Collections.singletonList(supported.getId()), output.getId());
}
/**
@@ -79,7 +92,7 @@ public class ProtocolRegistry {
*/
public static void registerProtocol(Protocol protocol, List supported, Integer output) {
// Clear cache as this may make new routes.
- if (pathCache.size() > 0)
+ if (!pathCache.isEmpty())
pathCache.clear();
for (Integer version : supported) {
diff --git a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java
index 3bdda1e7e..8ac5bf385 100644
--- a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java
+++ b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java
@@ -39,6 +39,7 @@ public class ProtocolVersion {
public static final ProtocolVersion v1_14_1;
public static final ProtocolVersion v1_14_2;
public static final ProtocolVersion v1_14_3;
+ public static final ProtocolVersion v1_14_4;
public static final ProtocolVersion unknown;
private final int id;
@@ -74,6 +75,7 @@ public class ProtocolVersion {
register(v1_14_1 = new ProtocolVersion(480, "1.14.1"));
register(v1_14_2 = new ProtocolVersion(485, "1.14.2"));
register(v1_14_3 = new ProtocolVersion(490, "1.14.3"));
+ register(v1_14_4 = new ProtocolVersion(498, "1.14.4"));
register(unknown = new ProtocolVersion(-1, "UNKNOWN"));
}
diff --git a/common/src/main/java/us/myles/ViaVersion/api/rewriters/MetadataRewriter.java b/common/src/main/java/us/myles/ViaVersion/api/rewriters/MetadataRewriter.java
index a0a5e2e88..cb0413cdf 100644
--- a/common/src/main/java/us/myles/ViaVersion/api/rewriters/MetadataRewriter.java
+++ b/common/src/main/java/us/myles/ViaVersion/api/rewriters/MetadataRewriter.java
@@ -23,7 +23,6 @@ public abstract class MetadataRewriter {
metadataMap = Collections.unmodifiableMap(metadataMap);
for (Metadata metadata : new ArrayList<>(metadatas)) {
- int oldId = metadata.getId();
try {
handleMetadata(entityId, type, metadata, metadatas, metadataMap, connection);
} catch (Exception e) {
diff --git a/common/src/main/java/us/myles/ViaVersion/commands/ViaCommandHandler.java b/common/src/main/java/us/myles/ViaVersion/commands/ViaCommandHandler.java
index a406835bb..9935fc48c 100644
--- a/common/src/main/java/us/myles/ViaVersion/commands/ViaCommandHandler.java
+++ b/common/src/main/java/us/myles/ViaVersion/commands/ViaCommandHandler.java
@@ -107,7 +107,7 @@ public abstract class ViaCommandHandler implements ViaVersionCommand {
*/
public void showHelp(ViaCommandSender sender) {
Set allowed = calculateAllowedCommands(sender);
- if (allowed.size() == 0) {
+ if (allowed.isEmpty()) {
sender.sendMessage(color("&cYou are not allowed to use these commands!"));
return;
}
diff --git a/common/src/main/java/us/myles/ViaVersion/exception/InformativeException.java b/common/src/main/java/us/myles/ViaVersion/exception/InformativeException.java
index 969d5acab..433c45e65 100644
--- a/common/src/main/java/us/myles/ViaVersion/exception/InformativeException.java
+++ b/common/src/main/java/us/myles/ViaVersion/exception/InformativeException.java
@@ -4,8 +4,8 @@ import java.util.HashMap;
import java.util.Map;
public class InformativeException extends Exception {
- final Map info = new HashMap<>();
- int sources = 0;
+ private final Map info = new HashMap<>();
+ private int sources = 0;
public InformativeException(Throwable cause) {
super(cause);
@@ -34,7 +34,7 @@ public class InformativeException extends Exception {
builder.append("Please post this error to http://github.com/ViaVersion/ViaVersion/issues\n{");
int i = 0;
for (Map.Entry entry : info.entrySet()) {
- builder.append((i == 0 ? "" : ", ") + entry.getKey() + ": " + entry.getValue().toString());
+ builder.append(i == 0 ? "" : ", ").append(entry.getKey()).append(": ").append(entry.getValue().toString());
i++;
}
builder.append("}\nActual Error: ");
diff --git a/common/src/main/java/us/myles/ViaVersion/handlers/ChannelHandlerContextWrapper.java b/common/src/main/java/us/myles/ViaVersion/handlers/ChannelHandlerContextWrapper.java
index 717eaac7d..7a57d4269 100644
--- a/common/src/main/java/us/myles/ViaVersion/handlers/ChannelHandlerContextWrapper.java
+++ b/common/src/main/java/us/myles/ViaVersion/handlers/ChannelHandlerContextWrapper.java
@@ -10,8 +10,8 @@ import io.netty.util.concurrent.EventExecutor;
import java.net.SocketAddress;
public class ChannelHandlerContextWrapper implements ChannelHandlerContext {
- private ChannelHandlerContext base;
- private ViaHandler handler;
+ private final ChannelHandlerContext base;
+ private final ViaHandler handler;
public ChannelHandlerContextWrapper(ChannelHandlerContext base, ViaHandler handler) {
this.base = base;
diff --git a/common/src/main/java/us/myles/ViaVersion/packets/PacketType.java b/common/src/main/java/us/myles/ViaVersion/packets/PacketType.java
index b3077806b..e468f24b4 100644
--- a/common/src/main/java/us/myles/ViaVersion/packets/PacketType.java
+++ b/common/src/main/java/us/myles/ViaVersion/packets/PacketType.java
@@ -150,10 +150,10 @@ public enum PacketType {
}
}
- private State state;
- private Direction direction;
- private int packetID;
- private int newPacketID = -1;
+ 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;
diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/MappingData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/MappingData.java
index 95e69966a..e3ea1e6e8 100644
--- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/MappingData.java
+++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/MappingData.java
@@ -16,7 +16,6 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@@ -46,17 +45,14 @@ public class MappingData {
loadTags(fluidTags, mapping1_13.getAsJsonObject("fluid_tags"));
Via.getPlatform().getLogger().info("Loading 1.12.2 -> 1.13 enchantment mapping...");
loadEnchantments(oldEnchantmentsIds, mapping1_12.getAsJsonObject("enchantments"));
- enchantmentMappings = new EnchantmentMappingByteArray(mapping1_12.getAsJsonObject("enchantments"), mapping1_13.getAsJsonObject("enchantments"));
+ enchantmentMappings = new Mappings(72, mapping1_12.getAsJsonObject("enchantments"), mapping1_13.getAsJsonObject("enchantments"));
Via.getPlatform().getLogger().info("Loading 1.12.2 -> 1.13 sound mapping...");
- soundMappings = new SoundMappingShortArray(mapping1_12.getAsJsonArray("sounds"), mapping1_13.getAsJsonArray("sounds"));
+ soundMappings = new Mappings(662, mapping1_12.getAsJsonArray("sounds"), mapping1_13.getAsJsonArray("sounds"));
Via.getPlatform().getLogger().info("Loading translation mappping");
Map translateData = GsonUtil.getGson().fromJson(
- new InputStreamReader(
- MappingData.class.getClassLoader()
- .getResourceAsStream("assets/viaversion/data/mapping-lang-1.12-1.13.json")
- ),
- (new TypeToken