From ccc509432b83fb60df76d492398a30a085bbbb79 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Tue, 14 May 2024 21:59:10 +0200 Subject: [PATCH] Rebase onto 5.0.0 --- .../api/minecraft/data/StructuredDataKey.java | 6 +- .../api/minecraft/item/data/ArmorTrim.java | 1 + .../item/data/ArmorTrimMaterial.java | 1 + .../minecraft/item/data/ArmorTrimPattern.java | 1 + .../minecraft/item/data/FoodProperties.java | 13 +-- .../api/type/types/version/Types1_21.java | 14 +-- .../protocol/ProtocolManagerImpl.java | 3 +- .../Protocol1_20_2To1_20_3.java | 2 +- .../Protocol1_20_5To1_21.java} | 47 +++++----- .../data/MappingData.java | 6 +- .../data/Paintings1_20_5.java | 2 +- .../rewriter/BlockItemPacketRewriter1_21.java | 52 +++++------ .../rewriter/EntityPacketRewriter1_21.java | 88 +++++++++---------- .../rewriter/AttributeRewriter.java | 2 +- .../template/protocols/Protocol1_99To_98.java | 2 + 15 files changed, 123 insertions(+), 117 deletions(-) rename common/src/main/java/com/viaversion/viaversion/protocols/{protocol1_21to1_20_5/Protocol1_21To1_20_5.java => v1_20_5to1_21/Protocol1_20_5To1_21.java} (81%) rename common/src/main/java/com/viaversion/viaversion/protocols/{protocol1_21to1_20_5 => v1_20_5to1_21}/data/MappingData.java (88%) rename common/src/main/java/com/viaversion/viaversion/protocols/{protocol1_21to1_20_5 => v1_20_5to1_21}/data/Paintings1_20_5.java (97%) rename common/src/main/java/com/viaversion/viaversion/protocols/{protocol1_21to1_20_5 => v1_20_5to1_21}/rewriter/BlockItemPacketRewriter1_21.java (53%) rename common/src/main/java/com/viaversion/viaversion/protocols/{protocol1_21to1_20_5 => v1_20_5to1_21}/rewriter/EntityPacketRewriter1_21.java (60%) diff --git a/api/src/main/java/com/viaversion/viaversion/api/minecraft/data/StructuredDataKey.java b/api/src/main/java/com/viaversion/viaversion/api/minecraft/data/StructuredDataKey.java index 8119b65a2..1b09be417 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/minecraft/data/StructuredDataKey.java +++ b/api/src/main/java/com/viaversion/viaversion/api/minecraft/data/StructuredDataKey.java @@ -47,9 +47,9 @@ import com.viaversion.viaversion.api.minecraft.item.data.SuspiciousStewEffect; import com.viaversion.viaversion.api.minecraft.item.data.ToolProperties; import com.viaversion.viaversion.api.minecraft.item.data.Unbreakable; import com.viaversion.viaversion.api.minecraft.item.data.WrittenBook; -import com.viaversion.viaversion.api.Types.Type; -import com.viaversion.viaversion.api.Types.Types; -import com.viaversion.viaversion.api.Types.types.version.Types1_20_5; +import com.viaversion.viaversion.api.type.Type; +import com.viaversion.viaversion.api.type.Types; +import com.viaversion.viaversion.api.type.types.version.Types1_20_5; import com.viaversion.viaversion.util.Unit; public record StructuredDataKey(String identifier, Type type) { diff --git a/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrim.java b/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrim.java index 55c9e20f4..e06e414f7 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrim.java +++ b/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrim.java @@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.minecraft.item.data; import com.viaversion.viaversion.api.minecraft.Holder; import com.viaversion.viaversion.api.type.Type; import io.netty.buffer.ByteBuf; +import it.unimi.dsi.fastutil.ints.Int2IntFunction; public record ArmorTrim(Holder material, Holder pattern, boolean showInTooltip) { diff --git a/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrimMaterial.java b/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrimMaterial.java index fad4ddc8a..efed9bcff 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrimMaterial.java +++ b/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrimMaterial.java @@ -26,6 +26,7 @@ import com.viaversion.nbt.tag.Tag; import com.viaversion.viaversion.api.type.Types; import com.viaversion.viaversion.api.type.types.misc.HolderType; import io.netty.buffer.ByteBuf; +import it.unimi.dsi.fastutil.ints.Int2IntFunction; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; diff --git a/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrimPattern.java b/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrimPattern.java index aaa61fa1c..6dc11178c 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrimPattern.java +++ b/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/ArmorTrimPattern.java @@ -26,6 +26,7 @@ import com.viaversion.nbt.tag.Tag; import com.viaversion.viaversion.api.type.Types; import com.viaversion.viaversion.api.type.types.misc.HolderType; import io.netty.buffer.ByteBuf; +import it.unimi.dsi.fastutil.ints.Int2IntFunction; public record ArmorTrimPattern(String assetName, int itemId, Tag description, boolean decal) { diff --git a/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/FoodProperties.java b/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/FoodProperties.java index 8206cfe4a..c344d3c34 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/FoodProperties.java +++ b/api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/FoodProperties.java @@ -22,13 +22,14 @@ */ package com.viaversion.viaversion.api.minecraft.item.data; +import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.api.type.Types; import com.viaversion.viaversion.api.type.types.version.Types1_21; import io.netty.buffer.ByteBuf; public record FoodProperties(int nutrition, float saturationModifier, boolean canAlwaysEat, float eatSeconds, - FoodEffect[] possibleEffects) { + Item usingConvertsTo, FoodEffect[] possibleEffects) { public static final Type TYPE1_20_5 = new Type<>(FoodProperties.class) { @Override @@ -38,7 +39,7 @@ public record FoodProperties(int nutrition, float saturationModifier, boolean ca final boolean canAlwaysEat = buffer.readBoolean(); final float eatSeconds = buffer.readFloat(); final FoodEffect[] possibleEffects = FoodEffect.ARRAY_TYPE.read(buffer); - return new FoodProperties(nutrition, saturationModifier, canAlwaysEat, eatSeconds, possibleEffects); + return new FoodProperties(nutrition, saturationModifier, canAlwaysEat, eatSeconds, null, possibleEffects); } @Override @@ -52,8 +53,8 @@ public record FoodProperties(int nutrition, float saturationModifier, boolean ca }; public static final Type TYPE1_21 = new Type(FoodProperties.class) { @Override - public FoodProperties read(final ByteBuf buffer) throws Exception { - final int nutrition = Type.VAR_INT.readPrimitive(buffer); + public FoodProperties read(final ByteBuf buffer) { + final int nutrition = Types.VAR_INT.readPrimitive(buffer); final float saturationModifier = buffer.readFloat(); final boolean canAlwaysEat = buffer.readBoolean(); final float eatSeconds = buffer.readFloat(); @@ -63,8 +64,8 @@ public record FoodProperties(int nutrition, float saturationModifier, boolean ca } @Override - public void write(final ByteBuf buffer, final FoodProperties value) throws Exception { - Type.VAR_INT.writePrimitive(buffer, value.nutrition); + public void write(final ByteBuf buffer, final FoodProperties value) { + Types.VAR_INT.writePrimitive(buffer, value.nutrition); buffer.writeFloat(value.saturationModifier); buffer.writeBoolean(value.canAlwaysEat); buffer.writeFloat(value.eatSeconds); diff --git a/api/src/main/java/com/viaversion/viaversion/api/type/types/version/Types1_21.java b/api/src/main/java/com/viaversion/viaversion/api/type/types/version/Types1_21.java index a2ba8384c..d8c4e878a 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/type/types/version/Types1_21.java +++ b/api/src/main/java/com/viaversion/viaversion/api/type/types/version/Types1_21.java @@ -24,16 +24,16 @@ package com.viaversion.viaversion.api.type.types.version; import com.viaversion.viaversion.api.minecraft.Particle; import com.viaversion.viaversion.api.minecraft.data.StructuredData; +import com.viaversion.viaversion.api.minecraft.entitydata.EntityData; +import com.viaversion.viaversion.api.minecraft.entitydata.types.EntityDataTypes1_20_5; import com.viaversion.viaversion.api.minecraft.item.Item; -import com.viaversion.viaversion.api.minecraft.metadata.Metadata; -import com.viaversion.viaversion.api.minecraft.metadata.types.MetaTypes1_20_5; import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.api.type.types.ArrayType; +import com.viaversion.viaversion.api.type.types.entitydata.EntityDataListType; +import com.viaversion.viaversion.api.type.types.entitydata.EntityDataType; import com.viaversion.viaversion.api.type.types.item.ItemCostType1_20_5; import com.viaversion.viaversion.api.type.types.item.ItemType1_20_5; import com.viaversion.viaversion.api.type.types.item.StructuredDataType; -import com.viaversion.viaversion.api.type.types.metadata.MetaListType; -import com.viaversion.viaversion.api.type.types.metadata.MetadataType; import com.viaversion.viaversion.api.type.types.misc.ParticleType; import java.util.List; @@ -50,7 +50,7 @@ public final class Types1_21 { public static final ParticleType PARTICLE = new ParticleType(); public static final ArrayType PARTICLES = new ArrayType<>(PARTICLE); - public static final MetaTypes1_20_5 META_TYPES = new MetaTypes1_20_5(PARTICLE, PARTICLES); - public static final Type METADATA = new MetadataType(META_TYPES); - public static final Type> METADATA_LIST = new MetaListType(METADATA); + public static final EntityDataTypes1_20_5 ENTITY_DATA_TYPES = new EntityDataTypes1_20_5(PARTICLE, PARTICLES); + public static final Type ENTITY_DATA = new EntityDataType(ENTITY_DATA_TYPES); + public static final Type> ENTITY_DATA_LIST = new EntityDataListType(ENTITY_DATA); } diff --git a/common/src/main/java/com/viaversion/viaversion/protocol/ProtocolManagerImpl.java b/common/src/main/java/com/viaversion/viaversion/protocol/ProtocolManagerImpl.java index 6b7725b24..a9eef13b3 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocol/ProtocolManagerImpl.java +++ b/common/src/main/java/com/viaversion/viaversion/protocol/ProtocolManagerImpl.java @@ -41,6 +41,7 @@ import com.viaversion.viaversion.protocol.packet.VersionedPacketTransformerImpl; import com.viaversion.viaversion.protocols.base.BaseProtocol; import com.viaversion.viaversion.protocols.base.BaseProtocol1_16; import com.viaversion.viaversion.protocols.base.BaseProtocol1_7; +import com.viaversion.viaversion.protocols.v1_20_5to1_21.Protocol1_20_5To1_21; import com.viaversion.viaversion.protocols.v1_10to1_11.Protocol1_10To1_11; import com.viaversion.viaversion.protocols.v1_11_1to1_12.Protocol1_11_1To1_12; import com.viaversion.viaversion.protocols.v1_11to1_11_1.Protocol1_11To1_11_1; @@ -188,7 +189,7 @@ public class ProtocolManagerImpl implements ProtocolManager { registerProtocol(new Protocol1_20_2To1_20_3(), ProtocolVersion.v1_20_3, ProtocolVersion.v1_20_2); registerProtocol(new Protocol1_20_3To1_20_5(), ProtocolVersion.v1_20_5, ProtocolVersion.v1_20_3); - registerProtocol(new Protocol1_21To1_20_5(), ProtocolVersion.v1_21, ProtocolVersion.v1_20_5); + registerProtocol(new Protocol1_20_5To1_21(), ProtocolVersion.v1_21, ProtocolVersion.v1_20_5); } @Override diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_2to1_20_3/Protocol1_20_2To1_20_3.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_2to1_20_3/Protocol1_20_2To1_20_3.java index 4b522ac32..410c93136 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_2to1_20_3/Protocol1_20_2To1_20_3.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_2to1_20_3/Protocol1_20_2To1_20_3.java @@ -353,7 +353,7 @@ public final class Protocol1_20_2To1_20_3 extends AbstractProtocol. */ -package com.viaversion.viaversion.protocols.protocol1_21to1_20_5; +package com.viaversion.viaversion.protocols.v1_20_5to1_21; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.data.StructuredDataKey; @@ -23,20 +23,19 @@ import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_20_5; import com.viaversion.viaversion.api.protocol.AbstractProtocol; import com.viaversion.viaversion.api.protocol.packet.provider.PacketTypesProvider; import com.viaversion.viaversion.api.protocol.packet.provider.SimplePacketTypesProvider; -import com.viaversion.viaversion.api.type.Type; +import com.viaversion.viaversion.api.type.Types; import com.viaversion.viaversion.api.type.types.misc.ParticleType; -import com.viaversion.viaversion.api.type.types.version.Types1_20_5; import com.viaversion.viaversion.api.type.types.version.Types1_21; import com.viaversion.viaversion.data.entity.EntityTrackerBase; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundConfigurationPackets1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundPacket1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundPackets1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ServerboundConfigurationPackets1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ServerboundPacket1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ServerboundPackets1_20_5; -import com.viaversion.viaversion.protocols.protocol1_21to1_20_5.data.MappingData; -import com.viaversion.viaversion.protocols.protocol1_21to1_20_5.rewriter.BlockItemPacketRewriter1_21; -import com.viaversion.viaversion.protocols.protocol1_21to1_20_5.rewriter.EntityPacketRewriter1_21; +import com.viaversion.viaversion.protocols.v1_20_5to1_21.data.MappingData; +import com.viaversion.viaversion.protocols.v1_20_5to1_21.rewriter.BlockItemPacketRewriter1_21; +import com.viaversion.viaversion.protocols.v1_20_5to1_21.rewriter.EntityPacketRewriter1_21; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundConfigurationPackets1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundPacket1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundPackets1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ServerboundConfigurationPackets1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ServerboundPacket1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ServerboundPackets1_20_5; import com.viaversion.viaversion.rewriter.AttributeRewriter; import com.viaversion.viaversion.rewriter.SoundRewriter; import com.viaversion.viaversion.rewriter.StatisticsRewriter; @@ -44,14 +43,14 @@ import com.viaversion.viaversion.rewriter.TagRewriter; import static com.viaversion.viaversion.util.ProtocolUtil.packetTypeMap; -public final class Protocol1_21To1_20_5 extends AbstractProtocol { +public final class Protocol1_20_5To1_21 extends AbstractProtocol { public static final MappingData MAPPINGS = new MappingData(); private final EntityPacketRewriter1_21 entityRewriter = new EntityPacketRewriter1_21(this); private final BlockItemPacketRewriter1_21 itemRewriter = new BlockItemPacketRewriter1_21(this); private final TagRewriter tagRewriter = new TagRewriter<>(this); - public Protocol1_21To1_20_5() { + public Protocol1_20_5To1_21() { super(ClientboundPacket1_20_5.class, ClientboundPacket1_20_5.class, ServerboundPacket1_20_5.class, ServerboundPacket1_20_5.class); } @@ -59,23 +58,23 @@ public final class Protocol1_21To1_20_5 extends AbstractProtocol soundRewriter = new SoundRewriter<>(this); - soundRewriter.register1_19_3Sound(ClientboundPackets1_20_5.SOUND); - soundRewriter.register1_19_3Sound(ClientboundPackets1_20_5.ENTITY_SOUND); + soundRewriter.registerSound1_19_3(ClientboundPackets1_20_5.SOUND); + soundRewriter.registerSound1_19_3(ClientboundPackets1_20_5.SOUND_ENTITY); - new StatisticsRewriter<>(this).register(ClientboundPackets1_20_5.STATISTICS); - new AttributeRewriter<>(this).register1_20_5(ClientboundPackets1_20_5.ENTITY_PROPERTIES); + new StatisticsRewriter<>(this).register(ClientboundPackets1_20_5.AWARD_STATS); + new AttributeRewriter<>(this).register1_20_5(ClientboundPackets1_20_5.UPDATE_ATTRIBUTES); registerClientbound(ClientboundPackets1_20_5.PROJECTILE_POWER, wrapper -> { - wrapper.passthrough(Type.VAR_INT); // Id - final double xPower = wrapper.read(Type.DOUBLE); - final double yPower = wrapper.read(Type.DOUBLE); - final double zPower = wrapper.read(Type.DOUBLE); + wrapper.passthrough(Types.VAR_INT); // Id + final double xPower = wrapper.read(Types.DOUBLE); + final double yPower = wrapper.read(Types.DOUBLE); + final double zPower = wrapper.read(Types.DOUBLE); final double accelerationPower = Math.sqrt(xPower * xPower + yPower * yPower + zPower * zPower); - wrapper.write(Type.DOUBLE, accelerationPower); + wrapper.write(Types.DOUBLE, accelerationPower); }); } diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/data/MappingData.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/data/MappingData.java similarity index 88% rename from common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/data/MappingData.java rename to common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/data/MappingData.java index f0d6faa49..92aecd9af 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/data/MappingData.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/data/MappingData.java @@ -15,10 +15,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.viaversion.viaversion.protocols.protocol1_21to1_20_5.data; +package com.viaversion.viaversion.protocols.v1_20_5to1_21.data; -import com.github.steveice10.opennbt.tag.builtin.CompoundTag; -import com.github.steveice10.opennbt.tag.builtin.ListTag; +import com.viaversion.nbt.tag.CompoundTag; +import com.viaversion.nbt.tag.ListTag; import com.viaversion.viaversion.api.data.MappingDataBase; import com.viaversion.viaversion.api.data.MappingDataLoader; diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/data/Paintings1_20_5.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/data/Paintings1_20_5.java similarity index 97% rename from common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/data/Paintings1_20_5.java rename to common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/data/Paintings1_20_5.java index 7d83316d0..21bfc7006 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/data/Paintings1_20_5.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/data/Paintings1_20_5.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.viaversion.viaversion.protocols.protocol1_21to1_20_5.data; +package com.viaversion.viaversion.protocols.v1_20_5to1_21.data; public final class Paintings1_20_5 { diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/rewriter/BlockItemPacketRewriter1_21.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/rewriter/BlockItemPacketRewriter1_21.java similarity index 53% rename from common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/rewriter/BlockItemPacketRewriter1_21.java rename to common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/rewriter/BlockItemPacketRewriter1_21.java index cfb012a59..556ebc95a 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/rewriter/BlockItemPacketRewriter1_21.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/rewriter/BlockItemPacketRewriter1_21.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.viaversion.viaversion.protocols.protocol1_21to1_20_5.rewriter; +package com.viaversion.viaversion.protocols.v1_20_5to1_21.rewriter; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.data.StructuredDataKey; @@ -23,45 +23,45 @@ import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_20_2; import com.viaversion.viaversion.api.type.types.version.Types1_20_5; import com.viaversion.viaversion.api.type.types.version.Types1_21; -import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.rewriter.RecipeRewriter1_20_3; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundPacket1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundPackets1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ServerboundPacket1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ServerboundPackets1_20_5; -import com.viaversion.viaversion.protocols.protocol1_21to1_20_5.Protocol1_21To1_20_5; +import com.viaversion.viaversion.protocols.v1_20_5to1_21.Protocol1_20_5To1_21; +import com.viaversion.viaversion.protocols.v1_20_2to1_20_3.rewriter.RecipeRewriter1_20_3; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundPacket1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundPackets1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ServerboundPacket1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ServerboundPackets1_20_5; import com.viaversion.viaversion.rewriter.BlockRewriter; import com.viaversion.viaversion.rewriter.StructuredItemRewriter; import org.checkerframework.checker.nullness.qual.Nullable; -public final class BlockItemPacketRewriter1_21 extends StructuredItemRewriter { +public final class BlockItemPacketRewriter1_21 extends StructuredItemRewriter { - public BlockItemPacketRewriter1_21(final Protocol1_21To1_20_5 protocol) { + public BlockItemPacketRewriter1_21(final Protocol1_20_5To1_21 protocol) { super(protocol, Types1_20_5.ITEM, Types1_20_5.ITEM_ARRAY, Types1_21.ITEM, Types1_21.ITEM_ARRAY); } @Override public void registerPackets() { final BlockRewriter blockRewriter = BlockRewriter.for1_20_2(protocol); - blockRewriter.registerBlockAction(ClientboundPackets1_20_5.BLOCK_ACTION); - blockRewriter.registerBlockChange(ClientboundPackets1_20_5.BLOCK_CHANGE); - blockRewriter.registerVarLongMultiBlockChange1_20(ClientboundPackets1_20_5.MULTI_BLOCK_CHANGE); - blockRewriter.registerEffect(ClientboundPackets1_20_5.EFFECT, 1010, 2001); - blockRewriter.registerChunkData1_19(ClientboundPackets1_20_5.CHUNK_DATA, ChunkType1_20_2::new); + blockRewriter.registerBlockEvent(ClientboundPackets1_20_5.BLOCK_EVENT); + blockRewriter.registerBlockUpdate(ClientboundPackets1_20_5.BLOCK_UPDATE); + blockRewriter.registerSectionBlocksUpdate1_20(ClientboundPackets1_20_5.SECTION_BLOCKS_UPDATE); + blockRewriter.registerLevelEvent(ClientboundPackets1_20_5.LEVEL_EVENT, 1010, 2001); + blockRewriter.registerLevelChunk1_19(ClientboundPackets1_20_5.LEVEL_CHUNK_WITH_LIGHT, ChunkType1_20_2::new); blockRewriter.registerBlockEntityData(ClientboundPackets1_20_5.BLOCK_ENTITY_DATA); - registerSetCooldown(ClientboundPackets1_20_5.COOLDOWN); - registerWindowItems1_17_1(ClientboundPackets1_20_5.WINDOW_ITEMS); - registerSetSlot1_17_1(ClientboundPackets1_20_5.SET_SLOT); - registerAdvancements1_20_3(ClientboundPackets1_20_5.ADVANCEMENTS); - registerEntityEquipmentArray(ClientboundPackets1_20_5.ENTITY_EQUIPMENT); - registerClickWindow1_17_1(ServerboundPackets1_20_5.CLICK_WINDOW); - registerTradeList1_20_5(ClientboundPackets1_20_5.TRADE_LIST, Types1_20_5.ITEM_COST, Types1_21.ITEM_COST, Types1_20_5.OPTIONAL_ITEM_COST, Types1_21.OPTIONAL_ITEM_COST); - registerCreativeInvAction(ServerboundPackets1_20_5.CREATIVE_INVENTORY_ACTION); - registerWindowPropertyEnchantmentHandler(ClientboundPackets1_20_5.WINDOW_PROPERTY); - registerSpawnParticle1_20_5(ClientboundPackets1_20_5.SPAWN_PARTICLE, Types1_20_5.PARTICLE, Types1_21.PARTICLE); - registerExplosion(ClientboundPackets1_20_5.EXPLOSION, Types1_20_5.PARTICLE, Types1_21.PARTICLE); // Rewrites the included sound and particles + registerCooldown(ClientboundPackets1_20_5.COOLDOWN); + registerSetContent1_17_1(ClientboundPackets1_20_5.CONTAINER_SET_CONTENT); + registerSetSlot1_17_1(ClientboundPackets1_20_5.CONTAINER_SET_SLOT); + registerAdvancements1_20_3(ClientboundPackets1_20_5.UPDATE_ADVANCEMENTS); + registerSetEquipment(ClientboundPackets1_20_5.SET_EQUIPMENT); + registerContainerClick1_17_1(ServerboundPackets1_20_5.CONTAINER_CLICK); + registerMerchantOffers1_20_5(ClientboundPackets1_20_5.MERCHANT_OFFERS, Types1_20_5.ITEM_COST, Types1_21.ITEM_COST, Types1_20_5.OPTIONAL_ITEM_COST, Types1_21.OPTIONAL_ITEM_COST); + registerSetCreativeModeSlot(ServerboundPackets1_20_5.SET_CREATIVE_MODE_SLOT); + registerContainerSetData(ClientboundPackets1_20_5.CONTAINER_SET_DATA); + registerLevelParticles1_20_5(ClientboundPackets1_20_5.LEVEL_PARTICLES, Types1_20_5.PARTICLE, Types1_21.PARTICLE); + registerExplosion(ClientboundPackets1_20_5.EXPLODE, Types1_20_5.PARTICLE, Types1_21.PARTICLE); // Rewrites the included sound and particles - new RecipeRewriter1_20_3<>(protocol).register1_20_5(ClientboundPackets1_20_5.DECLARE_RECIPES); + new RecipeRewriter1_20_3<>(protocol).register1_20_5(ClientboundPackets1_20_5.UPDATE_RECIPES); } @Override diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/rewriter/EntityPacketRewriter1_21.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/rewriter/EntityPacketRewriter1_21.java similarity index 60% rename from common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/rewriter/EntityPacketRewriter1_21.java rename to common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/rewriter/EntityPacketRewriter1_21.java index 4e414b4da..279a01597 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_21to1_20_5/rewriter/EntityPacketRewriter1_21.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_20_5to1_21/rewriter/EntityPacketRewriter1_21.java @@ -15,48 +15,48 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package com.viaversion.viaversion.protocols.protocol1_21to1_20_5.rewriter; +package com.viaversion.viaversion.protocols.v1_20_5to1_21.rewriter; -import com.github.steveice10.opennbt.tag.builtin.CompoundTag; +import com.viaversion.nbt.tag.CompoundTag; import com.viaversion.viaversion.api.minecraft.RegistryEntry; import com.viaversion.viaversion.api.minecraft.entities.EntityType; import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_20_5; import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers; -import com.viaversion.viaversion.api.type.Type; +import com.viaversion.viaversion.api.type.Types; import com.viaversion.viaversion.api.type.types.version.Types1_20_5; import com.viaversion.viaversion.api.type.types.version.Types1_21; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.data.Enchantments1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundConfigurationPackets1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundPacket1_20_5; -import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundPackets1_20_5; -import com.viaversion.viaversion.protocols.protocol1_21to1_20_5.Protocol1_21To1_20_5; -import com.viaversion.viaversion.protocols.protocol1_21to1_20_5.data.Paintings1_20_5; +import com.viaversion.viaversion.protocols.v1_20_5to1_21.Protocol1_20_5To1_21; +import com.viaversion.viaversion.protocols.v1_20_5to1_21.data.Paintings1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.data.Enchantments1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundConfigurationPackets1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundPacket1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundPackets1_20_5; import com.viaversion.viaversion.rewriter.EntityRewriter; import com.viaversion.viaversion.util.Key; -public final class EntityPacketRewriter1_21 extends EntityRewriter { +public final class EntityPacketRewriter1_21 extends EntityRewriter { - public EntityPacketRewriter1_21(final Protocol1_21To1_20_5 protocol) { + public EntityPacketRewriter1_21(final Protocol1_20_5To1_21 protocol) { super(protocol); } @Override public void registerPackets() { - registerTrackerWithData1_19(ClientboundPackets1_20_5.SPAWN_ENTITY, EntityTypes1_20_5.FALLING_BLOCK); - registerMetadataRewriter(ClientboundPackets1_20_5.ENTITY_METADATA, Types1_20_5.METADATA_LIST, Types1_21.METADATA_LIST); + registerTrackerWithData1_19(ClientboundPackets1_20_5.ADD_ENTITY, EntityTypes1_20_5.FALLING_BLOCK); + registerSetEntityData(ClientboundPackets1_20_5.SET_ENTITY_DATA, Types1_20_5.ENTITY_DATA_LIST, Types1_21.ENTITY_DATA_LIST); registerRemoveEntities(ClientboundPackets1_20_5.REMOVE_ENTITIES); protocol.registerClientbound(ClientboundConfigurationPackets1_20_5.REGISTRY_DATA, wrapper -> { - final String type = Key.stripMinecraftNamespace(wrapper.passthrough(Type.STRING)); - final RegistryEntry[] entries = wrapper.passthrough(Type.REGISTRY_ENTRY_ARRAY); + final String type = Key.stripMinecraftNamespace(wrapper.passthrough(Types.STRING)); + final RegistryEntry[] entries = wrapper.passthrough(Types.REGISTRY_ENTRY_ARRAY); if (type.equals("damage_type")) { // Add required damage type final CompoundTag campfireDamageType = new CompoundTag(); campfireDamageType.putString("scaling", "when_caused_by_living_non_player"); campfireDamageType.putString("message_id", "inFire"); campfireDamageType.putFloat("exhaustion", 0.1F); - wrapper.set(Type.REGISTRY_ENTRY_ARRAY, 0, addRegistryEntries(entries, new RegistryEntry("minecraft:campfire", campfireDamageType))); + wrapper.set(Types.REGISTRY_ENTRY_ARRAY, 0, addRegistryEntries(entries, new RegistryEntry("minecraft:campfire", campfireDamageType))); } else { handleRegistryData1_20_5(wrapper.user(), type, entries); } @@ -65,7 +65,7 @@ public final class EntityPacketRewriter1_21 extends EntityRewriter { // Add new registries final PacketWrapper paintingRegistryPacket = wrapper.create(ClientboundConfigurationPackets1_20_5.REGISTRY_DATA); - paintingRegistryPacket.write(Type.STRING, "minecraft:painting_variant"); + paintingRegistryPacket.write(Types.STRING, "minecraft:painting_variant"); final RegistryEntry[] paintingsRegistry = new RegistryEntry[Paintings1_20_5.PAINTINGS.length]; for (int i = 0; i < Paintings1_20_5.PAINTINGS.length; i++) { final Paintings1_20_5.PaintingVariant painting = Paintings1_20_5.PAINTINGS[i]; @@ -75,60 +75,60 @@ public final class EntityPacketRewriter1_21 extends EntityRewriter { - final int dimensionId = wrapper.passthrough(Type.VAR_INT); - final String world = wrapper.passthrough(Type.STRING); + final int dimensionId = wrapper.passthrough(Types.VAR_INT); + final String world = wrapper.passthrough(Types.STRING); trackWorldDataByKey1_20_5(wrapper.user(), dimensionId, world); // Tracks world height and name for chunk data and entity (un)tracking }); } @Override protected void registerRewrites() { - filter().mapMetaType(Types1_21.META_TYPES::byId); + filter().mapDataType(Types1_21.ENTITY_DATA_TYPES::byId); - registerMetaTypeHandler( - Types1_21.META_TYPES.itemType, - Types1_21.META_TYPES.blockStateType, - Types1_21.META_TYPES.optionalBlockStateType, - Types1_21.META_TYPES.particleType, - Types1_21.META_TYPES.particlesType + registerEntityDataTypeHandler( + Types1_21.ENTITY_DATA_TYPES.itemType, + Types1_21.ENTITY_DATA_TYPES.blockStateType, + Types1_21.ENTITY_DATA_TYPES.optionalBlockStateType, + Types1_21.ENTITY_DATA_TYPES.particleType, + Types1_21.ENTITY_DATA_TYPES.particlesType ); - filter().type(EntityTypes1_20_5.MINECART_ABSTRACT).index(11).handler((event, meta) -> { + filter().type(EntityTypes1_20_5.ABSTRACT_MINECART).index(11).handler((event, meta) -> { final int blockState = meta.value(); meta.setValue(protocol.getMappingData().getNewBlockStateId(blockState)); }); diff --git a/common/src/main/java/com/viaversion/viaversion/rewriter/AttributeRewriter.java b/common/src/main/java/com/viaversion/viaversion/rewriter/AttributeRewriter.java index a3fce352b..9d89d45ee 100644 --- a/common/src/main/java/com/viaversion/viaversion/rewriter/AttributeRewriter.java +++ b/common/src/main/java/com/viaversion/viaversion/rewriter/AttributeRewriter.java @@ -19,7 +19,7 @@ package com.viaversion.viaversion.rewriter; import com.viaversion.viaversion.api.protocol.Protocol; import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType; -import com.viaversion.viaversion.api.Types.Types; +import com.viaversion.viaversion.api.type.Types; public class AttributeRewriter { private final Protocol protocol; diff --git a/template/src/main/java/com/viaversion/viaversion/template/protocols/Protocol1_99To_98.java b/template/src/main/java/com/viaversion/viaversion/template/protocols/Protocol1_99To_98.java index 4617443cd..bda1b1774 100644 --- a/template/src/main/java/com/viaversion/viaversion/template/protocols/Protocol1_99To_98.java +++ b/template/src/main/java/com/viaversion/viaversion/template/protocols/Protocol1_99To_98.java @@ -28,7 +28,9 @@ import com.viaversion.viaversion.data.entity.EntityTrackerBase; import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundConfigurationPackets1_20_5; import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundPacket1_20_5; import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundPackets1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ServerboundConfigurationPackets1_20_5; import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ServerboundPacket1_20_5; +import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ServerboundPackets1_20_5; import com.viaversion.viaversion.rewriter.AttributeRewriter; import com.viaversion.viaversion.rewriter.SoundRewriter; import com.viaversion.viaversion.rewriter.StatisticsRewriter;