diff --git a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/BackwardsStructuredItemRewriter.java b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/BackwardsStructuredItemRewriter.java index c388e88a..bc30e58a 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/BackwardsStructuredItemRewriter.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/BackwardsStructuredItemRewriter.java @@ -20,6 +20,7 @@ package com.viaversion.viabackwards.api.rewriters; import com.viaversion.viabackwards.api.BackwardsProtocol; import com.viaversion.viabackwards.api.data.BackwardsMappings; import com.viaversion.viabackwards.api.data.MappedItem; +import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.data.StructuredData; import com.viaversion.viaversion.api.minecraft.data.StructuredDataContainer; import com.viaversion.viaversion.api.minecraft.data.StructuredDataKey; @@ -45,7 +46,7 @@ public class BackwardsStructuredItemRewriter { MetaType type = meta.metaType(); if (type == itemType) { - protocol.getItemRewriter().handleItemToClient(meta.value()); + protocol.getItemRewriter().handleItemToClient(event.user(), meta.value()); } else if (type == blockStateType) { int data = meta.value(); meta.setValue(protocol.getMappingData().getNewBlockStateId(data)); @@ -201,7 +201,7 @@ public abstract class EntityRewriterBase { MetaType type = meta.metaType(); if (type == itemType) { - protocol.getItemRewriter().handleItemToClient(meta.value()); + protocol.getItemRewriter().handleItemToClient(event.user(), meta.value()); } else if (type == blockStateType) { int data = meta.value(); meta.setValue(protocol.getMappingData().getNewBlockStateId(data)); @@ -230,7 +230,7 @@ public abstract class EntityRewriterBase handleItemToClient(wrapper.get(Type.ITEM1_8, 0))); + handler(wrapper -> handleItemToClient(wrapper.user(), wrapper.get(Type.ITEM1_8, 0))); // Handle Llama handler(wrapper -> { @@ -90,7 +90,7 @@ public class BlockItemPackets1_11 extends LegacyBlockItemRewriter { Item[] stacks = wrapper.get(Type.ITEM1_8_SHORT_ARRAY, 0); for (int i = 0; i < stacks.length; i++) - stacks[i] = handleItemToClient(stacks[i]); + stacks[i] = handleItemToClient(wrapper.user(), stacks[i]); if (isLlama(wrapper.user())) { Optional horse = getChestedHorse(wrapper.user()); @@ -123,12 +123,12 @@ public class BlockItemPackets1_11 extends LegacyBlockItemRewriter handleItemToServer(wrapper.get(Type.ITEM1_8, 0))); + handler(wrapper -> handleItemToServer(wrapper.user(), wrapper.get(Type.ITEM1_8, 0))); // Llama slot handler(wrapper -> { @@ -267,7 +267,7 @@ public class BlockItemPackets1_11 extends LegacyBlockItemRewriter { if (meta.metaType().type().equals(Type.ITEM1_8)) // Is Item - meta.setValue(handleItemToClient((Item) meta.getValue())); + meta.setValue(handleItemToClient(event.user(), (Item) meta.getValue())); }); } @@ -288,9 +288,9 @@ public class BlockItemPackets1_11 extends LegacyBlockItemRewriter= 0 && action <= 2) { JsonElement component = wrapper.read(Type.COMPONENT); - wrapper.write(Type.COMPONENT, Protocol1_9To1_8.fixJson(component.toString())); + wrapper.write(Type.COMPONENT, Protocol1_9To1_8.STRING_TO_JSON.transform(wrapper, component.toString())); } }); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/data/ShoulderTracker.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/data/ShoulderTracker.java index 492a4082..34ac5d18 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/data/ShoulderTracker.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/data/ShoulderTracker.java @@ -40,7 +40,11 @@ public class ShoulderTracker extends StoredObject { public void update() { PacketWrapper wrapper = PacketWrapper.create(ClientboundPackets1_12.CHAT_MESSAGE, null, getUser()); - wrapper.write(Type.COMPONENT, Protocol1_9To1_8.fixJson(generateString())); + try { + wrapper.write(Type.COMPONENT, Protocol1_9To1_8.STRING_TO_JSON.transform(wrapper, generateString())); + } catch (final Exception e) { + throw new RuntimeException(e); + } wrapper.write(Type.BYTE, (byte) 2); try { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/packets/BlockItemPackets1_12.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/packets/BlockItemPackets1_12.java index 345125b6..52be02b3 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/packets/BlockItemPackets1_12.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_11_1to1_12/packets/BlockItemPackets1_12.java @@ -21,6 +21,7 @@ package com.viaversion.viabackwards.protocol.protocol1_11_1to1_12.packets; import com.viaversion.viabackwards.api.rewriters.LegacyBlockItemRewriter; import com.viaversion.viabackwards.protocol.protocol1_11_1to1_12.Protocol1_11_1To1_12; import com.viaversion.viabackwards.protocol.protocol1_11_1to1_12.data.MapColorMapping; +import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.BlockChangeRecord; import com.viaversion.viaversion.api.minecraft.ClientWorld; import com.viaversion.viaversion.api.minecraft.chunks.Chunk; @@ -99,12 +100,12 @@ public class BlockItemPackets1_12 extends LegacyBlockItemRewriter { if (meta.metaType().type().equals(Type.ITEM1_8)) // Is Item - meta.setValue(handleItemToClient((Item) meta.getValue())); + meta.setValue(handleItemToClient(event.user(), (Item) meta.getValue())); }); protocol.registerServerbound(ServerboundPackets1_9_3.CLIENT_STATUS, new PacketHandlers() { @@ -198,9 +199,9 @@ public class BlockItemPackets1_12 extends LegacyBlockItemRewriter { if (meta.metaType().type().equals(Type.ITEM1_8)) { // Is Item - meta.setValue(handleItemToClient((Item) meta.getValue())); + meta.setValue(handleItemToClient(event.user(), (Item) meta.getValue())); } }); } @@ -88,18 +89,18 @@ public class ItemPackets1_11_1 extends LegacyBlockItemRewriter36) minecraft:item -> iconcrack diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java index b69d9931..b4252244 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java @@ -260,7 +260,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit handler(wrapper -> { final Item[] items = wrapper.get(Type.ITEM1_8_SHORT_ARRAY, 0); for (Item item : items) { - handleItemToClient(item); + handleItemToClient(wrapper.user(), item); } }); } @@ -273,7 +273,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit map(Type.SHORT); map(Type.ITEM1_13, Type.ITEM1_8); - handler(wrapper -> handleItemToClient(wrapper.get(Type.ITEM1_8, 0))); + handler(wrapper -> handleItemToClient(wrapper.user(), wrapper.get(Type.ITEM1_8, 0))); } }); @@ -443,7 +443,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit map(Type.VAR_INT); map(Type.ITEM1_13, Type.ITEM1_8); - handler(wrapper -> handleItemToClient(wrapper.get(Type.ITEM1_8, 0))); + handler(wrapper -> handleItemToClient(wrapper.user(), wrapper.get(Type.ITEM1_8, 0))); } }); @@ -471,7 +471,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit map(Type.SHORT); map(Type.ITEM1_8, Type.ITEM1_13); - handler(wrapper -> handleItemToServer(wrapper.get(Type.ITEM1_13, 0))); + handler(wrapper -> handleItemToServer(wrapper.user(), wrapper.get(Type.ITEM1_13, 0))); } }); @@ -485,7 +485,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit map(Type.VAR_INT); map(Type.ITEM1_8, Type.ITEM1_13); - handler(wrapper -> handleItemToServer(wrapper.get(Type.ITEM1_13, 0))); + handler(wrapper -> handleItemToServer(wrapper.user(), wrapper.get(Type.ITEM1_13, 0))); } }); } @@ -499,7 +499,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit } @Override - public Item handleItemToClient(Item item) { + public Item handleItemToClient(UserConnection connection, Item item) { if (item == null) return null; // Custom mappings/super call moved down @@ -519,7 +519,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit if (rawId == null) { // Look for custom mappings - super.handleItemToClient(item); + super.handleItemToClient(connection, item); // Handle one-way special case if (item.identifier() == -1) { @@ -744,7 +744,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit } @Override - public Item handleItemToServer(Item item) { + public Item handleItemToServer(UserConnection connection, Item item) { if (item == null) return null; CompoundTag tag = item.tag(); @@ -812,7 +812,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit // Handle custom mappings int identifier = item.identifier(); item.setIdentifier(rawId); - super.handleItemToServer(item); + super.handleItemToServer(connection, item); // Mapped with original data, we can return here if (item.identifier() != rawId && item.identifier() != -1) return item; diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/EntityPackets1_13.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/EntityPackets1_13.java index 2814d62f..a54bfb6f 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/EntityPackets1_13.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/EntityPackets1_13.java @@ -291,7 +291,7 @@ public class EntityPackets1_13 extends LegacyEntityRewriter { Particle particle = (Particle) meta.getValue(); - ParticleMapping.ParticleData data = ParticleMapping.getMapping(particle.getId()); + ParticleMapping.ParticleData data = ParticleMapping.getMapping(particle.id()); int firstArg = 0; int secondArg = 0; diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/PlayerPacket1_13.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/PlayerPacket1_13.java index 25e379a0..0538afb8 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/PlayerPacket1_13.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_12_2to1_13/packets/PlayerPacket1_13.java @@ -81,16 +81,16 @@ public class PlayerPacket1_13 extends RewriterBase { for (int i = 0; i < size; i++) { //Input Item Item input = wrapper.read(Type.ITEM1_13); - wrapper.write(Type.ITEM1_8, protocol.getItemRewriter().handleItemToClient(input)); + wrapper.write(Type.ITEM1_8, protocol.getItemRewriter().handleItemToClient(wrapper.user(), input)); //Output Item Item output = wrapper.read(Type.ITEM1_13); - wrapper.write(Type.ITEM1_8, protocol.getItemRewriter().handleItemToClient(output)); + wrapper.write(Type.ITEM1_8, protocol.getItemRewriter().handleItemToClient(wrapper.user(), output)); boolean secondItem = wrapper.passthrough(Type.BOOLEAN); //Has second item if (secondItem) { //Second Item Item second = wrapper.read(Type.ITEM1_13); - wrapper.write(Type.ITEM1_8, protocol.getItemRewriter().handleItemToClient(second)); + wrapper.write(Type.ITEM1_8, protocol.getItemRewriter().handleItemToClient(wrapper.user(), second)); } wrapper.passthrough(Type.BOOLEAN); //Trade disabled @@ -379,7 +379,7 @@ public class PlayerPacket1_13 extends RewriterBase { case "MC|BEdit": wrapper.setPacketType(ServerboundPackets1_13.EDIT_BOOK); Item book = wrapper.read(Type.ITEM1_8); - wrapper.write(Type.ITEM1_13, protocol.getItemRewriter().handleItemToServer(book)); + wrapper.write(Type.ITEM1_13, protocol.getItemRewriter().handleItemToServer(wrapper.user(), book)); boolean signing = channel.equals("MC|BSign"); wrapper.write(Type.BOOLEAN, signing); break; diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/packets/BlockItemPackets1_14.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/packets/BlockItemPackets1_14.java index f234df8c..37ca8f55 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/packets/BlockItemPackets1_14.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/packets/BlockItemPackets1_14.java @@ -23,6 +23,7 @@ import com.viaversion.viabackwards.api.rewriters.EnchantmentRewriter; import com.viaversion.viabackwards.protocol.protocol1_13_2to1_14.Protocol1_13_2To1_14; import com.viaversion.viabackwards.protocol.protocol1_13_2to1_14.storage.ChunkLightStorage; import com.viaversion.viaversion.api.Via; +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.chunks.Chunk; @@ -69,7 +70,7 @@ public class BlockItemPackets1_14 extends com.viaversion.viabackwards.api.rewrit @Override protected void registerPackets() { - protocol.registerServerbound(ServerboundPackets1_13.EDIT_BOOK, wrapper -> handleItemToServer(wrapper.passthrough(Type.ITEM1_13_2))); + protocol.registerServerbound(ServerboundPackets1_13.EDIT_BOOK, wrapper -> handleItemToServer(wrapper.user(), wrapper.passthrough(Type.ITEM1_13_2))); protocol.registerClientbound(ClientboundPackets1_14.OPEN_WINDOW, wrapper -> { int windowId = wrapper.read(Type.VAR_INT); @@ -185,20 +186,20 @@ public class BlockItemPackets1_14 extends com.viaversion.viabackwards.api.rewrit for (int i = 0; i < size; i++) { // Input Item Item input = wrapper.read(Type.ITEM1_13_2); - input = handleItemToClient(input); + input = handleItemToClient(wrapper.user(), input); wrapper.write(Type.ITEM1_13_2, input); // Output Item Item output = wrapper.read(Type.ITEM1_13_2); - output = handleItemToClient(output); + output = handleItemToClient(wrapper.user(), output); wrapper.write(Type.ITEM1_13_2, output); boolean secondItem = wrapper.passthrough(Type.BOOLEAN); // Has second item if (secondItem) { // Second Item Item second = wrapper.read(Type.ITEM1_13_2); - second = handleItemToClient(second); + second = handleItemToClient(wrapper.user(), second); wrapper.write(Type.ITEM1_13_2, second); } @@ -228,7 +229,7 @@ public class BlockItemPackets1_14 extends com.viaversion.viabackwards.api.rewrit map(Type.VAR_INT); // 1 - Slot ID map(Type.ITEM1_13_2); // 2 - Item - handler(wrapper -> handleItemToClient(wrapper.get(Type.ITEM1_13_2, 0))); + handler(wrapper -> handleItemToClient(wrapper.user(), wrapper.get(Type.ITEM1_13_2, 0))); handler(wrapper -> { int entityId = wrapper.get(Type.VAR_INT, 0); @@ -465,9 +466,9 @@ public class BlockItemPackets1_14 extends com.viaversion.viabackwards.api.rewrit } @Override - public Item handleItemToClient(Item item) { + public Item handleItemToClient(UserConnection connection, Item item) { if (item == null) return null; - super.handleItemToClient(item); + super.handleItemToClient(connection, item); // Lore now uses JSON CompoundTag tag = item.tag(); @@ -491,7 +492,7 @@ public class BlockItemPackets1_14 extends com.viaversion.viabackwards.api.rewrit } @Override - public Item handleItemToServer(Item item) { + public Item handleItemToServer(UserConnection connection, Item item) { if (item == null) return null; // Lore now uses JSON @@ -510,7 +511,7 @@ public class BlockItemPackets1_14 extends com.viaversion.viabackwards.api.rewrit enchantmentRewriter.handleToServer(item); // Call this last to check for the backup lore above - super.handleItemToServer(item); + super.handleItemToServer(connection, item); return item; } } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/packets/EntityPackets1_14.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/packets/EntityPackets1_14.java index ca667da0..56aae7f9 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/packets/EntityPackets1_14.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13_2to1_14/packets/EntityPackets1_14.java @@ -383,7 +383,7 @@ public class EntityPackets1_14 extends LegacyEntityRewriter { - rewriteParticle((Particle) meta.getValue()); + rewriteParticle(event.user(), (Particle) meta.getValue()); }); filter().type(EntityTypes1_14.FIREWORK_ROCKET).index(8).handler((event, meta) -> { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/Protocol1_13To1_13_1.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/Protocol1_13To1_13_1.java index e1afa44e..550c2588 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/Protocol1_13To1_13_1.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/Protocol1_13To1_13_1.java @@ -92,7 +92,7 @@ public class Protocol1_13To1_13_1 extends BackwardsProtocol { - itemRewriter.handleItemToServer(wrapper.get(Type.ITEM1_13, 0)); + itemRewriter.handleItemToServer(wrapper.user(), wrapper.get(Type.ITEM1_13, 0)); wrapper.write(Type.VAR_INT, 0); }); } @@ -181,7 +181,7 @@ public class Protocol1_13To1_13_1 extends BackwardsProtocol { if (meta.metaType() == Types1_13.META_TYPES.itemType) { - protocol.getItemRewriter().handleItemToClient((Item) meta.getValue()); + protocol.getItemRewriter().handleItemToClient(event.user(), (Item) meta.getValue()); } else if (meta.metaType() == Types1_13.META_TYPES.blockStateType) { // Convert to new block id int data = (int) meta.getValue(); meta.setValue(protocol.getMappingData().getNewBlockStateId(data)); } else if (meta.metaType() == Types1_13.META_TYPES.particleType) { - rewriteParticle((Particle) meta.getValue()); + rewriteParticle(event.user(), (Particle) meta.getValue()); } else if (meta.metaType() == Types1_13.META_TYPES.optionalComponentType || meta.metaType() == Types1_13.META_TYPES.componentType) { JsonElement element = meta.value(); protocol.translatableRewriter().processText(element); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/packets/InventoryPackets1_13_1.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/packets/InventoryPackets1_13_1.java index caccdac5..c425c867 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/packets/InventoryPackets1_13_1.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_13to1_13_1/packets/InventoryPackets1_13_1.java @@ -45,16 +45,16 @@ public class InventoryPackets1_13_1 extends ItemRewriter(protocol).register(ClientboundPackets1_15.DECLARE_RECIPES); - protocol.registerServerbound(ServerboundPackets1_14.EDIT_BOOK, wrapper -> handleItemToServer(wrapper.passthrough(Type.ITEM1_13_2))); + protocol.registerServerbound(ServerboundPackets1_14.EDIT_BOOK, wrapper -> handleItemToServer(wrapper.user(), wrapper.passthrough(Type.ITEM1_13_2))); registerSetCooldown(ClientboundPackets1_15.COOLDOWN); registerWindowItems(ClientboundPackets1_15.WINDOW_ITEMS); @@ -122,7 +122,7 @@ public class BlockItemPackets1_15 extends com.viaversion.viabackwards.api.rewrit int data = wrapper.passthrough(Type.VAR_INT); wrapper.set(Type.VAR_INT, 0, protocol.getMappingData().getNewBlockStateId(data)); } else if (id == 32) { - Item item = handleItemToClient(wrapper.read(Type.ITEM1_13_2)); + Item item = handleItemToClient(wrapper.user(), wrapper.read(Type.ITEM1_13_2)); wrapper.write(Type.ITEM1_13_2, item); } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/packets/BlockItemPackets1_16.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/packets/BlockItemPackets1_16.java index fc6831d9..96514d4b 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/packets/BlockItemPackets1_16.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/packets/BlockItemPackets1_16.java @@ -23,6 +23,7 @@ import com.viaversion.viabackwards.api.rewriters.MapColorRewriter; import com.viaversion.viabackwards.protocol.protocol1_15_2to1_16.Protocol1_15_2To1_16; import com.viaversion.viabackwards.protocol.protocol1_15_2to1_16.data.MapColorRewrites; import com.viaversion.viabackwards.protocol.protocol1_16_1to1_16_2.storage.BiomeStorage; +import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.chunks.Chunk; import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection; import com.viaversion.viaversion.api.minecraft.chunks.DataPalette; @@ -111,7 +112,7 @@ public class BlockItemPackets1_16 extends com.viaversion.viabackwards.api.rewrit byte slot; do { slot = wrapper.read(Type.BYTE); - Item item = handleItemToClient(wrapper.read(Type.ITEM1_13_2)); + Item item = handleItemToClient(wrapper.user(), wrapper.read(Type.ITEM1_13_2)); int rawSlot = slot & 0x7F; equipmentData.add(new EquipmentData(rawSlot, item)); } while ((slot & 0xFFFFFF80) != 0); @@ -248,7 +249,7 @@ public class BlockItemPackets1_16 extends com.viaversion.viabackwards.api.rewrit registerClickWindow(ServerboundPackets1_14.CLICK_WINDOW); registerCreativeInvAction(ServerboundPackets1_14.CREATIVE_INVENTORY_ACTION); - protocol.registerServerbound(ServerboundPackets1_14.EDIT_BOOK, wrapper -> handleItemToServer(wrapper.passthrough(Type.ITEM1_13_2))); + protocol.registerServerbound(ServerboundPackets1_14.EDIT_BOOK, wrapper -> handleItemToServer(wrapper.user(), wrapper.passthrough(Type.ITEM1_13_2))); } private void handleBlockEntity(CompoundTag tag) { @@ -290,10 +291,10 @@ public class BlockItemPackets1_16 extends com.viaversion.viabackwards.api.rewrit } @Override - public Item handleItemToClient(Item item) { + public Item handleItemToClient(UserConnection connection, Item item) { if (item == null) return null; - super.handleItemToClient(item); + super.handleItemToClient(connection, item); CompoundTag tag = item.tag(); if (item.identifier() == 771 && tag != null) { @@ -324,11 +325,11 @@ public class BlockItemPackets1_16 extends com.viaversion.viabackwards.api.rewrit } @Override - public Item handleItemToServer(Item item) { + public Item handleItemToServer(UserConnection connection, Item item) { if (item == null) return null; int identifier = item.identifier(); - super.handleItemToServer(item); + super.handleItemToServer(connection, item); CompoundTag tag = item.tag(); if (identifier == 771 && tag != null) { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/packets/EntityPackets1_16.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/packets/EntityPackets1_16.java index d3e3149e..aab2218e 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/packets/EntityPackets1_16.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_15_2to1_16/packets/EntityPackets1_16.java @@ -244,11 +244,11 @@ public class EntityPackets1_16 extends EntityRewriter handleItemToServer(wrapper.passthrough(Type.ITEM1_13_2))); + protocol.registerServerbound(ServerboundPackets1_16.EDIT_BOOK, wrapper -> handleItemToServer(wrapper.user(), wrapper.passthrough(Type.ITEM1_13_2))); } private void handleBlockEntity(CompoundTag tag) { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java index 80a20948..30a15d7c 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java @@ -77,7 +77,7 @@ public final class BlockItemPackets1_17 extends ItemRewriter handleItemToServer(wrapper.passthrough(Type.ITEM1_13_2))); + protocol.registerServerbound(ServerboundPackets1_16_2.EDIT_BOOK, wrapper -> handleItemToServer(wrapper.user(), wrapper.passthrough(Type.ITEM1_13_2))); // TODO Since the carried and modified items are typically set incorrectly, the server sends unnecessary // set slot packets after practically every window click, since it thinks the client and server @@ -95,7 +95,7 @@ public final class BlockItemPackets1_17 extends ItemRewriter after a click and send the changed slots here wrapper.write(Type.VAR_INT, 0); // Empty array of slot+item @@ -152,7 +152,7 @@ public final class BlockItemPackets1_17 extends ItemRewriter { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/EntityPackets1_17.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/EntityPackets1_17.java index f5c76ea9..2945038c 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/EntityPackets1_17.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/EntityPackets1_17.java @@ -153,17 +153,17 @@ public final class EntityPackets1_17 extends EntityRewriter data = particle.getArguments().remove(0); int blockState = (int) data.getValue(); if (blockState == 7786) { // Light block @@ -111,7 +111,7 @@ public final class EntityPackets1_18 extends EntityRewriter= 8) { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/packets/BlockItemPackets1_19_3.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/packets/BlockItemPackets1_19_3.java index 6b46c46a..ca6e4679 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/packets/BlockItemPackets1_19_3.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/packets/BlockItemPackets1_19_3.java @@ -79,10 +79,10 @@ public final class BlockItemPackets1_19_3 extends ItemRewriterremoveArgument(0).getValue(); if (positionSourceType == 0) { @@ -117,7 +117,7 @@ public final class EntityPacketRewriter1_20_3 extends EntityRewriter= 15) { diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/rewriter/BlockItemPacketRewriter1_20_5.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/rewriter/BlockItemPacketRewriter1_20_5.java index 8dbc653b..e227d5c5 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/rewriter/BlockItemPacketRewriter1_20_5.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/rewriter/BlockItemPacketRewriter1_20_5.java @@ -20,6 +20,7 @@ package com.viaversion.viabackwards.protocol.protocol1_20_3to1_20_5.rewriter; import com.viaversion.viabackwards.api.rewriters.BackwardsStructuredItemRewriter; import com.viaversion.viabackwards.protocol.protocol1_20_3to1_20_5.Protocol1_20_3To1_20_5; import com.viaversion.viaversion.api.Via; +import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.Particle; import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.type.Type; @@ -77,7 +78,7 @@ public final class BlockItemPacketRewriter1_20_5 extends BackwardsStructuredItem // Move it to the beginning, move out arguments here final Particle particle = wrapper.read(Types1_20_5.PARTICLE); - rewriteParticle(particle); + rewriteParticle(wrapper.user(), particle); wrapper.set(Type.VAR_INT, 0, particle.id()); for (final Particle.ParticleData argument : particle.getArguments()) { argument.write(wrapper); @@ -119,11 +120,11 @@ public final class BlockItemPacketRewriter1_20_5 extends BackwardsStructuredItem wrapper.passthrough(Type.VAR_INT); // Container id final int size = wrapper.passthrough(Type.VAR_INT); for (int i = 0; i < size; i++) { - final Item input = handleItemToClient(wrapper.read(Types1_20_5.ITEM)); + final Item input = handleItemToClient(wrapper.user(), wrapper.read(Types1_20_5.ITEM)); wrapper.write(Type.ITEM1_20_2, input); - final Item output = handleItemToClient(wrapper.read(Types1_20_5.ITEM)); + final Item output = handleItemToClient(wrapper.user(), wrapper.read(Types1_20_5.ITEM)); wrapper.write(Type.ITEM1_20_2, output); - final Item secondItem = handleItemToClient(wrapper.read(Types1_20_5.ITEM)); + final Item secondItem = handleItemToClient(wrapper.user(), wrapper.read(Types1_20_5.ITEM)); wrapper.write(Type.ITEM1_20_2, secondItem); wrapper.passthrough(Type.BOOLEAN); // Trade disabled @@ -154,19 +155,19 @@ public final class BlockItemPacketRewriter1_20_5 extends BackwardsStructuredItem } @Override - public @Nullable Item handleItemToClient(@Nullable final Item item) { + public @Nullable Item handleItemToClient(final UserConnection connection, @Nullable final Item item) { if (item == null) return null; - super.handleItemToClient(item); + super.handleItemToClient(connection, item); return vvProtocol.getItemRewriter().toOldItem(item); } @Override - public @Nullable Item handleItemToServer(@Nullable final Item item) { + public @Nullable Item handleItemToServer(final UserConnection connection, @Nullable final Item item) { if (item == null) return null; // Convert to structured item first final Item structuredItem = vvProtocol.getItemRewriter().toStructuredItem(item); - return super.handleItemToServer(structuredItem); + return super.handleItemToServer(connection, structuredItem); } } \ No newline at end of file diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/rewriter/EntityPacketRewriter1_20_5.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/rewriter/EntityPacketRewriter1_20_5.java index 5a05bdde..fdd6bba0 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/rewriter/EntityPacketRewriter1_20_5.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_3to1_20_5/rewriter/EntityPacketRewriter1_20_5.java @@ -69,7 +69,7 @@ public final class EntityPacketRewriter1_20_5 extends EntityRewriter { final Item[] items = wrapper.read(Type.ITEM1_20_2_ARRAY); for (final Item item : items) { - handleItemToClient(item); + handleItemToClient(wrapper.user(), item); } wrapper.write(Type.ITEM1_13_2_ARRAY, items); - wrapper.write(Type.ITEM1_13_2, handleItemToClient(wrapper.read(Type.ITEM1_20_2))); // Carried item + wrapper.write(Type.ITEM1_13_2, handleItemToClient(wrapper.user(), wrapper.read(Type.ITEM1_20_2))); // Carried item }); } }); @@ -163,7 +164,7 @@ public final class BlockItemPacketRewriter1_20_2 extends ItemRewriter wrapper.write(Type.ITEM1_13_2, handleItemToClient(wrapper.read(Type.ITEM1_20_2)))); + handler(wrapper -> wrapper.write(Type.ITEM1_13_2, handleItemToClient(wrapper.user(), wrapper.read(Type.ITEM1_20_2)))); } }); protocol.registerClientbound(ClientboundPackets1_20_2.ADVANCEMENTS, wrapper -> { @@ -181,7 +182,7 @@ public final class BlockItemPacketRewriter1_20_2 extends ItemRewriter wrapper.write(Type.ITEM1_20_2, handleItemToServer(wrapper.read(Type.ITEM1_13_2)))); // 1 - Clicked Item + handler(wrapper -> wrapper.write(Type.ITEM1_20_2, handleItemToServer(wrapper.user(), wrapper.read(Type.ITEM1_13_2)))); // 1 - Clicked Item } }); protocol.registerClientbound(ClientboundPackets1_20_2.SPAWN_PARTICLE, new PacketHandlers() { @@ -280,7 +281,7 @@ public final class BlockItemPacketRewriter1_20_2 extends ItemRewriter { if (meta.metaType().type().equals(Type.ITEM1_8)) // Is Item - meta.setValue(handleItemToClient((Item) meta.getValue())); + meta.setValue(handleItemToClient(event.user(), (Item) meta.getValue())); }); // Particle diff --git a/common/src/main/resources/assets/viabackwards/data/mappings-1.13to1.12.nbt b/common/src/main/resources/assets/viabackwards/data/mappings-1.13to1.12.nbt index 6b5d1156..e246587a 100644 Binary files a/common/src/main/resources/assets/viabackwards/data/mappings-1.13to1.12.nbt and b/common/src/main/resources/assets/viabackwards/data/mappings-1.13to1.12.nbt differ