From fb7cd2d9e302efef783db8267120dda7274670a6 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Thu, 9 Nov 2023 17:12:10 +1000 Subject: [PATCH] 23w45a --- .../api/entities/storage/EntityData.java | 26 ++++-- .../api/rewriters/EntityRewriterBase.java | 9 +- .../packets/EntityPackets1_20.java | 5 +- .../Protocol1_20_2To1_20_3.java | 8 +- .../BlockItemPacketRewriter1_20_3.java | 84 +++++++++++++++++- .../rewriter/EntityPacketRewriter1_20_3.java | 45 ++++++++-- .../rewriter/EntityPacketRewriter1_20_2.java | 2 +- .../data/mappings-1.20.3to1.20.2.nbt | Bin 5654 -> 7481 bytes gradle.properties | 2 +- gradle/libs.versions.toml | 2 +- .../template/protocol/Protocol1_98To_99.java | 54 +++++------ .../rewriter/BlockItemPacketRewriter1_99.java | 44 ++++----- .../rewriter/EntityPacketRewriter1_99.java | 24 ++--- 13 files changed, 214 insertions(+), 91 deletions(-) diff --git a/common/src/main/java/com/viaversion/viabackwards/api/entities/storage/EntityData.java b/common/src/main/java/com/viaversion/viabackwards/api/entities/storage/EntityData.java index e117aecd..22ccc8e6 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/entities/storage/EntityData.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/entities/storage/EntityData.java @@ -21,6 +21,7 @@ package com.viaversion.viabackwards.api.entities.storage; import com.viaversion.viabackwards.ViaBackwards; import com.viaversion.viabackwards.api.BackwardsProtocol; import com.viaversion.viaversion.api.minecraft.entities.EntityType; +import com.viaversion.viaversion.libs.opennbt.tag.builtin.StringTag; import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.ChatRewriter; import java.util.Locale; import org.checkerframework.checker.nullness.qual.Nullable; @@ -30,7 +31,7 @@ public class EntityData { private final int id; private final int replacementId; private final String key; - private NameVisibility nameVisibility = NameVisibility.NONE; + private ComponentType componentType = ComponentType.NONE; private MetaCreator defaultMeta; public EntityData(BackwardsProtocol protocol, EntityType type, int replacementId) { @@ -45,12 +46,17 @@ public class EntityData { } public EntityData jsonName() { - this.nameVisibility = NameVisibility.JSON; + this.componentType = ComponentType.JSON; + return this; + } + + public EntityData tagName() { + this.componentType = ComponentType.TAG; return this; } public EntityData plainName() { - this.nameVisibility = NameVisibility.PLAIN; + this.componentType = ComponentType.PLAIN; return this; } @@ -70,8 +76,8 @@ public class EntityData { /** * @return custom mobname, can be either a String or a JsonElement */ - public @Nullable Object mobName() { - if (nameVisibility == NameVisibility.NONE) { + public @Nullable Object entityName() { + if (componentType == ComponentType.NONE) { return null; } @@ -80,7 +86,12 @@ public class EntityData { ViaBackwards.getPlatform().getLogger().warning("Entity name for " + key + " not found in protocol " + protocol.getClass().getSimpleName()); name = key; } - return nameVisibility == NameVisibility.JSON ? ChatRewriter.legacyTextToJson(name) : name; + if (componentType == ComponentType.JSON) { + return ChatRewriter.legacyTextToJson(name); + } else if (componentType == ComponentType.TAG) { + return new StringTag(name); + } + return name; } public int replacementId() { @@ -115,9 +126,10 @@ public class EntityData { void createMeta(WrappedMetadata storage); } - private enum NameVisibility { + private enum ComponentType { PLAIN, JSON, + TAG, NONE } } diff --git a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/EntityRewriterBase.java b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/EntityRewriterBase.java index 7053941e..525b5b09 100644 --- a/common/src/main/java/com/viaversion/viabackwards/api/rewriters/EntityRewriterBase.java +++ b/common/src/main/java/com/viaversion/viabackwards/api/rewriters/EntityRewriterBase.java @@ -76,21 +76,22 @@ public abstract class EntityRewriterBase { @@ -44,7 +43,7 @@ public final class EntityPackets1_20 extends EntityRewriter1.20 item particle rewrite + // TODO VB: Entity, new poses, particle final SoundRewriter soundRewriter = new SoundRewriter<>(this); soundRewriter.register1_19_3Sound(ClientboundPackets1_20_3.SOUND); soundRewriter.registerEntitySound(ClientboundPackets1_20_3.ENTITY_SOUND); @@ -282,12 +283,13 @@ public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { @@ -50,8 +54,82 @@ public final class BlockItemPacketRewriter1_20_3 extends ItemRewriter(protocol).register(ClientboundPackets1_20_3.DECLARE_RECIPES); + protocol.registerClientbound(ClientboundPackets1_20_3.SPAWN_PARTICLE, new PacketHandlers() { + @Override + public void register() { + map(Type.VAR_INT); // 0 - Particle ID + map(Type.BOOLEAN); // 1 - Long Distance + map(Type.DOUBLE); // 2 - X + map(Type.DOUBLE); // 3 - Y + map(Type.DOUBLE); // 4 - Z + map(Type.FLOAT); // 5 - Offset X + map(Type.FLOAT); // 6 - Offset Y + map(Type.FLOAT); // 7 - Offset Z + map(Type.FLOAT); // 8 - Particle Data + map(Type.INT); // 9 - Particle Count + handler(wrapper -> { + final int id = wrapper.get(Type.VAR_INT, 0); + final ParticleMappings particleMappings = protocol.getMappingData().getParticleMappings(); + if (id == particleMappings.id("vibration")) { + final int positionSourceType = wrapper.read(Type.VAR_INT); + if (positionSourceType == 0) { + wrapper.write(Type.STRING, "minecraft:block"); + } else if (positionSourceType == 1) { + wrapper.write(Type.STRING, "minecraft:entity"); + } else { + ViaBackwards.getPlatform().getLogger().warning("Unknown position source type: " + positionSourceType); + wrapper.cancel(); + } + } + }); + handler(getSpawnParticleHandler(Type.VAR_INT)); + } + }); + + new RecipeRewriter1_20_3(protocol) { + @Override + public void handleCraftingShaped(final PacketWrapper wrapper) throws Exception { + // Move width and height up + final String group = wrapper.read(Type.STRING); + final int craftingBookCategory = wrapper.read(Type.VAR_INT); + + final int width = wrapper.passthrough(Type.VAR_INT); + final int height = wrapper.passthrough(Type.VAR_INT); + + wrapper.write(Type.STRING, group); + wrapper.write(Type.VAR_INT, craftingBookCategory); + + final int ingredients = height * width; + for (int i = 0; i < ingredients; i++) { + handleIngredient(wrapper); + } + rewrite(wrapper.passthrough(itemType())); // Result + wrapper.passthrough(Type.BOOLEAN); // Show notification + } + }.register(ClientboundPackets1_20_3.DECLARE_RECIPES); + + protocol.registerClientbound(ClientboundPackets1_20_3.EXPLOSION, wrapper -> { + wrapper.passthrough(Type.DOUBLE); // X + wrapper.passthrough(Type.DOUBLE); // Y + wrapper.passthrough(Type.DOUBLE); // Z + wrapper.passthrough(Type.FLOAT); // Power + final int blocks = wrapper.passthrough(Type.VAR_INT); + for (int i = 0; i < blocks; i++) { + wrapper.passthrough(Type.BYTE); // Relative X + wrapper.passthrough(Type.BYTE); // Relative Y + wrapper.passthrough(Type.BYTE); // Relative Z + } + wrapper.passthrough(Type.FLOAT); // Knockback X + wrapper.passthrough(Type.FLOAT); // Knockback Y + wrapper.passthrough(Type.FLOAT); // Knockback Z + + // TODO Probably needs handling + wrapper.read(Type.VAR_INT); // Block interaction type + wrapper.read(Type.VAR_INT); // Small explosion particle + wrapper.read(Type.VAR_INT); // Large explosion particle + wrapper.read(Type.STRING); // Explosion sound + wrapper.read(Type.OPTIONAL_FLOAT); // Sound range + }); } } \ 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 d6cbda86..ccea483a 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 @@ -19,8 +19,10 @@ package com.viaversion.viabackwards.protocol.protocol1_20_2to1_20_3.rewriter; import com.viaversion.viabackwards.api.rewriters.EntityRewriter; import com.viaversion.viabackwards.protocol.protocol1_20_2to1_20_3.Protocol1_20_2To1_20_3; +import com.viaversion.viaversion.api.data.ParticleMappings; +import com.viaversion.viaversion.api.minecraft.Particle; import com.viaversion.viaversion.api.minecraft.entities.EntityType; -import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_19_4; +import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_20_3; import com.viaversion.viaversion.api.minecraft.metadata.MetaType; import com.viaversion.viaversion.api.protocol.packet.State; import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers; @@ -34,7 +36,7 @@ import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.packet.Clientb public final class EntityPacketRewriter1_20_3 extends EntityRewriter { public EntityPacketRewriter1_20_3(final Protocol1_20_2To1_20_3 protocol) { - super(protocol); + super(protocol, Types1_20_2.META_TYPES.optionalComponentType, Types1_20_2.META_TYPES.booleanType); } @Override @@ -86,11 +88,32 @@ public final class EntityPacketRewriter1_20_3 extends EntityRewriterremoveArgument(0).getValue(); + if (positionSourceType == 0) { + particle.add(0, Type.STRING, "minecraft:block"); + } else { // Entity + particle.add(0, Type.STRING, "minecraft:entity"); + } + } + + rewriteParticle(particle); + } else if (type == Types1_20_3.META_TYPES.poseType) { + final int pose = meta.value(); + if (pose >= 15) { + event.cancel(); + } } + + meta.setMetaType(Types1_20_2.META_TYPES.byId(type.typeId())); }); registerMetaTypeHandler( @@ -102,16 +125,24 @@ public final class EntityPacketRewriter1_20_3 extends EntityRewriter { + filter().filterFamily(EntityTypes1_20_3.MINECART_ABSTRACT).index(11).handler((event, meta) -> { final int blockState = meta.value(); meta.setValue(protocol.getMappingData().getNewBlockStateId(blockState)); }); - filter().type(EntityTypes1_19_4.TNT).removeIndex(9); // Block state + filter().type(EntityTypes1_20_3.TNT).removeIndex(9); // Block state + } + + @Override + public void onMappingDataLoaded() { + mapTypes(); + + mapEntityTypeWithData(EntityTypes1_20_3.BREEZE, EntityTypes1_20_3.BLAZE).jsonName(); + mapEntityTypeWithData(EntityTypes1_20_3.WIND_CHARGE, EntityTypes1_20_3.LLAMA_SPIT).jsonName(); } @Override public EntityType typeFromId(final int type) { - return EntityTypes1_19_4.getTypeFromId(type); + return EntityTypes1_20_3.getTypeFromId(type); } } \ No newline at end of file diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20to1_20_2/rewriter/EntityPacketRewriter1_20_2.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20to1_20_2/rewriter/EntityPacketRewriter1_20_2.java index 6b5b0a3f..6bb2a6d5 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20to1_20_2/rewriter/EntityPacketRewriter1_20_2.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20to1_20_2/rewriter/EntityPacketRewriter1_20_2.java @@ -34,7 +34,7 @@ import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.Clientbou public final class EntityPacketRewriter1_20_2 extends EntityRewriter { public EntityPacketRewriter1_20_2(final Protocol1_20To1_20_2 protocol) { - super(protocol); + super(protocol, Types1_20.META_TYPES.optionalComponentType, Types1_20.META_TYPES.booleanType); } @Override diff --git a/common/src/main/resources/assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt b/common/src/main/resources/assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt index 40e5ea48ad5215f01e40516387279a7f99ff057c..b48b4806c74d7661c2fbb99b82c509367612c328 100644 GIT binary patch literal 7481 zcmdU!X^#=Wu!>W3syY6T@GOSWQ>o$cM}o#|wD zW|-;Cfyg05zzf6!4IZTx6$Am#DvwWo@;*_(`#?eP1T}c#?{&YPneOe`lveS zdCu~j<$03lNuDS1W^xAdPyiPW!C@%EER>-FS3(W&b8-%j!ZA1wuYs%KwQwz52gG9X z2DlMUz)f&7+yZZeH;LrG4-dh^K-}^_fFHt-;K%S2_$mAheh$BYU&5pCEBG}KxBTPq z8+Zbqgx|vN;P>zc_#^xYo`R==T;$0`{;zNvo`Ju?-+}z({|Wzsf5WpPghmQ&V1Nnj zU_l2gf)p%J*la&sOX_UAvg=KISEQhmU1*`;44mk%_!x~r%-LMX_FbOpggF-MU1cO2_C5c{Y0`q5rF9(9wb~%hg z9tz-McJ=_F0!z~2oA)t!dGw?z(dMUgDUI`?{+5@kGy+Gou zF<@V7Kj4Ff57y`4^I;`i6t>JlpEyiV46@K*3f&Vwy*K5T{O!3AN|uprgSv8!X%F4u(BuG|Stzmo6OuqxDq@=r}t z%2MIm;)-4M-09-{$YtXjIN=6L2bEGkC}|m)f@#Qwn<*hm$v;_@@Bq9Fc0dmsTeD7S zF5bhkHoj?hxT#9mqENYd=up&x`_W(Lx`s`iZMR8wN~4ajmm zI5syklipXfr_}JEtcVPIwp&Gu(YHM+KW-O`YIsOig}MuF%_%y$w9==hhU-&%%0;(U zXqp<4ZoMipRkvbP)+f)0=JfZr(4g(=?~D4ev+DB04XgV5Wp%TI{zSNM|A4Gbn5=I) zn6x(BaeLk7UCoh5*S8+sUSD39*j45yq{_$WkesWxzT{Y?Tq9TsLc@~QLgS9@6`X3a z*obV@VwW9rbNn1lP-ga#(wIkI4BE=><$3Zc1km zvGm2|GGQ}^$>%z)rf!-a(}u)A!_7v}VlspER3LTWQJrzn5TH?nxuy7Wf;$6 zlThPej1*au#AvK2TA4M_+bidVX88pdCr5QAXVovNKig2^l+=%c{qeY;3(S zJ7c>=*)V@~)tN0HakPT1fr5fv%Dbg}w&vzbnWHKLS+~U9!=Cm6J<9{RqvdigQz_ch zG~CKyXgav1Wc*KAs||8%6-U{h$?0z?SrL`@&07^0SEDIeqecDx&rVUY83Je@ma~J2 ze9^Aef}xbGo-bVUoQi0Z16ehasMmKUs#p7W&V0QE*ORlFO<*9=fEg}aQ3KRSO1kIk z^yaFiEPu0JA57J}a>>DEkI&3>k&6(MDbW=&-4u~v;mnNmv|g$1cF|y}7Y%y3vxs)k zt(HsK#&Fypf2K?}MJKBvuSQd0%C%{ERlqu1Va9!3B>(;>D&f-GC{(0IYo2_ z8H?)HDT|gupj+ikmx5O9CoRbgKWkAlg0$(}Xfr(hzSd#XIrYO5orL2v+Qx5&rbRGXPpG?yP617pu^NG>$|Q? z+ZPQS*Co;{sp7dTs5oD+IhxIKL7JL(k0z;E*3W_#BsVXH9mQ&s#1MYO@s9VbMf~nRpR^&fh_&#y~ delta 985 zcmZXT%TE(g6vpqgbK5##grS{Rc~ep>bm)Ueixqj8UwHy3~VF=I2&olBa>Way7=- ztDV{DgWY$+Efi{Ht3Xd((}(-6x`tGe$#i!9*Uzk4m?!Mut&Ie(}geWkTdIRrTbIRrTbIRrTbIRtqf zym#& z?jBpRMaRr4V0HHBaIJBJ3rRX@4hlo$m3xF?>X&a2cADE8XR5hc(Z|GiG8UsVITDI9Ic_FmX0mg-T&WbRom15#ey<=Rwo0?SX4c~7qeemtJJgka4#k%OX+$LITwC^7fnU8hQSHI!SF6EX> zjL}FSA~1RxP!V?n3gS^9n8KKnFO>@`X5r#E**pZywOX;l&{F?zRZ6)+5pwg24vE)_ zVL9n^tZ434lz%DhDC=qvaaJ`DH`P|eK}{KVRJDIppIbL%UdrA)joo~)jQ<1@mgs`k zVL2L<)f7*;QnXBuG|TAxqTjC@LG%N*M{Rv+DVwh@7gp9xTjg8}^xibPKII%zr { +public final class Protocol1_98To_99 extends BackwardsProtocol { // ViaBackwards uses its own mappings and also needs a translatablerewriter for translation mappings public static final BackwardsMappings MAPPINGS = new BackwardsMappings("1.99", "1.98", Protocol1_20_3To1_20_2.class); private final EntityPacketRewriter1_99 entityRewriter = new EntityPacketRewriter1_99(this); private final BlockItemPacketRewriter1_99 itemRewriter = new BlockItemPacketRewriter1_99(this); - private final TranslatableRewriter translatableRewriter = new TranslatableRewriter<>(this, ReadType.NBT); + private final TranslatableRewriter translatableRewriter = new TranslatableRewriter<>(this, ReadType.NBT); public Protocol1_98To_99() { - super(ClientboundPackets1_20_2.class, ClientboundPackets1_20_2.class, ServerboundPackets1_20_2.class, ServerboundPackets1_20_2.class); + super(ClientboundPackets1_20_3.class, ClientboundPackets1_20_3.class, ServerboundPackets1_20_3.class, ServerboundPackets1_20_3.class); } @Override protected void registerPackets() { super.registerPackets(); - final TagRewriter tagRewriter = new TagRewriter<>(this); - tagRewriter.registerGeneric(ClientboundPackets1_20_2.TAGS); + final TagRewriter tagRewriter = new TagRewriter<>(this); + tagRewriter.registerGeneric(ClientboundPackets1_20_3.TAGS); - final SoundRewriter soundRewriter = new SoundRewriter<>(this); - soundRewriter.register1_19_3Sound(ClientboundPackets1_20_2.SOUND); - soundRewriter.registerSound(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.registerSound(ClientboundPackets1_20_3.ENTITY_SOUND); + soundRewriter.registerStopSound(ClientboundPackets1_20_3.STOP_SOUND); - new StatisticsRewriter<>(this).register(ClientboundPackets1_20_2.STATISTICS); + new StatisticsRewriter<>(this).register(ClientboundPackets1_20_3.STATISTICS); // Registers translatable mappings (missing a whole bunch still) - //translatableRewriter.registerOpenWindow(ClientboundPackets1_20_2.OPEN_WINDOW); // Handled by registerOpenWindow in item rewriters - translatableRewriter.registerComponentPacket(ClientboundPackets1_20_2.ACTIONBAR); - translatableRewriter.registerComponentPacket(ClientboundPackets1_20_2.TITLE_TEXT); - translatableRewriter.registerComponentPacket(ClientboundPackets1_20_2.TITLE_SUBTITLE); - translatableRewriter.registerBossBar(ClientboundPackets1_20_2.BOSSBAR); - translatableRewriter.registerComponentPacket(ClientboundPackets1_20_2.DISCONNECT); - translatableRewriter.registerTabList(ClientboundPackets1_20_2.TAB_LIST); - translatableRewriter.registerCombatKill1_20(ClientboundPackets1_20_2.COMBAT_KILL); - translatableRewriter.registerComponentPacket(ClientboundPackets1_20_2.SYSTEM_CHAT); - translatableRewriter.registerComponentPacket(ClientboundPackets1_20_2.DISGUISED_CHAT); + //translatableRewriter.registerOpenWindow(ClientboundPackets1_20_3.OPEN_WINDOW); // Handled by registerOpenWindow in item rewriters + translatableRewriter.registerComponentPacket(ClientboundPackets1_20_3.ACTIONBAR); + translatableRewriter.registerComponentPacket(ClientboundPackets1_20_3.TITLE_TEXT); + translatableRewriter.registerComponentPacket(ClientboundPackets1_20_3.TITLE_SUBTITLE); + translatableRewriter.registerBossBar(ClientboundPackets1_20_3.BOSSBAR); + translatableRewriter.registerComponentPacket(ClientboundPackets1_20_3.DISCONNECT); + translatableRewriter.registerTabList(ClientboundPackets1_20_3.TAB_LIST); + translatableRewriter.registerCombatKill1_20(ClientboundPackets1_20_3.COMBAT_KILL); + translatableRewriter.registerComponentPacket(ClientboundPackets1_20_3.SYSTEM_CHAT); + translatableRewriter.registerComponentPacket(ClientboundPackets1_20_3.DISGUISED_CHAT); translatableRewriter.registerPing(); } @Override public void init(final UserConnection user) { - addEntityTracker(user, new EntityTrackerBase(user, EntityTypes1_19_4.PLAYER)); + addEntityTracker(user, new EntityTrackerBase(user, EntityTypes1_20_3.PLAYER)); } @Override @@ -108,7 +108,7 @@ public final class Protocol1_98To_99 extends BackwardsProtocol getTranslatableRewriter() { + public TranslatableRewriter getTranslatableRewriter() { return translatableRewriter; } diff --git a/template/src/main/java/com/viaversion/viabackwards/template/protocol/rewriter/BlockItemPacketRewriter1_99.java b/template/src/main/java/com/viaversion/viabackwards/template/protocol/rewriter/BlockItemPacketRewriter1_99.java index 77957c37..0772a7c7 100644 --- a/template/src/main/java/com/viaversion/viabackwards/template/protocol/rewriter/BlockItemPacketRewriter1_99.java +++ b/template/src/main/java/com/viaversion/viabackwards/template/protocol/rewriter/BlockItemPacketRewriter1_99.java @@ -21,15 +21,15 @@ import com.viaversion.viabackwards.api.rewriters.ItemRewriter; import com.viaversion.viabackwards.template.protocol.Protocol1_98To_99; 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.protocols.protocol1_20_3to1_20_2.packet.ServerboundPackets1_20_3; import com.viaversion.viaversion.rewriter.BlockRewriter; // To replace if needed: // ChunkType1_20_2 // RecipeRewriter1_20_2 -public final class BlockItemPacketRewriter1_99 extends ItemRewriter { +public final class BlockItemPacketRewriter1_99 extends ItemRewriter { public BlockItemPacketRewriter1_99(final Protocol1_98To_99 protocol) { super(protocol, Type.ITEM1_20_2, Type.ITEM1_20_2_ARRAY); @@ -37,26 +37,26 @@ public final class BlockItemPacketRewriter1_99 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); - // registerOpenWindow(ClientboundPackets1_20_2.OPEN_WINDOW); - registerSetCooldown(ClientboundPackets1_20_2.COOLDOWN); - registerWindowItems1_17_1(ClientboundPackets1_20_2.WINDOW_ITEMS); - registerSetSlot1_17_1(ClientboundPackets1_20_2.SET_SLOT); - registerAdvancements1_20_3(ClientboundPackets1_20_2.ADVANCEMENTS); - registerEntityEquipmentArray(ClientboundPackets1_20_2.ENTITY_EQUIPMENT); - registerClickWindow1_17_1(ServerboundPackets1_20_2.CLICK_WINDOW); - registerTradeList1_19(ClientboundPackets1_20_2.TRADE_LIST); - registerCreativeInvAction(ServerboundPackets1_20_2.CREATIVE_INVENTORY_ACTION); - registerWindowPropertyEnchantmentHandler(ClientboundPackets1_20_2.WINDOW_PROPERTY); - registerSpawnParticle1_19(ClientboundPackets1_20_2.SPAWN_PARTICLE); + // registerOpenWindow(ClientboundPackets1_20_3.OPEN_WINDOW); + registerSetCooldown(ClientboundPackets1_20_3.COOLDOWN); + registerWindowItems1_17_1(ClientboundPackets1_20_3.WINDOW_ITEMS); + registerSetSlot1_17_1(ClientboundPackets1_20_3.SET_SLOT); + registerAdvancements1_20_3(ClientboundPackets1_20_3.ADVANCEMENTS); + registerEntityEquipmentArray(ClientboundPackets1_20_3.ENTITY_EQUIPMENT); + registerClickWindow1_17_1(ServerboundPackets1_20_3.CLICK_WINDOW); + registerTradeList1_19(ClientboundPackets1_20_3.TRADE_LIST); + registerCreativeInvAction(ServerboundPackets1_20_3.CREATIVE_INVENTORY_ACTION); + 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/template/src/main/java/com/viaversion/viabackwards/template/protocol/rewriter/EntityPacketRewriter1_99.java b/template/src/main/java/com/viaversion/viabackwards/template/protocol/rewriter/EntityPacketRewriter1_99.java index 50f71063..46eeaaff 100644 --- a/template/src/main/java/com/viaversion/viabackwards/template/protocol/rewriter/EntityPacketRewriter1_99.java +++ b/template/src/main/java/com/viaversion/viabackwards/template/protocol/rewriter/EntityPacketRewriter1_99.java @@ -19,29 +19,29 @@ package com.viaversion.viabackwards.template.protocol.rewriter; import com.viaversion.viabackwards.api.rewriters.EntityRewriter; import com.viaversion.viabackwards.template.protocol.Protocol1_98To_99; -import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_19_4; import com.viaversion.viaversion.api.minecraft.entities.EntityType; +import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_20_3; import com.viaversion.viaversion.api.protocol.packet.State; import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers; import com.viaversion.viaversion.api.type.Type; 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.packet.ClientboundPackets1_20_3; // Replace if needed // Types1_OLD // Types1_20_3 -public final class EntityPacketRewriter1_99 extends EntityRewriter { +public final class EntityPacketRewriter1_99 extends EntityRewriter { public EntityPacketRewriter1_99(final Protocol1_98To_99 protocol) { - super(protocol); + super(protocol, Types1_20_3.META_TYPES.optionalComponentType, Types1_20_3.META_TYPES.booleanType); } @Override public void registerPackets() { - registerTrackerWithData1_19(ClientboundPackets1_20_2.SPAWN_ENTITY, EntityTypes1_19_4.FALLING_BLOCK); - registerMetadataRewriter(ClientboundPackets1_20_2.ENTITY_METADATA, /*Types1_OLD.METADATA_LIST, */Types1_20_3.METADATA_LIST); // Specify old and new metadata list if changed - registerRemoveEntities(ClientboundPackets1_20_2.REMOVE_ENTITIES); + registerTrackerWithData1_19(ClientboundPackets1_20_3.SPAWN_ENTITY, EntityTypes1_20_3.FALLING_BLOCK); + registerMetadataRewriter(ClientboundPackets1_20_3.ENTITY_METADATA, /*Types1_OLD.METADATA_LIST, */Types1_20_3.METADATA_LIST); // Specify old and new metadata list if changed + registerRemoveEntities(ClientboundPackets1_20_3.REMOVE_ENTITIES); protocol.registerClientbound(State.CONFIGURATION, ClientboundConfigurationPackets1_20_2.REGISTRY_DATA, new PacketHandlers() { @Override @@ -52,7 +52,7 @@ public final class EntityPacketRewriter1_99 extends EntityRewriter { + filter().filterFamily(EntityTypes1_20_3.MINECART_ABSTRACT).index(11).handler((event, meta) -> { final int blockState = meta.value(); meta.setValue(protocol.getMappingData().getNewBlockStateId(blockState)); }); @@ -116,11 +116,11 @@ public final class EntityPacketRewriter1_99 extends EntityRewriter