diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/BlockListener.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/BlockListener.java index 0523a409d..613ac2034 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/BlockListener.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/BlockListener.java @@ -22,7 +22,7 @@ public class BlockListener extends ViaBukkitListener { Block b = e.getBlockPlaced(); getUserConnection(e.getPlayer()) .get(EntityTracker1_9.class) - .addBlockInteraction(new Position((long) b.getX(), (long) b.getY(), (long) b.getZ())); + .addBlockInteraction(new Position(b.getX(), (short) b.getY(), b.getZ())); } } } 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 4154ad0c1..0acf86965 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 @@ -34,7 +34,7 @@ public class HandItemCache extends BukkitRunnable { } 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); + if (itemInHand == null) return new Item(0, (byte) 0, (short) 0, null); + return new Item(itemInHand.getTypeId(), (byte) itemInHand.getAmount(), itemInHand.getDurability(), null); } } diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/providers/BukkitBlockConnectionProvider.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/providers/BukkitBlockConnectionProvider.java index 7e487c456..f97e06ff2 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/providers/BukkitBlockConnectionProvider.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/providers/BukkitBlockConnectionProvider.java @@ -16,16 +16,16 @@ public class BukkitBlockConnectionProvider extends BlockConnectionProvider { private Chunk lastChunk; @Override - public int getWorldBlockData(UserConnection user, Position position) { + public int getWorldBlockData(UserConnection user, int bx, int by, int bz) { UUID uuid = user.get(ProtocolInfo.class).getUuid(); Player player = Bukkit.getPlayer(uuid); if (player != null) { World world = player.getWorld(); - int x = (int) (position.getX() >> 4); - int z = (int) (position.getZ() >> 4); + int x = bx >> 4; + int z = bz >> 4; if (world.isChunkLoaded(x, z)) { Chunk c = getChunk(world, x, z); - Block b = c.getBlock(position.getX().intValue(), position.getY().intValue(), position.getZ().intValue()); + Block b = c.getBlock(bx, by, bz); return b.getTypeId() << 4 | b.getData(); } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/minecraft/BlockFace.java b/common/src/main/java/us/myles/ViaVersion/api/minecraft/BlockFace.java index a17129550..c217979cb 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/minecraft/BlockFace.java +++ b/common/src/main/java/us/myles/ViaVersion/api/minecraft/BlockFace.java @@ -9,12 +9,12 @@ import java.util.Map; @Getter @AllArgsConstructor public enum BlockFace { - NORTH(0, 0, -1, EnumAxis.Z), - SOUTH(0, 0, 1, EnumAxis.Z), - EAST(1, 0, 0, EnumAxis.X), - WEST(-1, 0, 0, EnumAxis.X), - TOP(0, 1, 0, EnumAxis.Y), - BOTTOM(0, -1, 0, EnumAxis.Y); + NORTH((byte) 0, (byte) 0, (byte) -1, EnumAxis.Z), + SOUTH((byte) 0, (byte) 0, (byte) 1, EnumAxis.Z), + EAST((byte) 1, (byte) 0, (byte) 0, EnumAxis.X), + WEST((byte) -1, (byte) 0, (byte) 0, EnumAxis.X), + TOP((byte) 0, (byte) 1, (byte) 0, EnumAxis.Y), + BOTTOM((byte) 0, (byte) -1, (byte) 0, EnumAxis.Y); private static Map opposites = new HashMap<>(); @@ -27,7 +27,7 @@ public enum BlockFace { opposites.put(BlockFace.BOTTOM, BlockFace.TOP); } - private int modX, modY, modZ; + private byte modX, modY, modZ; private EnumAxis axis; public BlockFace opposite() { @@ -35,6 +35,6 @@ public enum BlockFace { } public enum EnumAxis { - X, Y, Z; + X, Y, Z } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/minecraft/Position.java b/common/src/main/java/us/myles/ViaVersion/api/minecraft/Position.java index 77653848a..f93b16199 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/minecraft/Position.java +++ b/common/src/main/java/us/myles/ViaVersion/api/minecraft/Position.java @@ -10,12 +10,16 @@ import lombok.ToString; @ToString @EqualsAndHashCode public class Position { - private Long x; - private Long y; - private Long z; + private int x; + private short y; + private int z; + + public Position(Position toCopy) { + this(toCopy.getX(), toCopy.getY(), toCopy.getZ()); + } public Position getRelative(BlockFace face) { - return new Position(this.x + face.getModX(), this.y + face.getModY(), this.z + face.getModZ()); + return new Position(x + face.getModX(), (short) (y + face.getModY()), z + face.getModZ()); } public Position shift(BlockFace face) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java b/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java index 8a47bcaa5..889d29f0e 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java +++ b/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java @@ -17,21 +17,7 @@ public class Item { private short data; private CompoundTag tag; - @Deprecated - public short getId() { - return (short) identifier; - } - - @Deprecated - public void setId(short id) { - identifier = id; - } - - @Deprecated - public Item(short id, byte amount, short data, CompoundTag tag) { - this.identifier = id; - this.amount = amount; - this.data = data; - this.tag = tag; + public Item(Item toCopy) { + this(toCopy.getIdentifier(), toCopy.getAmount(), toCopy.getData(), toCopy.getTag()); } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/type/types/minecraft/Position1_14Type.java b/common/src/main/java/us/myles/ViaVersion/api/type/types/minecraft/Position1_14Type.java index fe4d2a3f6..9014c7dc9 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/type/types/minecraft/Position1_14Type.java +++ b/common/src/main/java/us/myles/ViaVersion/api/type/types/minecraft/Position1_14Type.java @@ -17,11 +17,13 @@ public class Position1_14Type extends Type { long y = val << 52 >> 52; long z = val << 26 >> 38; - return new Position(x, y, z); + return new Position((int) x, (short) y, (int) z); } @Override public void write(ByteBuf buffer, Position object) { - buffer.writeLong(((object.getX() & 0x3ffffff) << 38) | (object.getY() & 0xfff) | ((object.getZ() & 0x3ffffff) << 12)); + buffer.writeLong((((long) object.getX() & 0x3ffffff) << 38) + | (object.getY() & 0xfff) + | ((((long) object.getZ()) & 0x3ffffff) << 12)); } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/type/types/minecraft/PositionType.java b/common/src/main/java/us/myles/ViaVersion/api/type/types/minecraft/PositionType.java index 6079982be..7df0f75da 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/type/types/minecraft/PositionType.java +++ b/common/src/main/java/us/myles/ViaVersion/api/type/types/minecraft/PositionType.java @@ -17,11 +17,13 @@ public class PositionType extends Type { // this shifting madness is used to preserve sign long z = (val << 38) >> 38; // signed - return new Position(x, y, z); + return new Position((int) x, (short) y, (int) z); } @Override public void write(ByteBuf buffer, Position object) { - buffer.writeLong(((object.getX() & 0x3ffffff) << 38) | ((object.getY() & 0xfff) << 26) | (object.getZ() & 0x3ffffff)); + buffer.writeLong((((long) object.getX() & 0x3ffffff) << 38) + | ((((long) object.getY()) & 0xfff) << 26) + | (object.getZ() & 0x3ffffff)); } } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java index 7dd9fe30e..8afb8c875 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/Protocol1_13To1_12_2.java @@ -45,9 +45,9 @@ public class Protocol1_13To1_12_2 extends Protocol { @Override public void handle(PacketWrapper wrapper) throws Exception { Position position = wrapper.read(Type.POSITION); - wrapper.write(Type.INT, position.getX().intValue()); - wrapper.write(Type.INT, position.getY().intValue()); - wrapper.write(Type.INT, position.getZ().intValue()); + wrapper.write(Type.INT, position.getX()); + wrapper.write(Type.INT, (int) position.getY()); + wrapper.write(Type.INT, position.getZ()); } }; @@ -513,14 +513,11 @@ public class Protocol1_13To1_12_2 extends Protocol { Item[] clone = ingredient.clone(); // Clone because array and item is mutable for (int i = 0; i < clone.length; i++) { if (clone[i] == null) continue; - clone[i] = new Item(clone[i].getId(), clone[i].getAmount(), - (short) 0, null); + clone[i] = new Item(clone[i]); } wrapper.write(Type.FLAT_ITEM_ARRAY_VAR_INT, clone); } - wrapper.write(Type.FLAT_ITEM, new Item( - entry.getValue().getResult().getId(), - entry.getValue().getResult().getAmount(), (short) 0, null)); + wrapper.write(Type.FLAT_ITEM, new Item(entry.getValue().getResult())); break; } case "crafting_shaped": { @@ -531,14 +528,11 @@ public class Protocol1_13To1_12_2 extends Protocol { Item[] clone = ingredient.clone(); // Clone because array and item is mutable for (int i = 0; i < clone.length; i++) { if (clone[i] == null) continue; - clone[i] = new Item(clone[i].getId(), clone[i].getAmount(), - (short) 0, null); + clone[i] = new Item(clone[i]); } wrapper.write(Type.FLAT_ITEM_ARRAY_VAR_INT, clone); } - wrapper.write(Type.FLAT_ITEM, new Item( - entry.getValue().getResult().getId(), - entry.getValue().getResult().getAmount(), (short) 0, null)); + wrapper.write(Type.FLAT_ITEM, new Item(entry.getValue().getResult())); break; } case "smelting": { @@ -546,13 +540,10 @@ public class Protocol1_13To1_12_2 extends Protocol { Item[] clone = entry.getValue().getIngredient().clone(); // Clone because array and item is mutable for (int i = 0; i < clone.length; i++) { if (clone[i] == null) continue; - clone[i] = new Item(clone[i].getId(), clone[i].getAmount(), - (short) 0, null); + clone[i] = new Item(clone[i]); } wrapper.write(Type.FLAT_ITEM_ARRAY_VAR_INT, clone); - wrapper.write(Type.FLAT_ITEM, new Item( - entry.getValue().getResult().getId(), - entry.getValue().getResult().getAmount(), (short) 0, null)); + wrapper.write(Type.FLAT_ITEM, new Item(entry.getValue().getResult())); wrapper.write(Type.FLOAT, entry.getValue().getExperience()); wrapper.write(Type.VAR_INT, entry.getValue().getCookingTime()); break; diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java index 4403a1a05..41ac95c1b 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionData.java @@ -30,12 +30,8 @@ public class ConnectionData { public static void update(UserConnection user, Position position) { BlockConnectionProvider connectionProvider = Via.getManager().getProviders().get(BlockConnectionProvider.class); for (BlockFace face : BlockFace.values()) { - Position pos = new Position( - position.getX() + face.getModX(), - position.getY() + face.getModY(), - position.getZ() + face.getModZ() - ); - int blockState = connectionProvider.getBlockdata(user, pos); + Position pos = position.getRelative(face); + int blockState = connectionProvider.getBlockData(user, pos.getX(), pos.getY(), pos.getZ()); ConnectionHandler handler = connectionHandlerMap.get(blockState); if (handler == null) continue; @@ -64,9 +60,9 @@ public class ConnectionData { int blockPosZ = chunkDeltaZ == 1 ? 0 : 15; updateBlock(user, new Position( - (long) ((chunkX + chunkDeltaX) << 4) + blockPosX, - (long) blockY, - (long) ((chunkZ + chunkDeltaZ) << 4) + blockPosZ + ((chunkX + chunkDeltaX) << 4) + blockPosX, + (short) blockY, + ((chunkZ + chunkDeltaZ) << 4) + blockPosZ ), updates ); @@ -102,9 +98,9 @@ public class ConnectionData { for (int blockZ = zStart; blockZ < zEnd; blockZ++) { updateBlock(user, new Position( - (long) ((chunkX + chunkDeltaX) << 4) + blockX, - (long) blockY, - (long) ((chunkZ + chunkDeltaZ) << 4) + blockZ), + ((chunkX + chunkDeltaX) << 4) + blockX, + (short) blockY, + ((chunkZ + chunkDeltaZ) << 4) + blockZ), updates ); } @@ -128,24 +124,24 @@ public class ConnectionData { } public static void updateBlock(UserConnection user, Position pos, List records) { - int blockState = Via.getManager().getProviders().get(BlockConnectionProvider.class).getBlockdata(user, pos); + int blockState = Via.getManager().getProviders().get(BlockConnectionProvider.class).getBlockData(user, pos.getX(), pos.getY(), pos.getZ()); ConnectionHandler handler = getConnectionHandler(blockState); if (handler == null) return; int newBlockState = handler.connect(user, pos, blockState); - records.add(new BlockChangeRecord((short) (((pos.getX() & 0xF) << 4) | (pos.getZ() & 0xF)), pos.getY().shortValue(), newBlockState)); + records.add(new BlockChangeRecord((short) (((pos.getX() & 0xF) << 4) | (pos.getZ() & 0xF)), pos.getY(), newBlockState)); } public static BlockConnectionProvider getProvider() { return Via.getManager().getProviders().get(BlockConnectionProvider.class); } - public static void updateBlockStorage(UserConnection userConnection, Position position, int blockState) { + public static void updateBlockStorage(UserConnection userConnection, int x, int y, int z, int blockState) { if (!needStoreBlocks()) return; if (ConnectionData.isWelcome(blockState)) { - ConnectionData.getProvider().storeBlock(userConnection, position, blockState); + ConnectionData.getProvider().storeBlock(userConnection, x, y, z, blockState); } else { - ConnectionData.getProvider().removeBlock(userConnection, position); + ConnectionData.getProvider().removeBlock(userConnection, x, y, z); } } @@ -186,7 +182,11 @@ public class ConnectionData { ConnectionHandler handler = ConnectionData.getConnectionHandler(block); if (handler != null) { - block = handler.connect(user, new Position(xOff + x, yOff + y, zOff + z), block); + block = handler.connect(user, new Position( + (int) (xOff + x), + (short) (yOff + y), + (int) (zOff + z) + ), block); section.setFlatBlock(x, y, z, block); } } @@ -282,7 +282,7 @@ public class ConnectionData { } public static int getId(String key) { - return keyToId.containsKey(key) ? keyToId.get(key) : -1; + return keyToId.getOrDefault(key, -1); } public static String getKey(int id) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionHandler.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionHandler.java index ccc27b600..e017bce73 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionHandler.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/ConnectionHandler.java @@ -9,7 +9,7 @@ public abstract class ConnectionHandler { public abstract int connect(UserConnection user, Position position, int blockState); public int getBlockData(UserConnection user, Position position) { - return Via.getManager().getProviders().get(BlockConnectionProvider.class).getBlockdata(user, position); + return Via.getManager().getProviders().get(BlockConnectionProvider.class).getBlockData(user, position.getX(), position.getY(), position.getZ()); } public boolean canConnect(int id) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/providers/BlockConnectionProvider.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/providers/BlockConnectionProvider.java index 26330d7d9..447926ffe 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/providers/BlockConnectionProvider.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/providers/BlockConnectionProvider.java @@ -6,28 +6,23 @@ import us.myles.ViaVersion.api.platform.providers.Provider; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.MappingData; public class BlockConnectionProvider implements Provider { - - public int getBlockdata(UserConnection connection, Position position) { - int oldId = getWorldBlockData(connection, position); + public int getBlockData(UserConnection connection, int x, int y, int z) { + int oldId = getWorldBlockData(connection, x, y, z); return MappingData.blockMappings.getNewId(oldId); } - public int getWorldBlockData(UserConnection connection, Position position) { + public int getWorldBlockData(UserConnection connection, int x, int y, int z) { return -1; } - public void storeBlock(UserConnection connection, Position position, int blockState) { + public void storeBlock(UserConnection connection, int x, int y, int z, int blockState) { } - public void removeBlock(UserConnection connection, Position position) { + public void removeBlock(UserConnection connection, int x, int y, int z) { } - public void storeBlock(UserConnection connection, long x, long y, long z, int blockState) { - storeBlock(connection, new Position(x, y, z), blockState); - } - public void clearStorage(UserConnection connection) { } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/providers/PacketBlockConnectionProvider.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/providers/PacketBlockConnectionProvider.java index bfbd8346f..7ce459696 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/providers/PacketBlockConnectionProvider.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/blockconnections/providers/PacketBlockConnectionProvider.java @@ -1,24 +1,23 @@ package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.blockconnections.providers; import us.myles.ViaVersion.api.data.UserConnection; -import us.myles.ViaVersion.api.minecraft.Position; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage.BlockConnectionStorage; public class PacketBlockConnectionProvider extends BlockConnectionProvider { @Override - public void storeBlock(UserConnection connection, Position position, int blockState) { - connection.get(BlockConnectionStorage.class).store(position, blockState); + public void storeBlock(UserConnection connection, int x, int y, int z, int blockState) { + connection.get(BlockConnectionStorage.class).store(x, y, z, blockState); } @Override - public void removeBlock(UserConnection connection, Position position) { - connection.get(BlockConnectionStorage.class).remove(position); + public void removeBlock(UserConnection connection, int x, int y, int z) { + connection.get(BlockConnectionStorage.class).remove(x, y, z); } @Override - public int getBlockdata(UserConnection connection, Position position) { - return connection.get(BlockConnectionStorage.class).get(position); + public int getBlockData(UserConnection connection, int x, int y, int z) { + return connection.get(BlockConnectionStorage.class).get(x, y, z); } @Override diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/ParticleRewriter.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/ParticleRewriter.java index e371d7019..bde68c242 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/ParticleRewriter.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/data/ParticleRewriter.java @@ -128,9 +128,9 @@ public class ParticleRewriter { public Particle handler(Particle particle, Integer[] data) { Item item; if (data.length == 1) - item = new Item(data[0].shortValue(), (byte) 1, (short) 0, null); + item = new Item(data[0], (byte) 1, (short) 0, null); else if (data.length == 2) - item = new Item(data[0].shortValue(), (byte) 1, data[1].shortValue(), null); + item = new Item(data[0], (byte) 1, data[1].shortValue(), null); else return particle; diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java index cae97d19c..56a90b4e2 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/packets/WorldPackets.java @@ -152,7 +152,7 @@ public class WorldPackets { if (blockId == 73) { // Note block PacketWrapper blockChange = wrapper.create(0x0B); // block change - blockChange.write(Type.POSITION, new Position(pos.getX(), pos.getY(), pos.getZ())); // Clone because position is mutable + blockChange.write(Type.POSITION, new Position(pos)); // Clone because position is mutable blockChange.write(Type.VAR_INT, 249 + (action * 24 * 2) + (param * 2)); blockChange.send(Protocol1_13To1_12_2.class, true, true); } @@ -177,7 +177,7 @@ public class WorldPackets { UserConnection userConnection = wrapper.user(); if (Via.getConfig().isServersideBlockConnections()) { - ConnectionData.updateBlockStorage(userConnection, position, newId); + ConnectionData.updateBlockStorage(userConnection, position.getX(), position.getY(), position.getZ(), newId); newId = ConnectionData.connect(userConnection, position, newId); } wrapper.set(Type.VAR_INT, 0, checkStorage(wrapper.user(), position, newId)); @@ -211,12 +211,12 @@ public class WorldPackets { for (BlockChangeRecord record : records) { int newBlock = toNewId(record.getBlockId()); Position position = new Position( - (long) (record.getHorizontal() >> 4 & 15) + (chunkX * 16), - (long) record.getY(), - (long) (record.getHorizontal() & 15) + (chunkZ * 16)); + (record.getHorizontal() >> 4 & 15) + (chunkX * 16), + record.getY(), + (record.getHorizontal() & 15) + (chunkZ * 16)); if (Via.getConfig().isServersideBlockConnections()) { - ConnectionData.updateBlockStorage(userConnection, position, newBlock); + ConnectionData.updateBlockStorage(userConnection, position.getX(), position.getY(), position.getZ(), newBlock); } record.setBlockId(checkStorage(wrapper.user(), position, newBlock)); } @@ -226,9 +226,9 @@ public class WorldPackets { int blockState = record.getBlockId(); Position position = new Position( - (long) (record.getHorizontal() >> 4 & 15) + (chunkX * 16), - (long) record.getY(), - (long) (record.getHorizontal() & 15) + (chunkZ * 16)); + (record.getHorizontal() >> 4 & 15) + (chunkX * 16), + record.getY(), + (record.getHorizontal() & 15) + (chunkZ * 16)); ConnectionHandler handler = ConnectionData.getConnectionHandler(blockState); if (handler != null) { @@ -242,9 +242,9 @@ public class WorldPackets { for (BlockChangeRecord record : records) { Position position = new Position( - (long) (record.getHorizontal() >> 4 & 15) + (chunkX * 16), - (long) record.getY(), - (long) (record.getHorizontal() & 15) + (chunkZ * 16)); + (record.getHorizontal() >> 4 & 15) + (chunkX * 16), + record.getY(), + (record.getHorizontal() & 15) + (chunkZ * 16)); ConnectionData.update(userConnection, position); } } @@ -339,9 +339,9 @@ public class WorldPackets { int block = section.getFlatBlock(x, y, z); if (storage.isWelcome(block)) { storage.store(new Position( - (long) (x + (chunk.getX() << 4)), - (long) (y + (i << 4)), - (long) (z + (chunk.getZ() << 4)) + (x + (chunk.getX() << 4)), + (short) (y + (i << 4)), + (z + (chunk.getZ() << 4)) ), block); } } @@ -355,9 +355,9 @@ public class WorldPackets { for (int x = 0; x < 16; x++) { int block = section.getFlatBlock(x, y, z); if (ConnectionData.isWelcome(block)) { - ConnectionData.getProvider().storeBlock(wrapper.user(), (long) (x + (chunk.getX() << 4)), - (long) (y + (i << 4)), - (long) (z + (chunk.getZ() << 4)), + ConnectionData.getProvider().storeBlock(wrapper.user(), x + (chunk.getX() << 4), + y + (i << 4), + z + (chunk.getZ() << 4), block); } } @@ -393,7 +393,7 @@ public class WorldPackets { int y = (int) tag.get("y").getValue(); int z = (int) tag.get("z").getValue(); - Position position = new Position((long) x, (long) y, (long) z); + Position position = new Position(x, (short) y, z); // Store the replacement blocks for blockupdates if (storage.contains(position)) storage.get(position).setReplacement(newId); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/BannerHandler.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/BannerHandler.java index da69a8322..9f3c87af8 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/BannerHandler.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/BannerHandler.java @@ -18,7 +18,7 @@ public class BannerHandler implements BlockEntityProvider.BlockEntityHandler { @Override public int transform(UserConnection user, CompoundTag tag) { BlockStorage storage = user.get(BlockStorage.class); - Position position = new Position(getLong(tag.get("x")), getLong(tag.get("y")), getLong(tag.get("z"))); + Position position = new Position((int) getLong(tag.get("x")), (short) getLong(tag.get("y")), (int) getLong(tag.get("z"))); if (!storage.contains(position)) { Via.getPlatform().getLogger().warning("Received an banner color update packet, but there is no banner! O_o " + tag); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/BedHandler.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/BedHandler.java index 3558a9fed..121d06792 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/BedHandler.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/BedHandler.java @@ -13,7 +13,7 @@ public class BedHandler implements BlockEntityProvider.BlockEntityHandler { @Override public int transform(UserConnection user, CompoundTag tag) { BlockStorage storage = user.get(BlockStorage.class); - Position position = new Position(getLong(tag.get("x")), getLong(tag.get("y")), getLong(tag.get("z"))); + Position position = new Position((int) getLong(tag.get("x")), (short) getLong(tag.get("y")), (int) getLong(tag.get("z"))); if (!storage.contains(position)) { Via.getPlatform().getLogger().warning("Received an bed color update packet, but there is no bed! O_o " + tag); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/SkullHandler.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/SkullHandler.java index 7fb61cb20..412028944 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/SkullHandler.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/providers/blockentities/SkullHandler.java @@ -15,7 +15,7 @@ public class SkullHandler implements BlockEntityProvider.BlockEntityHandler { @Override public int transform(UserConnection user, CompoundTag tag) { BlockStorage storage = user.get(BlockStorage.class); - Position position = new Position(getLong(tag.get("x")), getLong(tag.get("y")), getLong(tag.get("z"))); + Position position = new Position((int) getLong(tag.get("x")), (short) getLong(tag.get("y")), (int) getLong(tag.get("z"))); if (!storage.contains(position)) { Via.getPlatform().getLogger().warning("Received an head update packet, but there is no head! O_o " + tag); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/storage/BlockConnectionStorage.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/storage/BlockConnectionStorage.java index 96de6245a..8845822f2 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/storage/BlockConnectionStorage.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_13to1_12_2/storage/BlockConnectionStorage.java @@ -37,35 +37,35 @@ public class BlockConnectionStorage extends StoredObject { super(user); } - public void store(Position position, int blockState) { + public void store(int x, int y, int z, int blockState) { Short mapping = reverseBlockMappings.get((short) blockState); if (mapping == null) return; blockState = mapping; - long pair = getChunkSectionIndex(position); + long pair = getChunkSectionIndex(x, y, z); Pair map = getChunkSection(pair, (blockState & 0xF) != 0); - int blockIndex = encodeBlockPos(position); + int blockIndex = encodeBlockPos(x, y, z); map.getKey()[blockIndex] = (byte) (blockState >> 4); NibbleArray nibbleArray = map.getValue(); if (nibbleArray != null) nibbleArray.set(blockIndex, blockState); } - public int get(Position position) { - long pair = getChunkSectionIndex(position); + public int get(int x, int y, int z) { + long pair = getChunkSectionIndex(x, y, z); Pair map = blockStorage.get(pair); if (map == null) return 0; - short blockPosition = encodeBlockPos(position); + short blockPosition = encodeBlockPos(x, y, z); NibbleArray nibbleArray = map.getValue(); return WorldPackets.toNewId( ((map.getKey()[blockPosition] & 0xFF) << 4) - | (nibbleArray == null ? 0 : nibbleArray.get(blockPosition)) + | (nibbleArray == null ? 0 : nibbleArray.get(blockPosition)) ); } - public void remove(Position position) { - long pair = getChunkSectionIndex(position); + public void remove(int x, int y, int z) { + long pair = getChunkSectionIndex(x, y, z); Pair map = blockStorage.get(pair); if (map == null) return; - int blockIndex = encodeBlockPos(position); + int blockIndex = encodeBlockPos(x, y, z); NibbleArray nibbleArray = map.getValue(); if (nibbleArray != null) { nibbleArray.set(blockIndex, 0); @@ -112,7 +112,7 @@ public class BlockConnectionStorage extends StoredObject { } private long getChunkSectionIndex(Position position) { - return getChunkSectionIndex(position.getX().intValue(), position.getY().intValue(), position.getZ().intValue()); + return getChunkSectionIndex(position.getX(), position.getY(), position.getZ()); } private short encodeBlockPos(int x, int y, int z) { @@ -120,7 +120,7 @@ public class BlockConnectionStorage extends StoredObject { } private short encodeBlockPos(Position pos) { - return encodeBlockPos(pos.getX().intValue(), pos.getY().intValue(), pos.getZ().intValue()); + return encodeBlockPos(pos.getX(), pos.getY(), pos.getZ()); } private Map createLongObjectMap() { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_1_2to1_9_3_4/chunks/BlockEntity.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_1_2to1_9_3_4/chunks/BlockEntity.java index 01cfeba43..dbbcf6b84 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_1_2to1_9_3_4/chunks/BlockEntity.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_1_2to1_9_3_4/chunks/BlockEntity.java @@ -45,7 +45,7 @@ public class BlockEntity { int y = (int) tag.get("y").getValue(); int z = (int) tag.get("z").getValue(); - Position pos = new Position((long) x, (long) y, (long) z); + Position pos = new Position(x, (short) y, z); updateBlockEntity(pos, (short) newId, tag, connection); } catch (Exception e) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_3to1_9_1_2/Protocol1_9_3To1_9_1_2.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_3to1_9_1_2/Protocol1_9_3To1_9_1_2.java index c33411427..a64368a92 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_3to1_9_1_2/Protocol1_9_3To1_9_1_2.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9_3to1_9_1_2/Protocol1_9_3To1_9_1_2.java @@ -55,9 +55,9 @@ public class Protocol1_9_3To1_9_1_2 extends Protocol { //Create nbt CompoundTag tag = new CompoundTag(""); tag.put(new StringTag("id", "Sign")); - tag.put(new IntTag("x", position.getX().intValue())); - tag.put(new IntTag("y", position.getY().intValue())); - tag.put(new IntTag("z", position.getZ().intValue())); + tag.put(new IntTag("x", position.getX())); + tag.put(new IntTag("y", position.getY())); + tag.put(new IntTag("z", position.getZ())); for (int i = 0; i < lines.length; i++) tag.put(new StringTag("Text" + (i + 1), lines[i])); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/SpawnPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/SpawnPackets.java index 46ef416ac..1ed6d246c 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/SpawnPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/SpawnPackets.java @@ -103,7 +103,7 @@ public class SpawnPackets { public void write(PacketWrapper wrapper) throws Exception { wrapper.write(Type.VAR_INT, entityID); List meta = new ArrayList<>(); - Item item = new Item((short) 373, (byte) 1, (short) data, null); // Potion + Item item = new Item(373, (byte) 1, (short) data, null); // Potion ItemRewriter.toClient(item); // Rewrite so that it gets the right nbt // TEMP FIX FOR POTIONS UNTIL WE FIGURE OUT HOW TO TRANSFORM SENT PACKETS Metadata potion = new Metadata(5, MetaType1_9.Slot, item); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/WorldPackets.java index ee56c4847..6561afdcf 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/WorldPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/packets/WorldPackets.java @@ -299,11 +299,11 @@ public class WorldPackets { if (Via.getConfig().isShieldBlocking()) { EntityTracker1_9 tracker = wrapper.user().get(EntityTracker1_9.class); - if (item != null && Protocol1_9To1_8.isSword(item.getId())) { + if (item != null && Protocol1_9To1_8.isSword(item.getIdentifier())) { if (hand == 0) { if (!tracker.isBlocking()) { tracker.setBlocking(true); - Item shield = new Item((short) 442, (byte) 1, (short) 0, null); + Item shield = new Item(442, (byte) 1, (short) 0, null); tracker.setSecondHand(shield); } wrapper.cancel(); @@ -363,9 +363,9 @@ public class WorldPackets { if (face == 255) return; Position p = wrapper.get(Type.POSITION, 0); - long x = p.getX(); - long y = p.getY(); - long z = p.getZ(); + int x = p.getX(); + short y = p.getY(); + int z = p.getZ(); switch (face) { case 0: y--; diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/providers/HandItemProvider.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/providers/HandItemProvider.java index a839dc353..3f9aef55b 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/providers/HandItemProvider.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/providers/HandItemProvider.java @@ -6,6 +6,6 @@ import us.myles.ViaVersion.api.platform.providers.Provider; public class HandItemProvider implements Provider { public Item getHandItem(final UserConnection info) { - return new Item((short) 0, (byte) 0, (short) 0, null); + return new Item(0, (byte) 0, (short) 0, null); } } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/CommandBlockStorage.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/CommandBlockStorage.java index 161c1e953..f20d7e944 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/CommandBlockStorage.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/CommandBlockStorage.java @@ -32,7 +32,7 @@ public class CommandBlockStorage extends StoredObject { Pair chunkPos = getChunkCoords(position); if (!storedCommandBlocks.containsKey(chunkPos)) - storedCommandBlocks.put(chunkPos, new ConcurrentHashMap()); + storedCommandBlocks.put(chunkPos, new ConcurrentHashMap<>()); Map blocks = storedCommandBlocks.get(chunkPos); @@ -44,8 +44,8 @@ public class CommandBlockStorage extends StoredObject { } private Pair getChunkCoords(Position position) { - int chunkX = (int) Math.floor(position.getX() / 16); - int chunkZ = (int) Math.floor(position.getZ() / 16); + int chunkX = Math.floorDiv(position.getX(), 16); + int chunkZ = Math.floorDiv(position.getZ(), 16); return new Pair<>(chunkX, chunkZ); } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/EntityTracker1_9.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/EntityTracker1_9.java index 6e8bfed2c..74d014817 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/EntityTracker1_9.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/storage/EntityTracker1_9.java @@ -38,7 +38,11 @@ public class EntityTracker1_9 extends EntityTracker { private final Map bossBarMap = new ConcurrentHashMap<>(); private final Set validBlocking = Sets.newConcurrentHashSet(); private final Set knownHolograms = Sets.newConcurrentHashSet(); - private final Cache blockInteractions = CacheBuilder.newBuilder().maximumSize(10).expireAfterAccess(250, TimeUnit.MILLISECONDS).build(); + private final Set blockInteractions = Collections.newSetFromMap(CacheBuilder.newBuilder() + .maximumSize(10) + .expireAfterAccess(250, TimeUnit.MILLISECONDS) + .build() + .asMap()); @Setter private boolean blocking = false; @Setter @@ -100,19 +104,11 @@ public class EntityTracker1_9 extends EntityTracker { } public boolean interactedBlockRecently(int x, int y, int z) { - if (blockInteractions.size() == 0) - return false; - for (Position p : blockInteractions.asMap().keySet()) { - if (p.getX() == x) - if (p.getY() == y) - if (p.getZ() == z) - return true; - } - return false; + return blockInteractions.contains(new Position(x, (short) y , z)); } public void addBlockInteraction(Position p) { - blockInteractions.put(p, 0); + blockInteractions.add(p); } public void handleMetadata(int entityId, List metadataList) { @@ -157,7 +153,7 @@ public class EntityTracker1_9 extends EntityTracker { if (entityId != getProvidedEntityId() && Via.getConfig().isShieldBlocking()) { if ((data & 0x10) == 0x10) { if (validBlocking.contains(entityId)) { - Item shield = new Item((short) 442, (byte) 1, (short) 0, null); + Item shield = new Item(442, (byte) 1, (short) 0, null); setSecondHand(entityId, shield); } else { setSecondHand(entityId, null); diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/BlockListener.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/BlockListener.java index b2d5f678e..b5c0b75ee 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/BlockListener.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/BlockListener.java @@ -23,7 +23,7 @@ public class BlockListener extends ViaSpongeListener { Location loc = e.getTransactions().get(0).getFinal().getLocation().get(); getUserConnection(player.getUniqueId()) .get(EntityTracker1_9.class) - .addBlockInteraction(new Position((long) loc.getX(), (long) loc.getY(), (long) loc.getZ())); + .addBlockInteraction(new Position(loc.getBlockX(), (short) loc.getBlockY(), loc.getBlockZ())); } } } diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java index cba7897f5..694218d7d 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java @@ -51,7 +51,7 @@ public class HandItemCache implements Runnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) return new Item((short) 0, (byte) 0, (short) 0, null); + if (itemInHand == null) return new Item(0, (byte) 0, (short) 0, null); if (GET_DAMAGE == null) { try { GET_DAMAGE = itemInHand.getClass().getDeclaredField("field_77991_e"); @@ -87,7 +87,7 @@ public class HandItemCache implements Runnable { e.printStackTrace(); } } - return new Item((short) id, (byte) itemInHand.getQuantity(), (short) damage, null); + return new Item(id, (byte) itemInHand.getQuantity(), (short) damage, null); } } diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaConfig.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaConfig.java index 1306b754b..1c218cade 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaConfig.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaConfig.java @@ -12,7 +12,9 @@ import java.util.Map; import java.util.Optional; public class SpongeViaConfig extends AbstractViaConfig { - private static final List UNSUPPORTED = Arrays.asList("anti-xray-patch", "bungee-ping-interval", "bungee-ping-save", "bungee-servers", "velocity-ping-interval", "velocity-ping-save", "velocity-servers", "quick-move-action-fix", "change-1_9-hitbox", "change-1_14-hitbox"); + private static final List UNSUPPORTED = Arrays.asList("anti-xray-patch", "bungee-ping-interval", + "bungee-ping-save", "bungee-servers", "velocity-ping-interval", "velocity-ping-save", "velocity-servers", + "quick-move-action-fix", "change-1_9-hitbox", "change-1_14-hitbox", "blockconnection-method"); private final PluginContainer pluginContainer; public SpongeViaConfig(PluginContainer pluginContainer, File configFile) { diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaLoader.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaLoader.java index e8bdf6e32..9ac1e3ea7 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaLoader.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/platform/SpongeViaLoader.java @@ -8,7 +8,6 @@ import us.myles.ViaVersion.api.minecraft.item.Item; import us.myles.ViaVersion.api.platform.TaskId; import us.myles.ViaVersion.api.platform.ViaPlatformLoader; import us.myles.ViaVersion.protocols.base.ProtocolInfo; -import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.blockconnections.providers.BlockConnectionProvider; import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.BulkChunkTranslatorProvider; import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.HandItemProvider; import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.MovementTransmitterProvider; @@ -19,7 +18,6 @@ import us.myles.ViaVersion.sponge.listeners.protocol1_9to1_8.DeathListener; import us.myles.ViaVersion.sponge.listeners.protocol1_9to1_8.HandItemCache; import us.myles.ViaVersion.sponge.listeners.protocol1_9to1_8.sponge4.Sponge4ArmorListener; import us.myles.ViaVersion.sponge.listeners.protocol1_9to1_8.sponge5.Sponge5ArmorListener; -import us.myles.ViaVersion.sponge.providers.SpongeBlockConnectionProvider; import us.myles.ViaVersion.sponge.providers.SpongeViaBulkChunkTranslator; import us.myles.ViaVersion.sponge.providers.SpongeViaMovementTransmitter; @@ -80,9 +78,6 @@ public class SpongeViaLoader implements ViaPlatformLoader { } } }); - if (Via.getConfig().getBlockConnectionMethod().equalsIgnoreCase("world")) { - Via.getManager().getProviders().use(BlockConnectionProvider.class, new SpongeBlockConnectionProvider()); - } } public void unload() { diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/providers/SpongeBlockConnectionProvider.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/providers/SpongeBlockConnectionProvider.java deleted file mode 100644 index d74e330c9..000000000 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/providers/SpongeBlockConnectionProvider.java +++ /dev/null @@ -1,57 +0,0 @@ -package us.myles.ViaVersion.sponge.providers; - -import org.spongepowered.api.Sponge; -import org.spongepowered.api.block.BlockState; -import org.spongepowered.api.entity.living.player.Player; -import org.spongepowered.api.world.Chunk; -import org.spongepowered.api.world.World; -import us.myles.ViaVersion.api.Via; -import us.myles.ViaVersion.api.data.UserConnection; -import us.myles.ViaVersion.api.minecraft.Position; -import us.myles.ViaVersion.protocols.base.ProtocolInfo; -import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.blockconnections.providers.BlockConnectionProvider; -import us.myles.ViaVersion.util.ReflectionUtil; - -import java.util.Map; -import java.util.Optional; -import java.util.UUID; - -public class SpongeBlockConnectionProvider extends BlockConnectionProvider { - private static Class block; - private static Map blockStateIds; - - static { - try { - block = Class.forName("net.minecraft.block.Block"); - blockStateIds = ReflectionUtil.get( - ReflectionUtil.getStatic(block, "field_176229_d", Object.class), - "field_148749_a", Map.class); - } catch (ClassNotFoundException e) { - Via.getPlatform().getLogger().warning("net.minecraft.block.Block not found! Are you using Lantern?"); - } catch (IllegalAccessException | NoSuchFieldException e) { - e.printStackTrace(); - } - } - - @Override - public int getWorldBlockData(UserConnection user, Position position) { - if (blockStateIds != null) { - UUID uuid = user.get(ProtocolInfo.class).getUuid(); - Optional player = Sponge.getServer().getPlayer(uuid); - if (player.isPresent()) { - World world = player.get().getWorld(); - Optional chunk = world.getChunkAtBlock(position.getX().intValue(), position.getY().intValue(), position.getZ().intValue()); - if (chunk.isPresent()) { - BlockState b = chunk.get().getBlock(position.getX().intValue(), position.getY().intValue(), position.getZ().intValue()); - Integer id = blockStateIds.get(b); - if (id == null) { - System.out.println("id not found"); - } else { - return id; - } - } - } - } - return 0; - } -}