diff --git a/bukkit/pom.xml b/bukkit/pom.xml
index cfae64176..07f87bfb2 100644
--- a/bukkit/pom.xml
+++ b/bukkit/pom.xml
@@ -5,7 +5,7 @@
viaversion-parent
us.myles
- 2.0.2-SNAPSHOT
+ 2.1.0-1.14.1-pre1
4.0.0
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 f7e5a1018..993cd8f14 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
@@ -67,9 +67,10 @@ public class PlayerSneakListener extends ViaBukkitListener {
Player player = event.getPlayer();
UserConnection userConnection = getUserConnection(player);
if (userConnection == null) return;
- if (!userConnection.has(ProtocolInfo.class)) return;
+ ProtocolInfo info = userConnection.get(ProtocolInfo.class);
+ if (info == null) return;
- int protocolVersion = userConnection.get(ProtocolInfo.class).getProtocolVersion();
+ int protocolVersion = info.getProtocolVersion();
if (is1_14Fix && protocolVersion >= ProtocolVersion.v1_14.getId()) {
setHeight(player, event.isSneaking() ? HEIGHT_1_14 : STANDING_HEIGHT);
if (!useCache) return;
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 49d641d47..076fed5df 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
@@ -9,6 +9,7 @@ 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;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9To1_8;
@@ -38,8 +39,9 @@ public class DeathListener extends ViaBukkitListener {
@Override
public void run() {
// If online
- if (getUserConnection(p) != null) {
- PacketWrapper wrapper = new PacketWrapper(0x2C, null, getUserConnection(p));
+ UserConnection userConnection = getUserConnection(p);
+ if (userConnection != null) {
+ PacketWrapper wrapper = new PacketWrapper(0x2C, null, userConnection);
try {
wrapper.write(Type.VAR_INT, 2); // Event - Entity dead
wrapper.write(Type.VAR_INT, p.getEntityId()); // Player ID
diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java
index 9330e822d..51a1f9c22 100644
--- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java
+++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/PaperPatch.java
@@ -25,15 +25,16 @@ public class PaperPatch extends ViaBukkitListener {
@EventHandler(ignoreCancelled = true)
public void onPlace(BlockPlaceEvent e) {
if (isOnPipe(e.getPlayer())) {
- Location diff = e.getPlayer().getLocation().subtract(e.getBlock().getLocation().add(0.5D, 0, 0.5D));
+ Location location = e.getPlayer().getLocation();
+ Location diff = location.clone().subtract(e.getBlock().getLocation().add(0.5D, 0, 0.5D));
Material block = e.getBlockPlaced().getType();
- if (!block.isSolid()) {
+ if (isPlacable(block)) {
return;
}
- if (e.getPlayer().getLocation().getBlock().equals(e.getBlock())) {
+ if (location.getBlock().equals(e.getBlock())) {
e.setCancelled(true);
} else {
- if (e.getPlayer().getLocation().getBlock().getRelative(BlockFace.UP).equals(e.getBlock())) {
+ if (location.getBlock().getRelative(BlockFace.UP).equals(e.getBlock())) {
e.setCancelled(true);
} else {
// Within radius of block
@@ -55,4 +56,18 @@ public class PaperPatch extends ViaBukkitListener {
}
}
}
+
+ private boolean isPlacable(Material material) {
+ if (!material.isSolid()) return true;
+ // signs and banners
+ switch (material.getId()) {
+ case 63:
+ case 68:
+ case 176:
+ case 177:
+ return true;
+ default:
+ return false;
+ }
+ }
}
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 197b2be80..14324fd02 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
@@ -1,6 +1,7 @@
package us.myles.ViaVersion.bukkit.platform;
import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
@@ -116,8 +117,9 @@ public class BukkitViaLoader implements ViaPlatformLoader {
@Override
public Item call() throws Exception {
UUID playerUUID = info.get(ProtocolInfo.class).getUuid();
- if (Bukkit.getPlayer(playerUUID) != null) {
- return HandItemCache.convert(Bukkit.getPlayer(playerUUID).getItemInHand());
+ Player player = Bukkit.getPlayer(playerUUID);
+ if (player != null) {
+ return HandItemCache.convert(player.getItemInHand());
}
return null;
}
diff --git a/bungee/pom.xml b/bungee/pom.xml
index 5a9fdd1fd..d195808c6 100644
--- a/bungee/pom.xml
+++ b/bungee/pom.xml
@@ -5,7 +5,7 @@
viaversion-parent
us.myles
- 2.0.2-SNAPSHOT
+ 2.1.0-1.14.1-pre1
4.0.0
diff --git a/bungee/src/main/java/us/myles/ViaVersion/bungee/handlers/BungeeEncodeHandler.java b/bungee/src/main/java/us/myles/ViaVersion/bungee/handlers/BungeeEncodeHandler.java
index 34ffb2667..e8106a9f1 100644
--- a/bungee/src/main/java/us/myles/ViaVersion/bungee/handlers/BungeeEncodeHandler.java
+++ b/bungee/src/main/java/us/myles/ViaVersion/bungee/handlers/BungeeEncodeHandler.java
@@ -5,6 +5,7 @@ import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageEncoder;
import us.myles.ViaVersion.api.PacketWrapper;
+import us.myles.ViaVersion.api.Via;
import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.bungee.util.BungeePipelineUtil;
@@ -28,7 +29,7 @@ public class BungeeEncodeHandler extends MessageToMessageEncoder {
@Override
protected void encode(final ChannelHandlerContext ctx, ByteBuf bytebuf, List