From a4aa87f000744e5eec94b0aa2533bd5649ce83a8 Mon Sep 17 00:00:00 2001 From: RaphiMC <50594595+RaphiMC@users.noreply.github.com> Date: Fri, 20 Oct 2023 16:25:33 +0200 Subject: [PATCH] Cleaned up code --- .../api/protocol/PreNettyBaseProtocol.java | 4 +- .../api/splitter/PreNettySplitter.java | 8 +-- .../Protocola1_0_16_2toa1_0_15.java | 2 +- .../Protocola1_0_17_1_0_17_4toa1_0_16_2.java | 4 +- .../storage/TimeLockStorage.java | 8 +-- ...tocola1_1_0_1_1_2_1toa1_0_17_1_0_17_4.java | 2 +- ...rotocola1_2_0_1_2_1_1toa1_1_0_1_1_2_1.java | 2 +- .../Protocola1_2_2toa1_2_0_1_2_1_1.java | 2 +- .../Protocola1_2_3_1_2_3_4toa1_2_2.java | 2 +- ...rotocola1_2_3_5_1_2_6toa1_2_3_1_2_3_4.java | 2 +- .../Protocolb1_0_1_1_1toa1_2_3_5_1_2_6.java | 10 ++-- .../storage/InventoryStorage.java | 8 +-- .../Protocol1_0_0_1tob1_8_0_1.java | 14 ++--- .../storage/PlayerAirTimeStorage.java | 9 +-- .../Protocolb1_2_0_2tob1_1_2.java | 11 +--- .../storage/EntityFlagStorage.java | 9 +-- .../Protocolb1_3_0_1tob1_2_0_2.java | 2 +- .../Protocolb1_4_0_1tob1_3_0_1.java | 2 +- .../Protocolb1_5_0_2tob1_4_0_1.java | 2 +- .../Protocolb1_6_0_6tob1_5_0_2.java | 4 +- .../storage/WorldTimeStorage.java | 9 +-- .../Protocolb1_8_0_1tob1_7_0_3.java | 6 +- .../storage/PlayerHealthTracker.java | 9 +-- .../storage/PlayerNameTracker.java | 9 +-- .../Protocola1_0_15toc0_30.java | 8 +-- .../storage/ClassicBlockRemapper.java | 8 +-- .../storage/ClassicPositionTracker.java | 9 +-- .../storage/ClassicProgressStorage.java | 9 +-- .../Protocolc0_0_16a_02to0_0_15a_1.java | 2 +- .../Protocolc0_0_19a_06toc0_0_18a_02.java | 2 +- .../Protocolc0_27toc0_0_19a_06.java | 4 +- .../Protocolc0_30toc0_27.java | 4 +- .../Protocolc0_30toc0_30cpe.java | 8 +-- .../storage/ExtBlockPermissionsStorage.java | 9 +-- .../ExtensionProtocolMetadataStorage.java | 9 +-- .../Protocol1_1to1_0_0_1.java | 2 +- .../rewriter/ItemRewriter.java | 2 +- .../Protocol1_2_1_3to1_1.java | 9 ++- .../rewriter/ItemRewriter.java | 2 +- .../storage/DimensionTracker.java | 23 ++++---- .../storage/SeedStorage.java | 9 +-- .../types/ChunkType1_1.java | 4 +- .../Protocol1_2_4_5to1_2_1_3.java | 2 +- .../rewriter/ItemRewriter.java | 2 +- .../Protocol1_3_1_2to1_2_4_5.java | 46 ++++++--------- .../storage/ChestStateTracker.java | 9 +-- .../storage/DimensionTracker.java | 23 ++++---- .../types/ItemType.java | 4 +- .../types/Types1_2_4.java | 4 +- .../Protocol1_4_2to1_3_1_2.java | 12 ++-- .../rewriter/ItemRewriter.java | 2 +- .../types/Types1_3_1.java | 1 - .../Protocol1_4_4_5to1_4_2.java | 2 +- .../rewriter/ItemRewriter.java | 2 +- .../Protocol1_4_6_7to1_4_4_5.java | 36 +----------- .../rewriter/ItemRewriter.java | 2 +- .../types/Types1_4_4.java | 5 +- .../Protocol1_5_0_1to1_4_6_7.java | 6 +- .../rewriter/ItemRewriter.java | 2 +- .../Protocol1_6_1to1_5_2.java | 6 +- .../rewriter/ItemRewriter.java | 2 +- .../storage/AttachTracker.java | 9 +-- .../storage/EntityTracker.java | 9 +-- .../Protocol1_6_2to1_6_1.java | 6 +- .../Protocol1_7_2_5to1_6_4.java | 57 ++++++++----------- .../rewriter/ItemRewriter.java | 2 +- .../storage/DimensionTracker.java | 23 ++++---- .../storage/HandshakeStorage.java | 8 +-- .../storage/PlayerInfoStorage.java | 9 +-- .../storage/ProtocolMetadataStorage.java | 10 +--- .../storage/StatisticsStorage.java | 9 +-- .../types/MetaType1_6_4.java | 2 +- .../Protocol1_7_6_10to1_7_2_5.java | 8 +-- .../Protocol1_8to1_7_6_10.java | 57 ++++++++----------- .../storage/DimensionTracker.java | 23 ++++---- .../storage/MapStorage.java | 9 +-- .../storage/WindowTracker.java | 9 +-- .../types/BulkChunkType1_7_6.java | 4 +- .../types/ChunkType1_7_6.java | 12 ++-- .../protocol1_8to1_7_6_10/types/ItemType.java | 4 +- .../types/MetaType1_7_6.java | 2 +- .../protocol1_8to1_7_6_10/types/NBTType.java | 9 +-- .../types/Types1_7_6.java | 19 +++---- 83 files changed, 277 insertions(+), 454 deletions(-) diff --git a/src/main/java/net/raphimc/vialegacy/api/protocol/PreNettyBaseProtocol.java b/src/main/java/net/raphimc/vialegacy/api/protocol/PreNettyBaseProtocol.java index cef9a78..b2af6aa 100644 --- a/src/main/java/net/raphimc/vialegacy/api/protocol/PreNettyBaseProtocol.java +++ b/src/main/java/net/raphimc/vialegacy/api/protocol/PreNettyBaseProtocol.java @@ -46,7 +46,7 @@ public class PreNettyBaseProtocol extends AbstractSimpleProtocol { wrapper.read(Type.VAR_INT); // protocolVersion final String hostname = wrapper.read(Type.STRING); // hostName final int port = wrapper.read(Type.UNSIGNED_SHORT); // port - wrapper.user().put(new HandshakeStorage(wrapper.user(), hostname, port)); + wrapper.user().put(new HandshakeStorage(hostname, port)); }); } }); @@ -60,7 +60,7 @@ public class PreNettyBaseProtocol extends AbstractSimpleProtocol { @Override public void init(UserConnection userConnection) { - userConnection.put(new ProtocolMetadataStorage(userConnection)); + userConnection.put(new ProtocolMetadataStorage()); } @Override diff --git a/src/main/java/net/raphimc/vialegacy/api/splitter/PreNettySplitter.java b/src/main/java/net/raphimc/vialegacy/api/splitter/PreNettySplitter.java index df5ce1f..74935da 100644 --- a/src/main/java/net/raphimc/vialegacy/api/splitter/PreNettySplitter.java +++ b/src/main/java/net/raphimc/vialegacy/api/splitter/PreNettySplitter.java @@ -17,19 +17,17 @@ */ package net.raphimc.vialegacy.api.splitter; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; import com.viaversion.viaversion.api.protocol.Protocol; import java.util.function.IntFunction; -public class PreNettySplitter extends StoredObject { +public class PreNettySplitter implements StorableObject { private final IntFunction packetTypeSupplier; private final Class> protocolClass; - public PreNettySplitter(UserConnection user, Class> protocolClass, IntFunction packetTypeSupplier) { - super(user); + public PreNettySplitter(Class> protocolClass, IntFunction packetTypeSupplier) { this.protocolClass = protocolClass; this.packetTypeSupplier = packetTypeSupplier; } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/alpha/protocola1_0_16_2toa1_0_15/Protocola1_0_16_2toa1_0_15.java b/src/main/java/net/raphimc/vialegacy/protocols/alpha/protocola1_0_16_2toa1_0_15/Protocola1_0_16_2toa1_0_15.java index 9f4aef3..cb7b833 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/alpha/protocola1_0_16_2toa1_0_15/Protocola1_0_16_2toa1_0_15.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/alpha/protocola1_0_16_2toa1_0_15/Protocola1_0_16_2toa1_0_15.java @@ -49,7 +49,7 @@ public class Protocola1_0_16_2toa1_0_15 extends StatelessProtocolget("x").asInt() != pos.x() || tag.get("y").asInt() != pos.y() || tag.get("z").asInt() != pos.z()) { return; @@ -365,7 +365,7 @@ public class Protocolb1_0_1_1_1toa1_2_3_5_1_2_6 extends StatelessProtocol itemRewriter.handleItemToServer(wrapper.get(Typesb1_8_0_1.CREATIVE_ITEM, 0))); } }); @@ -114,9 +114,9 @@ public class Protocol1_0_0_1tob1_8_0_1 extends StatelessProtocol { - final ClientWorld clientWorld = new ClientWorld(wrapper.user()); - clientWorld.setEnvironment(0); - BLOCK_DATA_REWRITER.remapChunk(wrapper.passthrough(Types1_1.CHUNK)); - }); + handler(wrapper -> BLOCK_DATA_REWRITER.remapChunk(wrapper.passthrough(Types1_1.CHUNK))); // chunk } }); this.registerClientbound(ClientboundPacketsb1_1.MULTI_BLOCK_CHANGE, new PacketHandlers() { @@ -203,9 +198,9 @@ public class Protocolb1_2_0_2tob1_1_2 extends StatelessProtocol names = new Int2ObjectArrayMap<>(); - public PlayerNameTracker(UserConnection user) { - super(user); - } - } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/Protocola1_0_15toc0_30.java b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/Protocola1_0_15toc0_30.java index 6ce67c4..30f006b 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/Protocola1_0_15toc0_30.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/Protocola1_0_15toc0_30.java @@ -545,12 +545,12 @@ public class Protocola1_0_15toc0_30 extends StatelessProtocol ClassicBlocks.MAPPING.get(i), o -> { + userConnection.put(new ClassicProgressStorage()); + userConnection.put(new ClassicBlockRemapper(i -> ClassicBlocks.MAPPING.get(i), o -> { int block = ClassicBlocks.REVERSE_MAPPING.getInt(o); if (!userConnection.getProtocolInfo().getPipeline().contains(Protocolc0_30toc0_30cpe.class)) { diff --git a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicBlockRemapper.java b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicBlockRemapper.java index 47c5ff9..68c2f82 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicBlockRemapper.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicBlockRemapper.java @@ -17,19 +17,17 @@ */ package net.raphimc.vialegacy.protocols.classic.protocola1_0_15toc0_28_30.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectFunction; import com.viaversion.viaversion.libs.fastutil.objects.Object2IntFunction; import net.raphimc.vialegacy.api.model.IdAndData; -public class ClassicBlockRemapper extends StoredObject { +public class ClassicBlockRemapper implements StorableObject { private final Int2ObjectFunction mapper; private final Object2IntFunction reverseMapper; - public ClassicBlockRemapper(UserConnection user, Int2ObjectFunction mapper, Object2IntFunction reverseMapper) { - super(user); + public ClassicBlockRemapper(Int2ObjectFunction mapper, Object2IntFunction reverseMapper) { this.mapper = mapper; this.reverseMapper = reverseMapper; } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicPositionTracker.java b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicPositionTracker.java index e746e96..046e7e9 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicPositionTracker.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicPositionTracker.java @@ -17,14 +17,13 @@ */ package net.raphimc.vialegacy.protocols.classic.protocola1_0_15toc0_28_30.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; import com.viaversion.viaversion.api.minecraft.Position; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.type.Type; import net.raphimc.vialegacy.api.model.ChunkCoord; -public class ClassicPositionTracker extends StoredObject { +public class ClassicPositionTracker implements StorableObject { public double posX; public double stance; @@ -34,10 +33,6 @@ public class ClassicPositionTracker extends StoredObject { public boolean spawned; - public ClassicPositionTracker(final UserConnection user) { - super(user); - } - public void writeToPacket(final PacketWrapper wrapper) { final int x = (int) (this.posX * 32.0F); final int y = (int) (this.stance * 32.0F); diff --git a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicProgressStorage.java b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicProgressStorage.java index edb41da..24b72ac 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicProgressStorage.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocola1_0_15toc0_28_30/storage/ClassicProgressStorage.java @@ -17,17 +17,12 @@ */ package net.raphimc.vialegacy.protocols.classic.protocola1_0_15toc0_28_30.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; -public class ClassicProgressStorage extends StoredObject { +public class ClassicProgressStorage implements StorableObject { public int upperBound = 100; public int progress; // 0% - upperBound public String status = "Waiting..."; - public ClassicProgressStorage(UserConnection user) { - super(user); - } - } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_0_16a_02to0_0_15a_1/Protocolc0_0_16a_02to0_0_15a_1.java b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_0_16a_02to0_0_15a_1/Protocolc0_0_16a_02to0_0_15a_1.java index e145fb5..9c0004a 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_0_16a_02to0_0_15a_1/Protocolc0_0_16a_02to0_0_15a_1.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_0_16a_02to0_0_15a_1/Protocolc0_0_16a_02to0_0_15a_1.java @@ -87,7 +87,7 @@ public class Protocolc0_0_16a_02to0_0_15a_1 extends StatelessProtocol { + userConnection.put(new ClassicBlockRemapper(previousRemapper.getMapper(), o -> { int block = previousRemapper.getReverseMapper().getInt(o); if (userConnection.getProtocolInfo().getPipeline().contains(Protocolc0_0_19a_06toc0_0_18a_02.class)) { diff --git a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_0_20a_27toc0_0_19a_06/Protocolc0_27toc0_0_19a_06.java b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_0_20a_27toc0_0_19a_06/Protocolc0_27toc0_0_19a_06.java index 1ba4d22..992d3f6 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_0_20a_27toc0_0_19a_06/Protocolc0_27toc0_0_19a_06.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_0_20a_27toc0_0_19a_06/Protocolc0_27toc0_0_19a_06.java @@ -60,10 +60,10 @@ public class Protocolc0_27toc0_0_19a_06 extends StatelessProtocol { + userConnection.put(new ClassicBlockRemapper(previousRemapper.getMapper(), o -> { int block = previousRemapper.getReverseMapper().getInt(o); if (!userConnection.getProtocolInfo().getPipeline().contains(Protocolc0_0_19a_06toc0_0_18a_02.class)) { diff --git a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_0_20a_27/Protocolc0_30toc0_27.java b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_0_20a_27/Protocolc0_30toc0_27.java index 7ae2512..972c3a0 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_0_20a_27/Protocolc0_30toc0_27.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_0_20a_27/Protocolc0_30toc0_27.java @@ -34,10 +34,10 @@ public class Protocolc0_30toc0_27 extends StatelessProtocol { + userConnection.put(new ClassicBlockRemapper(previousRemapper.getMapper(), o -> { int block = previousRemapper.getReverseMapper().getInt(o); if (!userConnection.getProtocolInfo().getPipeline().contains(Protocolc0_27toc0_0_19a_06.class)) { diff --git a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/Protocolc0_30toc0_30cpe.java b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/Protocolc0_30toc0_30cpe.java index 759060f..e28b7c1 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/Protocolc0_30toc0_30cpe.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/Protocolc0_30toc0_30cpe.java @@ -134,7 +134,7 @@ public class Protocolc0_30toc0_30cpe extends StatelessProtocol { + userConnection.put(new ClassicBlockRemapper(i -> { if (ClassicBlocks.MAPPING.containsKey(i)) return previousRemapper.getMapper().get(i); final ExtensionProtocolMetadataStorage extensionProtocol = userConnection.get(ExtensionProtocolMetadataStorage.class); if (extensionProtocol.hasServerExtension(ClassicProtocolExtension.CUSTOM_BLOCKS, 1)) { diff --git a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/storage/ExtBlockPermissionsStorage.java b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/storage/ExtBlockPermissionsStorage.java index c961feb..58fe4f5 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/storage/ExtBlockPermissionsStorage.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/storage/ExtBlockPermissionsStorage.java @@ -17,20 +17,15 @@ */ package net.raphimc.vialegacy.protocols.classic.protocolc0_28_30toc0_28_30cpe.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; import com.viaversion.viaversion.libs.fastutil.ints.IntOpenHashSet; import com.viaversion.viaversion.libs.fastutil.ints.IntSet; -public class ExtBlockPermissionsStorage extends StoredObject { +public class ExtBlockPermissionsStorage implements StorableObject { private final IntSet placingDenied = new IntOpenHashSet(); private final IntSet breakingDenied = new IntOpenHashSet(); - public ExtBlockPermissionsStorage(final UserConnection user) { - super(user); - } - public void addPlaceable(final int block) { this.placingDenied.remove(block); } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/storage/ExtensionProtocolMetadataStorage.java b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/storage/ExtensionProtocolMetadataStorage.java index ab46c3e..8dc6e56 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/storage/ExtensionProtocolMetadataStorage.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/classic/protocolc0_28_30toc0_28_30cpe/storage/ExtensionProtocolMetadataStorage.java @@ -17,13 +17,12 @@ */ package net.raphimc.vialegacy.protocols.classic.protocolc0_28_30toc0_28_30cpe.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; import net.raphimc.vialegacy.protocols.classic.protocolc0_28_30toc0_28_30cpe.data.ClassicProtocolExtension; import java.util.EnumMap; -public class ExtensionProtocolMetadataStorage extends StoredObject { +public class ExtensionProtocolMetadataStorage implements StorableObject { private String serverSoftwareName = "classic"; private short extensionCount = -1; @@ -31,10 +30,6 @@ public class ExtensionProtocolMetadataStorage extends StoredObject { private final EnumMap serverExtensions = new EnumMap<>(ClassicProtocolExtension.class); - public ExtensionProtocolMetadataStorage(final UserConnection user) { - super(user); - } - public void setServerSoftwareName(final String serverSoftwareName) { if (serverSoftwareName.isEmpty()) return; this.serverSoftwareName = serverSoftwareName; diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_1to1_0_0_1/Protocol1_1to1_0_0_1.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_1to1_0_0_1/Protocol1_1to1_0_0_1.java index 4a6a69a..c894dfc 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_1to1_0_0_1/Protocol1_1to1_0_0_1.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_1to1_0_0_1/Protocol1_1to1_0_0_1.java @@ -128,7 +128,7 @@ public class Protocol1_1to1_0_0_1 extends StatelessProtocol { @Override protected void registerPackets() { - this.registerCreativeInventoryAction(ServerboundPackets1_1.CREATIVE_INVENTORY_ACTION, Types1_2_4.COMPRESSED_NBT_ITEM); + this.registerCreativeInventoryAction(ServerboundPackets1_1.CREATIVE_INVENTORY_ACTION, Types1_2_4.NBT_ITEM); } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/Protocol1_2_1_3to1_1.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/Protocol1_2_1_3to1_1.java index aedfd96..3b06477 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/Protocol1_2_1_3to1_1.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/Protocol1_2_1_3to1_1.java @@ -320,8 +320,7 @@ public class Protocol1_2_1_3to1_1 extends StatelessProtocol { @Override protected void registerPackets() { - this.registerCreativeInventoryAction(ServerboundPackets1_2_1.CREATIVE_INVENTORY_ACTION, Types1_2_4.COMPRESSED_NBT_ITEM); + this.registerCreativeInventoryAction(ServerboundPackets1_2_1.CREATIVE_INVENTORY_ACTION, Types1_2_4.NBT_ITEM); } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/storage/DimensionTracker.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/storage/DimensionTracker.java index c9545ac..30e0e22 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/storage/DimensionTracker.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/storage/DimensionTracker.java @@ -17,23 +17,22 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_2_1_3to1_1.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; +import com.viaversion.viaversion.api.minecraft.Environment; -public class DimensionTracker extends StoredObject { +public class DimensionTracker implements StorableObject { - private int dimensionId = 0; + private Environment dimension = Environment.NORMAL; - public DimensionTracker(UserConnection user) { - super(user); + public boolean changeDimension(final int dimensionId) { + final Environment newDimension = Environment.getEnvironmentById(dimensionId); + final boolean dimensionChanged = newDimension != this.dimension; + this.dimension = Environment.getEnvironmentById(dimensionId); + return dimensionChanged; } - public void setDimension(final int dimensionId) { - this.dimensionId = dimensionId; - } - - public int getDimensionId() { - return this.dimensionId; + public Environment getDimension() { + return this.dimension; } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/storage/SeedStorage.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/storage/SeedStorage.java index 5ed0fc8..f9f72ec 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/storage/SeedStorage.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/storage/SeedStorage.java @@ -17,17 +17,12 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_2_1_3to1_1.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; import net.raphimc.vialegacy.protocols.release.protocol1_2_1_3to1_1.biome.IWorldChunkManager; -public class SeedStorage extends StoredObject { +public class SeedStorage implements StorableObject { public long seed; public IWorldChunkManager worldChunkManager; - public SeedStorage(UserConnection user) { - super(user); - } - } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/types/ChunkType1_1.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/types/ChunkType1_1.java index 58a9d6d..2d05877 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/types/ChunkType1_1.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_1_3to1_1/types/ChunkType1_1.java @@ -20,7 +20,6 @@ package net.raphimc.vialegacy.protocols.release.protocol1_2_1_3to1_1.types; import com.viaversion.viaversion.api.minecraft.Position; import com.viaversion.viaversion.api.minecraft.chunks.*; import com.viaversion.viaversion.api.type.Type; -import com.viaversion.viaversion.api.type.types.FixedByteArrayType; import io.netty.buffer.ByteBuf; import net.raphimc.vialegacy.api.model.IdAndData; import net.raphimc.vialegacy.protocols.release.protocol1_2_1_3to1_1.chunks.NibbleArray1_1; @@ -46,7 +45,8 @@ public class ChunkType1_1 extends Type { final int ySize = byteBuf.readUnsignedByte() + 1; final int zSize = byteBuf.readUnsignedByte() + 1; final int chunkSize = byteBuf.readInt(); - final byte[] compressedData = new FixedByteArrayType(chunkSize).read(byteBuf); + final byte[] compressedData = new byte[chunkSize]; + byteBuf.readBytes(compressedData); final byte[] uncompressedData = new byte[(xSize * ySize * zSize * 5) / 2]; final Inflater inflater = new Inflater(); inflater.setInput(compressedData); diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_4_5to1_2_1_3/Protocol1_2_4_5to1_2_1_3.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_4_5to1_2_1_3/Protocol1_2_4_5to1_2_1_3.java index ef2cddc..366cdbb 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_4_5to1_2_1_3/Protocol1_2_4_5to1_2_1_3.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_2_4_5to1_2_1_3/Protocol1_2_4_5to1_2_1_3.java @@ -42,7 +42,7 @@ public class Protocol1_2_4_5to1_2_1_3 extends StatelessProtocol { @Override protected void registerPackets() { - this.registerCreativeInventoryAction(ServerboundPackets1_2_4.CREATIVE_INVENTORY_ACTION, Types1_2_4.COMPRESSED_NBT_ITEM); + this.registerCreativeInventoryAction(ServerboundPackets1_2_4.CREATIVE_INVENTORY_ACTION, Types1_2_4.NBT_ITEM); } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/Protocol1_3_1_2to1_2_4_5.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/Protocol1_3_1_2to1_2_4_5.java index 433646b..17bf338 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/Protocol1_3_1_2to1_2_4_5.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/Protocol1_3_1_2to1_2_4_5.java @@ -21,7 +21,6 @@ import com.google.common.collect.Lists; import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.connection.ProtocolInfo; import com.viaversion.viaversion.api.connection.UserConnection; -import com.viaversion.viaversion.api.minecraft.ClientWorld; import com.viaversion.viaversion.api.minecraft.Environment; import com.viaversion.viaversion.api.minecraft.Position; import com.viaversion.viaversion.api.minecraft.chunks.*; @@ -67,7 +66,6 @@ import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage.Ch import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage.ProtocolMetadataStorage; import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types.Types1_6_4; import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.metadata.MetaIndex1_8to1_7_6; -import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkType1_7_6; import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.Types1_7_6; import java.util.ArrayList; @@ -141,8 +139,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol { - wrapper.user().get(ClientWorld.class).setEnvironment(wrapper.get(Type.BYTE, 1)); - wrapper.user().get(DimensionTracker.class).setDimension(wrapper.get(Type.BYTE, 1)); + wrapper.user().get(DimensionTracker.class).changeDimension(wrapper.get(Type.BYTE, 1)); final EntityTracker entityTracker = wrapper.user().get(EntityTracker.class); entityTracker.setPlayerID(wrapper.get(Type.INT, 0)); entityTracker.getTrackedEntities().put(entityTracker.getPlayerID(), new TrackedLivingEntity(entityTracker.getPlayerID(), new Location(8, 64, 8), EntityTypes1_10.EntityType.PLAYER)); @@ -157,7 +154,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol { final int itemId = wrapper.read(Type.SHORT); // item id final short itemDamage = wrapper.read(Type.SHORT); // item damage - wrapper.write(Types1_7_6.COMPRESSED_ITEM, itemId < 0 ? null : new DataItem(itemId, (byte) 1, itemDamage, null)); + wrapper.write(Types1_7_6.ITEM, itemId < 0 ? null : new DataItem(itemId, (byte) 1, itemDamage, null)); }); } }); @@ -170,11 +167,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol { - final int oldDim = wrapper.user().get(DimensionTracker.class).getDimensionId(); - final int newDim = wrapper.get(Type.INT, 0); - wrapper.user().get(ClientWorld.class).setEnvironment(newDim); - wrapper.user().get(DimensionTracker.class).setDimension(newDim); - if (oldDim != newDim) { + if (wrapper.user().get(DimensionTracker.class).changeDimension(wrapper.get(Type.INT, 0))) { wrapper.user().get(ChestStateTracker.class).clear(); final EntityTracker entityTracker = wrapper.user().get(EntityTracker.class); entityTracker.getTrackedEntities().clear(); @@ -459,7 +452,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol()); - wrapper.write(Types1_7_6.getChunk(wrapper.user().get(ClientWorld.class).getEnvironment()), chunk); + wrapper.write(Types1_7_6.getChunk(wrapper.user().get(DimensionTracker.class).getDimension()), chunk); } else { wrapper.cancel(); } @@ -470,7 +463,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol { - final Environment environment = wrapper.user().get(ClientWorld.class).getEnvironment(); + final Environment dimension = wrapper.user().get(DimensionTracker.class).getDimension(); Chunk chunk = wrapper.read(Types1_2_4.CHUNK); wrapper.user().get(ChestStateTracker.class).unload(chunk.getX(), chunk.getZ()); @@ -481,7 +474,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol itemRewriter.handleItemToServer(wrapper.get(Types1_2_4.COMPRESSED_NBT_ITEM, 0))); + map(Types1_7_6.ITEM, Types1_2_4.NBT_ITEM); // item + handler(wrapper -> itemRewriter.handleItemToServer(wrapper.get(Types1_2_4.NBT_ITEM, 0))); } }); this.registerServerbound(ServerboundPackets1_3_1.PLAYER_ABILITIES, new PacketHandlers() { @@ -851,14 +844,11 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol openChests = new HashSet<>(); - public ChestStateTracker(final UserConnection userConnection) { - super(userConnection); - } - public void openChest(final Position position) { this.openChests.add(position); } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/storage/DimensionTracker.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/storage/DimensionTracker.java index 1f4e55a..af77288 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/storage/DimensionTracker.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/storage/DimensionTracker.java @@ -17,23 +17,22 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_3_1_2to1_2_4_5.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; +import com.viaversion.viaversion.api.minecraft.Environment; -public class DimensionTracker extends StoredObject { +public class DimensionTracker implements StorableObject { - private int dimensionId = 0; + private Environment dimension = Environment.NORMAL; - public DimensionTracker(UserConnection user) { - super(user); + public boolean changeDimension(final int dimensionId) { + final Environment newDimension = Environment.getEnvironmentById(dimensionId); + final boolean dimensionChanged = newDimension != this.dimension; + this.dimension = Environment.getEnvironmentById(dimensionId); + return dimensionChanged; } - public void setDimension(final int dimensionId) { - this.dimensionId = dimensionId; - } - - public int getDimensionId() { - return this.dimensionId; + public Environment getDimension() { + return this.dimension; } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/types/ItemType.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/types/ItemType.java index a4246a5..862bea1 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/types/ItemType.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/types/ItemType.java @@ -40,7 +40,7 @@ public class ItemType extends Type { item.setAmount(buffer.readByte()); item.setData(buffer.readShort()); if (NbtItemList.hasNbt(id)) { - item.setTag(Types1_7_6.COMPRESSED_NBT.read(buffer)); + item.setTag(Types1_7_6.NBT.read(buffer)); } return item; } @@ -54,7 +54,7 @@ public class ItemType extends Type { buffer.writeByte(item.amount()); buffer.writeShort(item.data()); if (NbtItemList.hasNbt(item.identifier())) { - Types1_7_6.COMPRESSED_NBT.write(buffer, item.tag()); + Types1_7_6.NBT.write(buffer, item.tag()); } } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/types/Types1_2_4.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/types/Types1_2_4.java index 1745cef..2e8024e 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/types/Types1_2_4.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_3_1_2to1_2_4_5/types/Types1_2_4.java @@ -24,8 +24,8 @@ import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ItemA public class Types1_2_4 { - public static final Type COMPRESSED_NBT_ITEM = new ItemType(); - public static final Type COMPRESSED_NBT_ITEM_ARRAY = new ItemArrayType<>(COMPRESSED_NBT_ITEM); + public static final Type NBT_ITEM = new ItemType(); + public static final Type NBT_ITEM_ARRAY = new ItemArrayType<>(NBT_ITEM); public static final Type CHUNK = new ChunkType1_2_4(); diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_2to1_3_1_2/Protocol1_4_2to1_3_1_2.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_2to1_3_1_2/Protocol1_4_2to1_3_1_2.java index 8afb8ab..b542f6c 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_2to1_3_1_2/Protocol1_4_2to1_3_1_2.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_2to1_3_1_2/Protocol1_4_2to1_3_1_2.java @@ -156,7 +156,7 @@ public class Protocol1_4_2to1_3_1_2 extends StatelessProtocol { @Override protected void registerPackets() { - this.registerCreativeInventoryAction(ServerboundPackets1_5_2.CREATIVE_INVENTORY_ACTION, Types1_7_6.COMPRESSED_ITEM); + this.registerCreativeInventoryAction(ServerboundPackets1_5_2.CREATIVE_INVENTORY_ACTION, Types1_7_6.ITEM); } @Override diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_2to1_3_1_2/types/Types1_3_1.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_2to1_3_1_2/types/Types1_3_1.java index b327ba2..4d4f88a 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_2to1_3_1_2/types/Types1_3_1.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_2to1_3_1_2/types/Types1_3_1.java @@ -21,7 +21,6 @@ import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.minecraft.metadata.Metadata; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.api.type.types.metadata.MetaListType; -import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ItemArrayType; import java.util.List; diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_4_5to1_4_2/Protocol1_4_4_5to1_4_2.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_4_5to1_4_2/Protocol1_4_4_5to1_4_2.java index c7cfd34..5ef95da 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_4_5to1_4_2/Protocol1_4_4_5to1_4_2.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_4_5to1_4_2/Protocol1_4_4_5to1_4_2.java @@ -104,7 +104,7 @@ public class Protocol1_4_4_5to1_4_2 extends StatelessProtocol { @Override protected void registerPackets() { - this.registerCreativeInventoryAction(ServerboundPackets1_5_2.CREATIVE_INVENTORY_ACTION, Types1_7_6.COMPRESSED_ITEM); + this.registerCreativeInventoryAction(ServerboundPackets1_5_2.CREATIVE_INVENTORY_ACTION, Types1_7_6.ITEM); } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_6_7to1_4_4_5/Protocol1_4_6_7to1_4_4_5.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_6_7to1_4_4_5/Protocol1_4_6_7to1_4_4_5.java index 9a9c6d1..d2e7bd2 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_6_7to1_4_4_5/Protocol1_4_6_7to1_4_4_5.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_6_7to1_4_4_5/Protocol1_4_6_7to1_4_4_5.java @@ -19,8 +19,6 @@ package net.raphimc.vialegacy.protocols.release.protocol1_4_6_7to1_4_4_5; import com.google.common.collect.Lists; import com.viaversion.viaversion.api.connection.UserConnection; -import com.viaversion.viaversion.api.minecraft.ClientWorld; -import com.viaversion.viaversion.api.minecraft.Environment; import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10; import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.minecraft.metadata.Metadata; @@ -31,14 +29,12 @@ import net.raphimc.vialegacy.api.protocol.StatelessProtocol; import net.raphimc.vialegacy.api.remapper.LegacyItemRewriter; import net.raphimc.vialegacy.api.splitter.PreNettySplitter; import net.raphimc.vialegacy.protocols.release.protocol1_4_6_7to1_4_4_5.rewriter.ItemRewriter; -import net.raphimc.vialegacy.protocols.release.protocol1_4_6_7to1_4_4_5.types.BulkChunkType1_4_4; import net.raphimc.vialegacy.protocols.release.protocol1_4_6_7to1_4_4_5.types.Types1_4_4; import net.raphimc.vialegacy.protocols.release.protocol1_5_0_1to1_4_6_7.ClientboundPackets1_4_6; import net.raphimc.vialegacy.protocols.release.protocol1_6_1to1_5_2.ServerboundPackets1_5_2; import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types.MetaType1_6_4; import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types.Types1_6_4; import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.metadata.MetaIndex1_8to1_7_6; -import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.BulkChunkType1_7_6; import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.Types1_7_6; public class Protocol1_4_6_7to1_4_4_5 extends StatelessProtocol { @@ -53,36 +49,12 @@ public class Protocol1_4_6_7to1_4_4_5 extends StatelessProtocol wrapper.user().get(ClientWorld.class).setEnvironment(wrapper.get(Type.BYTE, 1))); - } - }); - this.registerClientbound(ClientboundPackets1_4_4.RESPAWN, new PacketHandlers() { - @Override - public void register() { - map(Type.INT); // dimension id - map(Type.BYTE); // difficulty - map(Type.BYTE); // game mode - map(Type.SHORT); // world height - map(Types1_6_4.STRING); // worldType - handler(wrapper -> wrapper.user().get(ClientWorld.class).setEnvironment(wrapper.get(Type.INT, 0))); - } - }); this.registerClientbound(ClientboundPackets1_4_4.SPAWN_ITEM, ClientboundPackets1_4_6.SPAWN_ENTITY, new PacketHandlers() { @Override public void register() { handler(wrapper -> { final int entityId = wrapper.read(Type.INT); // entity id - final Item item = wrapper.read(Types1_7_6.COMPRESSED_ITEM); // item + final Item item = wrapper.read(Types1_7_6.ITEM); // item final int x = wrapper.read(Type.INT); // x final int y = wrapper.read(Type.INT); // y final int z = wrapper.read(Type.INT); // z @@ -151,11 +123,7 @@ public class Protocol1_4_6_7to1_4_4_5 extends StatelessProtocol { @Override protected void registerPackets() { - this.registerCreativeInventoryAction(ServerboundPackets1_5_2.CREATIVE_INVENTORY_ACTION, Types1_7_6.COMPRESSED_ITEM); + this.registerCreativeInventoryAction(ServerboundPackets1_5_2.CREATIVE_INVENTORY_ACTION, Types1_7_6.ITEM); } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_6_7to1_4_4_5/types/Types1_4_4.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_6_7to1_4_4_5/types/Types1_4_4.java index a34d49e..81c9f84 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_6_7to1_4_4_5/types/Types1_4_4.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_4_6_7to1_4_4_5/types/Types1_4_4.java @@ -17,8 +17,11 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_4_6_7to1_4_4_5.types; +import com.viaversion.viaversion.api.minecraft.chunks.Chunk; +import com.viaversion.viaversion.api.type.Type; + public class Types1_4_4 { - public static final BulkChunkType1_4_4 CHUNK_BULK = new BulkChunkType1_4_4(); + public static final Type CHUNK_BULK = new BulkChunkType1_4_4(); } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_5_0_1to1_4_6_7/Protocol1_5_0_1to1_4_6_7.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_5_0_1to1_4_6_7/Protocol1_5_0_1to1_4_6_7.java index a5d6467..8d627f3 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_5_0_1to1_4_6_7/Protocol1_5_0_1to1_4_6_7.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_5_0_1to1_4_6_7/Protocol1_5_0_1to1_4_6_7.java @@ -100,7 +100,7 @@ public class Protocol1_5_0_1to1_4_6_7 extends StatelessProtocol { final short slot = wrapper.get(Type.SHORT, 0); final byte button = wrapper.get(Type.BYTE, 1); @@ -141,7 +141,7 @@ public class Protocol1_5_0_1to1_4_6_7 extends StatelessProtocol { @Override protected void registerPackets() { - this.registerCreativeInventoryAction(ServerboundPackets1_5_2.CREATIVE_INVENTORY_ACTION, Types1_7_6.COMPRESSED_ITEM); + this.registerCreativeInventoryAction(ServerboundPackets1_5_2.CREATIVE_INVENTORY_ACTION, Types1_7_6.ITEM); } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/Protocol1_6_1to1_5_2.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/Protocol1_6_1to1_5_2.java index dead7a5..a7926a6 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/Protocol1_6_1to1_5_2.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/Protocol1_6_1to1_5_2.java @@ -373,10 +373,10 @@ public class Protocol1_6_1to1_5_2 extends StatelessProtocol { @Override protected void registerPackets() { - this.registerCreativeInventoryAction(ServerboundPackets1_6_4.CREATIVE_INVENTORY_ACTION, Types1_7_6.COMPRESSED_ITEM); + this.registerCreativeInventoryAction(ServerboundPackets1_6_4.CREATIVE_INVENTORY_ACTION, Types1_7_6.ITEM); } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/storage/AttachTracker.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/storage/AttachTracker.java index ba66b0d..da124a3 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/storage/AttachTracker.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/storage/AttachTracker.java @@ -17,16 +17,11 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_6_1to1_5_2.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; -public class AttachTracker extends StoredObject { +public class AttachTracker implements StorableObject { public int vehicleEntityId = -1; public boolean lastSneakState = false; - public AttachTracker(UserConnection user) { - super(user); - } - } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/storage/EntityTracker.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/storage/EntityTracker.java index 48d1b64..9bf9456 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/storage/EntityTracker.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_1to1_5_2/storage/EntityTracker.java @@ -17,23 +17,18 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_6_1to1_5_2.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -public class EntityTracker extends StoredObject { +public class EntityTracker implements StorableObject { private final Map entityMap = new ConcurrentHashMap<>(); private int playerID; - public EntityTracker(UserConnection user) { - super(user); - } - public int getPlayerID() { return this.playerID; } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_2to1_6_1/Protocol1_6_2to1_6_1.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_2to1_6_1/Protocol1_6_2to1_6_1.java index 4b0e6c2..48b7a00 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_2to1_6_1/Protocol1_6_2to1_6_1.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_6_2to1_6_1/Protocol1_6_2to1_6_1.java @@ -78,14 +78,14 @@ public class Protocol1_6_2to1_6_1 extends StatelessProtocol { final Position pos = wrapper.get(Types1_7_6.POSITION_UBYTE, 0); final short direction = wrapper.get(Type.UNSIGNED_BYTE, 0); - final Item item = wrapper.get(Types1_7_6.COMPRESSED_ITEM, 0); + final Item item = wrapper.get(Types1_7_6.ITEM, 0); if (item != null && item.identifier() == ItemList1_6.sign.itemID && direction != 255 && direction != 0) { // If placed item is a sign then cancel and send a OPEN_SIGN_EDITOR packet final PacketWrapper openSignEditor = PacketWrapper.create(ClientboundPackets1_6_4.OPEN_SIGN_EDITOR, wrapper.user()); @@ -100,7 +100,7 @@ public class Protocol1_6_2to1_6_1 extends StatelessProtocol { final byte dimensionId = wrapper.get(Type.BYTE, 0); - wrapper.user().get(DimensionTracker.class).setDimension(dimensionId); - wrapper.user().get(ClientWorld.class).setEnvironment(dimensionId); + wrapper.user().get(DimensionTracker.class).changeDimension(dimensionId); wrapper.user().put(new ChunkTracker(wrapper.user())); }); @@ -143,8 +139,8 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol itemRewriter.handleItemToClient(wrapper.get(Types1_7_6.COMPRESSED_ITEM, 0))); + map(Types1_7_6.ITEM); // item + handler(wrapper -> itemRewriter.handleItemToClient(wrapper.get(Types1_7_6.ITEM, 0))); } }); this.registerClientbound(ClientboundPackets1_6_4.RESPAWN, new PacketHandlers() { @@ -156,11 +152,7 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol { - final int oldDim = wrapper.user().get(DimensionTracker.class).getDimensionId(); - final int newDim = wrapper.get(Type.INT, 0); - wrapper.user().get(DimensionTracker.class).setDimension(newDim); - wrapper.user().get(ClientWorld.class).setEnvironment(newDim); - if (oldDim != newDim) { + if (wrapper.user().get(DimensionTracker.class).changeDimension(wrapper.get(Type.INT, 0))) { wrapper.user().get(ChunkTracker.class).clear(); } }); @@ -421,7 +413,7 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol { - final Chunk chunk = wrapper.passthrough(Types1_7_6.getChunk(wrapper.user().get(ClientWorld.class).getEnvironment())); + final Chunk chunk = wrapper.passthrough(Types1_7_6.getChunk(wrapper.user().get(DimensionTracker.class).getDimension())); wrapper.user().get(ChunkTracker.class).trackAndRemap(chunk); }); } @@ -655,8 +647,8 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol itemRewriter.handleItemToClient(wrapper.get(Types1_7_6.COMPRESSED_ITEM, 0))); + map(Types1_7_6.ITEM); // item + handler(wrapper -> itemRewriter.handleItemToClient(wrapper.get(Types1_7_6.ITEM, 0))); } }); this.registerClientbound(ClientboundPackets1_6_4.WINDOW_ITEMS, new PacketHandlers() { @@ -664,7 +656,7 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol { - final Item[] items = wrapper.passthrough(Types1_7_6.COMPRESSED_ITEM_ARRAY); // items + final Item[] items = wrapper.passthrough(Types1_7_6.ITEM_ARRAY); // items for (Item item : items) { itemRewriter.handleItemToClient(item); } @@ -694,7 +686,7 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol itemRewriter.handleItemToServer(wrapper.get(Types1_7_6.COMPRESSED_ITEM, 0))); + map(Types1_7_6.ITEM); // item + handler(wrapper -> itemRewriter.handleItemToServer(wrapper.get(Types1_7_6.ITEM, 0))); map(Type.UNSIGNED_BYTE); // offset x map(Type.UNSIGNED_BYTE); // offset y map(Type.UNSIGNED_BYTE); // offset z @@ -1038,8 +1030,8 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol itemRewriter.handleItemToServer(wrapper.get(Types1_7_6.COMPRESSED_ITEM, 0))); + map(Types1_7_6.ITEM); // item + handler(wrapper -> itemRewriter.handleItemToServer(wrapper.get(Types1_7_6.ITEM, 0))); } }); this.registerServerbound(ServerboundPackets1_7_2.UPDATE_SIGN, new PacketHandlers() { @@ -1130,14 +1122,14 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol { @Override protected void registerPackets() { - this.registerCreativeInventoryAction(ServerboundPackets1_7_2.CREATIVE_INVENTORY_ACTION, Types1_7_6.COMPRESSED_ITEM); + this.registerCreativeInventoryAction(ServerboundPackets1_7_2.CREATIVE_INVENTORY_ACTION, Types1_7_6.ITEM); } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/DimensionTracker.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/DimensionTracker.java index e5e8ec2..ad862a3 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/DimensionTracker.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/DimensionTracker.java @@ -17,23 +17,22 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; +import com.viaversion.viaversion.api.minecraft.Environment; -public class DimensionTracker extends StoredObject { +public class DimensionTracker implements StorableObject { - private int dimensionId = 0; + private Environment dimension = Environment.NORMAL; - public DimensionTracker(UserConnection user) { - super(user); + public boolean changeDimension(final int dimensionId) { + final Environment newDimension = Environment.getEnvironmentById(dimensionId); + final boolean dimensionChanged = this.dimension != newDimension; + this.dimension = newDimension; + return dimensionChanged; } - public void setDimension(final int dimensionId) { - this.dimensionId = dimensionId; - } - - public int getDimensionId() { - return this.dimensionId; + public Environment getDimension() { + return this.dimension; } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/HandshakeStorage.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/HandshakeStorage.java index 245315c..8259737 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/HandshakeStorage.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/HandshakeStorage.java @@ -17,16 +17,14 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; -public class HandshakeStorage extends StoredObject { +public class HandshakeStorage implements StorableObject { private final String hostname; private final int port; - public HandshakeStorage(final UserConnection user, final String hostName, final int port) { - super(user); + public HandshakeStorage(final String hostName, final int port) { this.hostname = hostName; this.port = port; } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/PlayerInfoStorage.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/PlayerInfoStorage.java index 2b6c3a3..7037c47 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/PlayerInfoStorage.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/PlayerInfoStorage.java @@ -17,10 +17,9 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; -public class PlayerInfoStorage extends StoredObject { +public class PlayerInfoStorage implements StorableObject { public int entityId = -1; public boolean onGround = false; @@ -30,8 +29,4 @@ public class PlayerInfoStorage extends StoredObject { public float yaw = -180; public float pitch = 0; - public PlayerInfoStorage(final UserConnection userConnection) { - super(userConnection); - } - } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/ProtocolMetadataStorage.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/ProtocolMetadataStorage.java index 3378b01..35cfa20 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/ProtocolMetadataStorage.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/ProtocolMetadataStorage.java @@ -17,17 +17,11 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; -public class ProtocolMetadataStorage extends StoredObject { +public class ProtocolMetadataStorage implements StorableObject { public boolean authenticate; - public boolean skipEncryption; - public ProtocolMetadataStorage(UserConnection user) { - super(user); - } - } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/StatisticsStorage.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/StatisticsStorage.java index 1a33eb6..bc82c07 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/StatisticsStorage.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/storage/StatisticsStorage.java @@ -17,17 +17,12 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; import com.viaversion.viaversion.libs.fastutil.ints.Int2IntMap; import com.viaversion.viaversion.libs.fastutil.ints.Int2IntOpenHashMap; -public class StatisticsStorage extends StoredObject { +public class StatisticsStorage implements StorableObject { public final Int2IntMap values = new Int2IntOpenHashMap(); - public StatisticsStorage(final UserConnection userConnection) { - super(userConnection); - } - } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/types/MetaType1_6_4.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/types/MetaType1_6_4.java index f4cdb18..ed25d04 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/types/MetaType1_6_4.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_2_5to1_6_4/types/MetaType1_6_4.java @@ -28,7 +28,7 @@ public enum MetaType1_6_4 implements MetaType { Int(2, Type.INT), Float(3, Type.FLOAT), String(4, Types1_6_4.STRING), - Slot(5, Types1_7_6.COMPRESSED_ITEM), + Slot(5, Types1_7_6.ITEM), Position(6, Type.VECTOR); private final int typeID; diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_6_10to1_7_2_5/Protocol1_7_6_10to1_7_2_5.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_6_10to1_7_2_5/Protocol1_7_6_10to1_7_2_5.java index 4130372..9814c40 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_6_10to1_7_2_5/Protocol1_7_6_10to1_7_2_5.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_7_6_10to1_7_2_5/Protocol1_7_6_10to1_7_2_5.java @@ -82,11 +82,11 @@ public class Protocol1_7_6_10to1_7_2_5 extends AbstractProtocol { final Position pos = wrapper.get(Types1_7_6.POSITION_SHORT, 0); final short type = wrapper.get(Type.UNSIGNED_BYTE, 0); - final CompoundTag tag = wrapper.get(Types1_7_6.COMPRESSED_NBT, 0); + final CompoundTag tag = wrapper.get(Types1_7_6.NBT, 0); if (type != 4/*skull*/) return; final ByteTag skullType = tag.get("SkullType"); if (skullType == null || skullType.asByte() != 3/*player_skull*/) return; @@ -106,7 +106,7 @@ public class Protocol1_7_6_10to1_7_2_5 extends AbstractProtocol itemRewriter.handleItemToClient(wrapper.get(Type.ITEM1_8, 0))); } }); @@ -181,11 +177,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol { - final int oldDim = wrapper.user().get(DimensionTracker.class).getDimensionId(); - final int newDim = wrapper.get(Type.INT, 0); - wrapper.user().get(DimensionTracker.class).setDimension(newDim); - wrapper.user().get(ClientWorld.class).setEnvironment(newDim); - if (oldDim != newDim) { + if (wrapper.user().get(DimensionTracker.class).changeDimension(wrapper.get(Type.INT, 0))) { wrapper.user().get(ChunkTracker.class).clear(); wrapper.user().get(EntityTracker.class).clear(); } @@ -634,11 +626,11 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol { - final Environment environment = wrapper.user().get(ClientWorld.class).getEnvironment(); + final Environment dimension = wrapper.user().get(DimensionTracker.class).getDimension(); - final Chunk chunk = wrapper.read(Types1_7_6.getChunk(environment)); + final Chunk chunk = wrapper.read(Types1_7_6.getChunk(dimension)); wrapper.user().get(ChunkTracker.class).trackAndRemap(chunk); - wrapper.write(ChunkType1_8.forEnvironment(environment), chunk); + wrapper.write(ChunkType1_8.forEnvironment(dimension), chunk); }); } }); @@ -934,7 +926,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol= 1) slot += 1; wrapper.write(Type.SHORT, slot); }); - map(Types1_7_6.COMPRESSED_ITEM, Type.ITEM1_8); // item + map(Types1_7_6.ITEM, Type.ITEM1_8); // item handler(wrapper -> itemRewriter.handleItemToClient(wrapper.get(Type.ITEM1_8, 0))); } }); @@ -944,7 +936,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol { final short windowId = wrapper.passthrough(Type.UNSIGNED_BYTE); // window id final short windowType = wrapper.user().get(WindowTracker.class).get(windowId); - Item[] items = wrapper.read(Types1_7_6.COMPRESSED_ITEM_ARRAY); // items + Item[] items = wrapper.read(Types1_7_6.ITEM_ARRAY); // items if (windowType == 4/*enchanting_table*/) { final Item[] old = items; items = new Item[old.length + 1]; @@ -1057,7 +1049,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol { final short direction = wrapper.get(Type.UNSIGNED_BYTE, 0); - final Item item = wrapper.get(Types1_7_6.COMPRESSED_ITEM, 0); + final Item item = wrapper.get(Types1_7_6.ITEM, 0); itemRewriter.handleItemToServer(item); if (item != null && item.identifier() == ItemList1_6.writtenBook.itemID && direction == 255) { // If placed item is a book then cancel it and send a MC|BOpen to the client @@ -1361,16 +1353,16 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol itemRewriter.handleItemToServer(wrapper.get(Types1_7_6.COMPRESSED_ITEM, 0))); + map(Type.ITEM1_8, Types1_7_6.ITEM); // item + handler(wrapper -> itemRewriter.handleItemToServer(wrapper.get(Types1_7_6.ITEM, 0))); } }); this.registerServerbound(ServerboundPackets1_8.CREATIVE_INVENTORY_ACTION, new PacketHandlers() { @Override public void register() { map(Type.SHORT); // slot - map(Type.ITEM1_8, Types1_7_6.COMPRESSED_ITEM); // item - handler(wrapper -> itemRewriter.handleItemToServer(wrapper.get(Types1_7_6.COMPRESSED_ITEM, 0))); + map(Type.ITEM1_8, Types1_7_6.ITEM); // item + handler(wrapper -> itemRewriter.handleItemToServer(wrapper.get(Types1_7_6.ITEM, 0))); } }); this.registerServerbound(ServerboundPackets1_8.UPDATE_SIGN, new PacketHandlers() { @@ -1432,11 +1424,11 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol maps = new Int2ObjectOpenHashMap<>(); - public MapStorage(UserConnection user) { - super(user); - } - public MapData getMapData(final int id) { return this.maps.get(id); } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/storage/WindowTracker.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/storage/WindowTracker.java index fe6b749..432cb77 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/storage/WindowTracker.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/storage/WindowTracker.java @@ -17,20 +17,15 @@ */ package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.storage; -import com.viaversion.viaversion.api.connection.StoredObject; -import com.viaversion.viaversion.api.connection.UserConnection; +import com.viaversion.viaversion.api.connection.StorableObject; import java.util.HashMap; import java.util.Map; -public class WindowTracker extends StoredObject { +public class WindowTracker implements StorableObject { public final Map types = new HashMap<>(); - public WindowTracker(UserConnection user) { - super(user); - } - public short get(short windowId) { return types.getOrDefault(windowId, (short) -1); } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/BulkChunkType1_7_6.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/BulkChunkType1_7_6.java index 683630c..d17a9cb 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/BulkChunkType1_7_6.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/BulkChunkType1_7_6.java @@ -19,7 +19,6 @@ package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types; import com.viaversion.viaversion.api.minecraft.chunks.Chunk; import com.viaversion.viaversion.api.type.Type; -import com.viaversion.viaversion.api.type.types.FixedByteArrayType; import com.viaversion.viaversion.util.Pair; import io.netty.buffer.ByteBuf; @@ -60,7 +59,8 @@ public class BulkChunkType1_7_6 extends Type { final short chunkCount = byteBuf.readShort(); final int compressedSize = byteBuf.readInt(); final boolean hasSkyLight = this.readHasSkyLight(byteBuf); - final byte[] data = new FixedByteArrayType(compressedSize).read(byteBuf); + final byte[] data = new byte[compressedSize]; + byteBuf.readBytes(data); final int[] chunkX = new int[chunkCount]; final int[] chunkZ = new int[chunkCount]; final short[] primaryBitMask = new short[chunkCount]; diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/ChunkType1_7_6.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/ChunkType1_7_6.java index 3521141..ad40417 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/ChunkType1_7_6.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/ChunkType1_7_6.java @@ -19,7 +19,6 @@ package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types; import com.viaversion.viaversion.api.minecraft.chunks.*; import com.viaversion.viaversion.api.type.Type; -import com.viaversion.viaversion.api.type.types.FixedByteArrayType; import com.viaversion.viaversion.util.Pair; import io.netty.buffer.ByteBuf; import net.raphimc.vialegacy.api.model.IdAndData; @@ -36,7 +35,7 @@ public class ChunkType1_7_6 extends Type { private final boolean hasSkyLight; - public ChunkType1_7_6(boolean hasSkyLight) { + public ChunkType1_7_6(final boolean hasSkyLight) { super(Chunk.class); this.hasSkyLight = hasSkyLight; } @@ -44,7 +43,7 @@ public class ChunkType1_7_6 extends Type { /** * This method is here to allow overriding the code for 1.2.5 -{@literal >} 1.3.2 because it introduced an unused int * - * @param byteBuf The buffer + * @param byteBuf The buffer */ protected void readUnusedInt(final ByteBuf byteBuf) { } @@ -52,8 +51,8 @@ public class ChunkType1_7_6 extends Type { /** * This method is here to allow overriding the code for 1.2.5 -{@literal >} 1.3.2 because it introduced an unused int * - * @param byteBuf The buffer - * @param chunk The Chunk + * @param byteBuf The buffer + * @param chunk The Chunk */ protected void writeUnusedInt(final ByteBuf byteBuf, final Chunk chunk) { } @@ -67,7 +66,8 @@ public class ChunkType1_7_6 extends Type { final short additionalBitMask = byteBuf.readShort(); final int compressedSize = byteBuf.readInt(); this.readUnusedInt(byteBuf); - final byte[] data = new FixedByteArrayType(compressedSize).read(byteBuf); + final byte[] data = new byte[compressedSize]; + byteBuf.readBytes(data); final byte[] uncompressedData = new byte[getSize(primaryBitMask, additionalBitMask, fullChunk, this.hasSkyLight)]; final Inflater inflater = new Inflater(); diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/ItemType.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/ItemType.java index 34a1f89..0990dc3 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/ItemType.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/ItemType.java @@ -39,7 +39,7 @@ public class ItemType extends Type { item.setIdentifier(id); item.setAmount(buffer.readByte()); item.setData(buffer.readShort()); - item.setTag(Types1_7_6.COMPRESSED_NBT.read(buffer)); + item.setTag(Types1_7_6.NBT.read(buffer)); return item; } @@ -51,7 +51,7 @@ public class ItemType extends Type { buffer.writeShort(item.identifier()); buffer.writeByte(item.amount()); buffer.writeShort(item.data()); - Types1_7_6.COMPRESSED_NBT.write(buffer, item.tag()); + Types1_7_6.NBT.write(buffer, item.tag()); } } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/MetaType1_7_6.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/MetaType1_7_6.java index 194da1b..a74e976 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/MetaType1_7_6.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/MetaType1_7_6.java @@ -27,7 +27,7 @@ public enum MetaType1_7_6 implements MetaType { Int(2, Type.INT), Float(3, Type.FLOAT), String(4, Type.STRING), - Slot(5, Types1_7_6.COMPRESSED_ITEM), + Slot(5, Types1_7_6.ITEM), Position(6, Type.VECTOR); private final int typeID; diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/NBTType.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/NBTType.java index 9e8b8d1..5d3a5d5 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/NBTType.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/NBTType.java @@ -32,11 +32,8 @@ import java.util.zip.GZIPOutputStream; public class NBTType extends Type { - private final boolean compressed; - - public NBTType(final boolean compressed) { + public NBTType() { super(CompoundTag.class); - this.compressed = compressed; } @Override @@ -47,7 +44,7 @@ public class NBTType extends Type { } final ByteBuf data = buffer.readSlice(length); - try (InputStream in = this.compressed ? new GZIPInputStream(new ByteBufInputStream(data)) : new ByteBufInputStream(data)) { + try (InputStream in = new GZIPInputStream(new ByteBufInputStream(data))) { return NBTIO.readTag(in); } } @@ -61,7 +58,7 @@ public class NBTType extends Type { final ByteBuf data = buffer.alloc().buffer(); try { - try (OutputStream out = this.compressed ? new GZIPOutputStream(new ByteBufOutputStream(data)) : new ByteBufOutputStream(data)) { + try (OutputStream out = new GZIPOutputStream(new ByteBufOutputStream(data))) { NBTIO.writeTag(out, nbt); } diff --git a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/Types1_7_6.java b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/Types1_7_6.java index d8c65ec..bc29d1c 100644 --- a/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/Types1_7_6.java +++ b/src/main/java/net/raphimc/vialegacy/protocols/release/protocol1_8to1_7_6_10/types/Types1_7_6.java @@ -20,6 +20,7 @@ package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types; import com.viaversion.viaversion.api.minecraft.BlockChangeRecord; import com.viaversion.viaversion.api.minecraft.Environment; import com.viaversion.viaversion.api.minecraft.Position; +import com.viaversion.viaversion.api.minecraft.chunks.Chunk; import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.minecraft.metadata.Metadata; import com.viaversion.viaversion.api.type.Type; @@ -32,11 +33,10 @@ public class Types1_7_6 { public static final Type INT_ARRAY = new IntArrayType(); - public static final Type NBT = new NBTType(false); - public static final Type COMPRESSED_NBT = new NBTType(true); + public static final Type NBT = new NBTType(); - public static final Type COMPRESSED_ITEM = new ItemType(); - public static final Type COMPRESSED_ITEM_ARRAY = new ItemArrayType<>(COMPRESSED_ITEM); + public static final Type ITEM = new ItemType(); + public static final Type ITEM_ARRAY = new ItemArrayType<>(ITEM); public static final Type METADATA = new MetadataType(); public static final Type> METADATA_LIST = new MetaListType(METADATA); @@ -48,13 +48,12 @@ public class Types1_7_6 { public static final Type POSITION_SHORT = new PositionVarYType<>(Type.SHORT, i -> (short) i); public static final Type POSITION_INT = new PositionVarYType<>(Type.INT, i -> i); - private static final ChunkType1_7_6 CHUNK_WITH_SKYLIGHT = new ChunkType1_7_6(true); - private static final ChunkType1_7_6 CHUNK_WITHOUT_SKYLIGHT = new ChunkType1_7_6(false); + public static final Type CHUNK_WITH_SKYLIGHT = new ChunkType1_7_6(true); + public static final Type CHUNK_WITHOUT_SKYLIGHT = new ChunkType1_7_6(false); + public static final Type CHUNK_BULK = new BulkChunkType1_7_6(); - public static final BulkChunkType1_7_6 CHUNK_BULK = new BulkChunkType1_7_6(); - - public static ChunkType1_7_6 getChunk(Environment environment) { - return environment == Environment.NORMAL ? CHUNK_WITH_SKYLIGHT : CHUNK_WITHOUT_SKYLIGHT; + public static Type getChunk(final Environment dimension) { + return dimension == Environment.NORMAL ? CHUNK_WITH_SKYLIGHT : CHUNK_WITHOUT_SKYLIGHT; } }