diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java index a054b73d..c061fd6c 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java @@ -162,6 +162,29 @@ public class Protocol1_15_2To1_16 extends BackwardsProtocol BackwardsMappings.blockMappings.getNewId(id), id -> MappingData.oldToNewItems.inverse().get(id), entityPackets::getOldEntityId).register(ClientboundPackets1_16.TAGS); + registerIncoming(ServerboundPackets1_14.INTERACT_ENTITY, new PacketRemapper() { + @Override + public void registerMap() { + handler(wrapper -> { + wrapper.passthrough(Type.VAR_INT); // Entity Id + int action = wrapper.passthrough(Type.VAR_INT); + if (action == 0 || action == 2) { + if (action == 2) { + // Location + wrapper.passthrough(Type.FLOAT); + wrapper.passthrough(Type.FLOAT); + wrapper.passthrough(Type.FLOAT); + } + + wrapper.passthrough(Type.VAR_INT); // Hand + + // New boolean: Whether the client is sneaking/pressing shift + wrapper.write(Type.BOOLEAN, false); + } + }); + } + }); + cancelIncoming(ServerboundPackets1_14.UPDATE_JIGSAW_BLOCK); } diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/packets/BlockItemPackets1_16.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/packets/BlockItemPackets1_16.java index 4433afd3..839bdff5 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/packets/BlockItemPackets1_16.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/packets/BlockItemPackets1_16.java @@ -91,6 +91,15 @@ public class BlockItemPackets1_16 extends nl.matsv.viabackwards.api.rewriters.It blockRewriter.registerBlockChange(ClientboundPackets1_16.BLOCK_CHANGE); blockRewriter.registerMultiBlockChange(ClientboundPackets1_16.MULTI_BLOCK_CHANGE); + protocol.registerOutgoing(ClientboundPackets1_16.UPDATE_LIGHT, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.VAR_INT); // x + map(Type.VAR_INT); // y + map(Type.BOOLEAN, Type.NOTHING); + } + }); + protocol.registerOutgoing(ClientboundPackets1_16.CHUNK_DATA, new PacketRemapper() { @Override public void registerMap() {