diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_10to1_11/Protocol1_10To1_11.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_10to1_11/Protocol1_10To1_11.java index 23cb073d..a550b22e 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_10to1_11/Protocol1_10To1_11.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_10to1_11/Protocol1_10To1_11.java @@ -57,7 +57,7 @@ public class Protocol1_10To1_11 extends BackwardsProtocol { +public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { public static final BackwardsMappings MAPPINGS = new BackwardsMappings("1.20.3", "1.20.2", Protocol1_20_3To1_20_2.class); private final EntityPacketRewriter1_20_3 entityRewriter = new EntityPacketRewriter1_20_3(this); private final BlockItemPacketRewriter1_20_3 itemRewriter = new BlockItemPacketRewriter1_20_3(this); public Protocol1_20_2To1_20_3() { - super(ClientboundPackets1_20_2.class, ClientboundPackets1_20_2.class, ServerboundPackets1_20_3.class, ServerboundPackets1_20_2.class); + super(ClientboundPackets1_20_3.class, ClientboundPackets1_20_2.class, ServerboundPackets1_20_3.class, ServerboundPackets1_20_2.class); } @Override protected void registerPackets() { super.registerPackets(); - final SoundRewriter soundRewriter = new SoundRewriter<>(this); - soundRewriter.register1_19_3Sound(ClientboundPackets1_20_2.SOUND); - soundRewriter.registerEntitySound(ClientboundPackets1_20_2.ENTITY_SOUND); - soundRewriter.registerStopSound(ClientboundPackets1_20_2.STOP_SOUND); + final SoundRewriter soundRewriter = new SoundRewriter<>(this); + soundRewriter.register1_19_3Sound(ClientboundPackets1_20_3.SOUND); + soundRewriter.registerEntitySound(ClientboundPackets1_20_3.ENTITY_SOUND); + soundRewriter.registerStopSound(ClientboundPackets1_20_3.STOP_SOUND); + + cancelClientbound(ClientboundPackets1_20_3.TICKING_STATE); + cancelClientbound(ClientboundPackets1_20_3.TICKING_STEP); + + registerServerbound(ServerboundPackets1_20_2.UPDATE_JIGSAW_BLOCK, wrapper -> { + wrapper.passthrough(Type.POSITION1_14); // Position + wrapper.passthrough(Type.STRING); // Name + wrapper.passthrough(Type.STRING); // Target + wrapper.passthrough(Type.STRING); // Pool + wrapper.passthrough(Type.STRING); // Final state + wrapper.passthrough(Type.STRING); // Joint type + wrapper.write(Type.VAR_INT, 0); // Selection priority + wrapper.write(Type.VAR_INT, 0); // Placement priority + }); // Components are now (mostly) written as nbt instead of json strings - registerClientbound(ClientboundPackets1_20_2.ADVANCEMENTS, wrapper -> { + registerClientbound(ClientboundPackets1_20_3.ADVANCEMENTS, wrapper -> { wrapper.passthrough(Type.BOOLEAN); // Reset/clear final int size = wrapper.passthrough(Type.VAR_INT); // Mapping size for (int i = 0; i < size; i++) { @@ -94,7 +109,7 @@ public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { + registerClientbound(ClientboundPackets1_20_3.TAB_COMPLETE, wrapper -> { wrapper.passthrough(Type.VAR_INT); // Transaction id wrapper.passthrough(Type.VAR_INT); // Start wrapper.passthrough(Type.VAR_INT); // Length @@ -105,7 +120,7 @@ public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { + registerClientbound(ClientboundPackets1_20_3.MAP_DATA, wrapper -> { wrapper.passthrough(Type.VAR_INT); // Map id wrapper.passthrough(Type.BYTE); // Scale wrapper.passthrough(Type.BOOLEAN); // Locked @@ -120,7 +135,7 @@ public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { + registerClientbound(ClientboundPackets1_20_3.BOSSBAR, wrapper -> { wrapper.passthrough(Type.UUID); // Id final int action = wrapper.passthrough(Type.VAR_INT); @@ -128,7 +143,7 @@ public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { + registerClientbound(ClientboundPackets1_20_3.PLAYER_CHAT, wrapper -> { wrapper.passthrough(Type.UUID); // Sender wrapper.passthrough(Type.VAR_INT); // Index wrapper.passthrough(Type.OPTIONAL_SIGNATURE_BYTES); // Signature @@ -155,14 +170,14 @@ public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { + registerClientbound(ClientboundPackets1_20_3.SCOREBOARD_OBJECTIVE, wrapper -> { wrapper.passthrough(Type.STRING); // Objective Name final byte action = wrapper.passthrough(Type.BYTE); // Mode if (action == 0 || action == 2) { convertComponent(wrapper); // Display Name } }); - registerClientbound(ClientboundPackets1_20_2.TEAMS, wrapper -> { + registerClientbound(ClientboundPackets1_20_3.TEAMS, wrapper -> { wrapper.passthrough(Type.STRING); // Team Name final byte action = wrapper.passthrough(Type.BYTE); // Mode if (action == 0 || action == 2) { @@ -178,15 +193,15 @@ public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { + registerClientbound(ClientboundPackets1_20_3.DISCONNECT, this::convertComponent); + registerClientbound(ClientboundPackets1_20_3.RESOURCE_PACK, resourcePackHandler()); + registerClientbound(ClientboundPackets1_20_3.SERVER_DATA, this::convertComponent); + registerClientbound(ClientboundPackets1_20_3.ACTIONBAR, this::convertComponent); + registerClientbound(ClientboundPackets1_20_3.TITLE_TEXT, this::convertComponent); + registerClientbound(ClientboundPackets1_20_3.TITLE_SUBTITLE, this::convertComponent); + registerClientbound(ClientboundPackets1_20_3.DISGUISED_CHAT, this::convertComponent); + registerClientbound(ClientboundPackets1_20_3.SYSTEM_CHAT, this::convertComponent); + registerClientbound(ClientboundPackets1_20_3.OPEN_WINDOW, wrapper -> { wrapper.passthrough(Type.VAR_INT); // Container id final int containerTypeId = wrapper.read(Type.VAR_INT); @@ -200,19 +215,19 @@ public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { + registerClientbound(ClientboundPackets1_20_3.TAB_LIST, wrapper -> { convertComponent(wrapper); convertComponent(wrapper); }); - registerClientbound(ClientboundPackets1_20_2.COMBAT_KILL, new PacketHandlers() { + registerClientbound(ClientboundPackets1_20_3.COMBAT_KILL, new PacketHandlers() { @Override public void register() { map(Type.VAR_INT); // Duration handler(wrapper -> convertComponent(wrapper)); } }); - registerClientbound(ClientboundPackets1_20_2.PLAYER_INFO_UPDATE, wrapper -> { + registerClientbound(ClientboundPackets1_20_3.PLAYER_INFO_UPDATE, wrapper -> { final BitSet actions = wrapper.passthrough(Type.PROFILE_ACTIONS_ENUM); final int entries = wrapper.passthrough(Type.VAR_INT); for (int i = 0; i < entries; i++) { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/rewriter/BlockItemPacketRewriter1_20_3.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/rewriter/BlockItemPacketRewriter1_20_3.java index d7aa14ce..0f1f2c08 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/rewriter/BlockItemPacketRewriter1_20_3.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/rewriter/BlockItemPacketRewriter1_20_3.java @@ -21,12 +21,12 @@ import com.viaversion.viabackwards.api.rewriters.ItemRewriter; import com.viaversion.viabackwards.protocol.protocol1_20_2to1_20_3.Protocol1_20_2To1_20_3; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_20_2; -import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ClientboundPackets1_20_2; import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ServerboundPackets1_20_2; import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.rewriter.RecipeRewriter1_20_2; +import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.packet.ClientboundPackets1_20_3; import com.viaversion.viaversion.rewriter.BlockRewriter; -public final class BlockItemPacketRewriter1_20_3 extends ItemRewriter { +public final class BlockItemPacketRewriter1_20_3 extends ItemRewriter { public BlockItemPacketRewriter1_20_3(final Protocol1_20_2To1_20_3 protocol) { super(protocol, Type.ITEM1_20_2, Type.ITEM1_20_2_ARRAY); @@ -34,24 +34,24 @@ public final class BlockItemPacketRewriter1_20_3 extends ItemRewriter blockRewriter = BlockRewriter.for1_20_2(protocol); - blockRewriter.registerBlockAction(ClientboundPackets1_20_2.BLOCK_ACTION); - blockRewriter.registerBlockChange(ClientboundPackets1_20_2.BLOCK_CHANGE); - blockRewriter.registerVarLongMultiBlockChange1_20(ClientboundPackets1_20_2.MULTI_BLOCK_CHANGE); - blockRewriter.registerEffect(ClientboundPackets1_20_2.EFFECT, 1010, 2001); - blockRewriter.registerChunkData1_19(ClientboundPackets1_20_2.CHUNK_DATA, ChunkType1_20_2::new); - blockRewriter.registerBlockEntityData(ClientboundPackets1_20_2.BLOCK_ENTITY_DATA); + final BlockRewriter blockRewriter = BlockRewriter.for1_20_2(protocol); + blockRewriter.registerBlockAction(ClientboundPackets1_20_3.BLOCK_ACTION); + blockRewriter.registerBlockChange(ClientboundPackets1_20_3.BLOCK_CHANGE); + blockRewriter.registerVarLongMultiBlockChange1_20(ClientboundPackets1_20_3.MULTI_BLOCK_CHANGE); + blockRewriter.registerEffect(ClientboundPackets1_20_3.EFFECT, 1010, 2001); + blockRewriter.registerChunkData1_19(ClientboundPackets1_20_3.CHUNK_DATA, ChunkType1_20_2::new); + blockRewriter.registerBlockEntityData(ClientboundPackets1_20_3.BLOCK_ENTITY_DATA); - registerSetCooldown(ClientboundPackets1_20_2.COOLDOWN); - registerWindowItems1_17_1(ClientboundPackets1_20_2.WINDOW_ITEMS); - registerSetSlot1_17_1(ClientboundPackets1_20_2.SET_SLOT); - registerEntityEquipmentArray(ClientboundPackets1_20_2.ENTITY_EQUIPMENT); + registerSetCooldown(ClientboundPackets1_20_3.COOLDOWN); + registerWindowItems1_17_1(ClientboundPackets1_20_3.WINDOW_ITEMS); + registerSetSlot1_17_1(ClientboundPackets1_20_3.SET_SLOT); + registerEntityEquipmentArray(ClientboundPackets1_20_3.ENTITY_EQUIPMENT); registerClickWindow1_17_1(ServerboundPackets1_20_2.CLICK_WINDOW); - registerTradeList1_19(ClientboundPackets1_20_2.TRADE_LIST); + registerTradeList1_19(ClientboundPackets1_20_3.TRADE_LIST); registerCreativeInvAction(ServerboundPackets1_20_2.CREATIVE_INVENTORY_ACTION); - registerWindowPropertyEnchantmentHandler(ClientboundPackets1_20_2.WINDOW_PROPERTY); - registerSpawnParticle1_19(ClientboundPackets1_20_2.SPAWN_PARTICLE); + registerWindowPropertyEnchantmentHandler(ClientboundPackets1_20_3.WINDOW_PROPERTY); + registerSpawnParticle1_19(ClientboundPackets1_20_3.SPAWN_PARTICLE); - new RecipeRewriter1_20_2<>(protocol).register(ClientboundPackets1_20_2.DECLARE_RECIPES); + new RecipeRewriter1_20_2<>(protocol).register(ClientboundPackets1_20_3.DECLARE_RECIPES); } } \ No newline at end of file diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/rewriter/EntityPacketRewriter1_20_3.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/rewriter/EntityPacketRewriter1_20_3.java index ea4884e4..d6cbda86 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/rewriter/EntityPacketRewriter1_20_3.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/rewriter/EntityPacketRewriter1_20_3.java @@ -28,10 +28,10 @@ import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.api.type.types.version.Types1_20_2; import com.viaversion.viaversion.api.type.types.version.Types1_20_3; import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ClientboundConfigurationPackets1_20_2; -import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ClientboundPackets1_20_2; import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.Protocol1_20_3To1_20_2; +import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.packet.ClientboundPackets1_20_3; -public final class EntityPacketRewriter1_20_3 extends EntityRewriter { +public final class EntityPacketRewriter1_20_3 extends EntityRewriter { public EntityPacketRewriter1_20_3(final Protocol1_20_2To1_20_3 protocol) { super(protocol); @@ -39,9 +39,9 @@ public final class EntityPacketRewriter1_20_3 extends EntityRewriter