3232import com .viaversion .viaversion .api .connection .UserConnection ;
3333import com .viaversion .viaversion .api .minecraft .RegistryType ;
3434import com .viaversion .viaversion .api .minecraft .entities .EntityTypes1_16 ;
35- import com .viaversion .viaversion .api .protocol .remapper .PacketHandlers ;
3635import com .viaversion .viaversion .api .type .Types ;
3736import com .viaversion .viaversion .data .entity .EntityTrackerBase ;
3837import com .viaversion .viaversion .protocols .v1_15_2to1_16 .Protocol1_15_2To1_16 ;
4544import com .viaversion .viaversion .rewriter .TagRewriter ;
4645import java .util .UUID ;
4746
48- public class Protocol20w14infiniteTo1_16 extends BackwardsProtocol <ClientboundPackets20w14infinite , ClientboundPackets1_16 , ServerboundPackets20w14infinite , ServerboundPackets1_16 > {
47+ public final class Protocol20w14infiniteTo1_16 extends BackwardsProtocol <ClientboundPackets20w14infinite , ClientboundPackets1_16 , ServerboundPackets20w14infinite , ServerboundPackets1_16 > {
4948
5049 public static final BackwardsMappingData MAPPINGS = new VAFBackwardsMappingData ("20w14infinite" , "1.16" , Protocol1_15_2To1_16 .class );
5150 private static final UUID ZERO_UUID = new UUID (0 , 0 );
@@ -66,105 +65,55 @@ protected void registerPackets() {
6665 particleRewriter .registerLevelParticles1_13 (ClientboundPackets20w14infinite .LEVEL_PARTICLES , Types .DOUBLE );
6766
6867 tagRewriter .register (ClientboundPackets20w14infinite .UPDATE_TAGS , RegistryType .ENTITY );
69- new StatisticsRewriter <>( this ). register ( ClientboundPackets20w14infinite . AWARD_STATS );
68+
7069 final SoundRewriter <ClientboundPackets20w14infinite > soundRewriter = new SoundRewriter <>(this );
7170 soundRewriter .registerSound (ClientboundPackets20w14infinite .SOUND );
7271 soundRewriter .registerSound (ClientboundPackets20w14infinite .SOUND_ENTITY );
7372 soundRewriter .registerNamedSound (ClientboundPackets20w14infinite .CUSTOM_SOUND );
7473 soundRewriter .registerStopSound (ClientboundPackets20w14infinite .STOP_SOUND );
74+
75+ new StatisticsRewriter <>(this ).register (ClientboundPackets20w14infinite .AWARD_STATS );
7576 new RecipeRewriter <>(this ).register (ClientboundPackets20w14infinite .UPDATE_RECIPES );
7677
77- this .registerClientbound (ClientboundPackets20w14infinite .CHAT , new PacketHandlers () {
78- @ Override
79- public void register () {
80- map (Types .COMPONENT );
81- map (Types .BYTE );
82- handler (wrapper -> {
83- wrapper .write (Types .UUID , ZERO_UUID ); // Sender uuid - always send as 'system'
84- });
85- }
78+ registerClientbound (ClientboundPackets20w14infinite .CHAT , wrapper -> {
79+ wrapper .passthrough (Types .COMPONENT );
80+ wrapper .passthrough (Types .BYTE );
81+ wrapper .write (Types .UUID , ZERO_UUID ); // Sender uuid - always send as 'system'
8682 });
8783
88- this .cancelServerbound (ServerboundPackets1_16 .JIGSAW_GENERATE );
89- this .registerServerbound (ServerboundPackets1_16 .INTERACT , new PacketHandlers () {
90- @ Override
91- public void register () {
92- handler (wrapper -> {
93- wrapper .passthrough (Types .VAR_INT ); // Entity Id
94- int action = wrapper .passthrough (Types .VAR_INT );
95- if (action == 0 || action == 2 ) {
96- if (action == 2 ) {
97- // Location
98- wrapper .passthrough (Types .FLOAT );
99- wrapper .passthrough (Types .FLOAT );
100- wrapper .passthrough (Types .FLOAT );
101- }
102-
103- wrapper .passthrough (Types .VAR_INT ); // Hand
104- }
105-
106- // New boolean: Whether the client is sneaking/pressing shift
107- wrapper .read (Types .BOOLEAN );
108- });
84+ cancelServerbound (ServerboundPackets1_16 .JIGSAW_GENERATE );
85+ registerServerbound (ServerboundPackets1_16 .INTERACT , wrapper -> {
86+ wrapper .passthrough (Types .VAR_INT ); // Entity id
87+ final int action = wrapper .passthrough (Types .VAR_INT );
88+ if (action == 0 || action == 2 ) {
89+ if (action == 2 ) {
90+ // Location
91+ wrapper .passthrough (Types .FLOAT );
92+ wrapper .passthrough (Types .FLOAT );
93+ wrapper .passthrough (Types .FLOAT );
94+ }
95+
96+ wrapper .passthrough (Types .VAR_INT ); // Hand
10997 }
98+
99+ wrapper .read (Types .BOOLEAN ); // Whether the client is sneaking/pressing shift
110100 });
111- this .registerServerbound (ServerboundPackets1_16 .PLAYER_ABILITIES , new PacketHandlers () {
112- @ Override
113- public void register () {
114- map (Types .BYTE ); // Flags
115- handler (wrapper -> {
116- final PlayerAbilitiesProvider playerAbilities = Via .getManager ().getProviders ().get (PlayerAbilitiesProvider .class );
117- wrapper .write (Types .FLOAT , playerAbilities .getFlyingSpeed (wrapper .user ()));
118- wrapper .write (Types .FLOAT , playerAbilities .getWalkingSpeed (wrapper .user ()));
119- });
120- }
101+ registerServerbound (ServerboundPackets1_16 .PLAYER_ABILITIES , wrapper -> {
102+ wrapper .passthrough (Types .BYTE ); // Flags
103+
104+ final PlayerAbilitiesProvider playerAbilities = Via .getManager ().getProviders ().get (PlayerAbilitiesProvider .class );
105+ wrapper .write (Types .FLOAT , playerAbilities .getFlyingSpeed (wrapper .user ()));
106+ wrapper .write (Types .FLOAT , playerAbilities .getWalkingSpeed (wrapper .user ()));
121107 });
122108 }
123109
124110 @ Override
125111 protected void onMappingDataLoaded () {
126- int [] wallPostOverrideTag = new int [47 ];
127- int arrayIndex = 0 ;
128- wallPostOverrideTag [arrayIndex ++] = 140 ;
129- wallPostOverrideTag [arrayIndex ++] = 179 ;
130- wallPostOverrideTag [arrayIndex ++] = 264 ;
131- for (int i = 153 ; i <= 158 ; i ++) {
132- wallPostOverrideTag [arrayIndex ++] = i ;
133- }
134- for (int i = 163 ; i <= 168 ; i ++) {
135- wallPostOverrideTag [arrayIndex ++] = i ;
136- }
137- for (int i = 408 ; i <= 439 ; i ++) {
138- wallPostOverrideTag [arrayIndex ++] = i ;
139- }
140-
141- tagRewriter .addTag (RegistryType .BLOCK , "minecraft:wall_post_override" , wallPostOverrideTag );
142- tagRewriter .addTag (RegistryType .BLOCK , "minecraft:beacon_base_blocks" , 133 , 134 , 148 , 265 );
143- tagRewriter .addTag (RegistryType .BLOCK , "minecraft:climbable" , 160 , 241 , 658 );
144- tagRewriter .addTag (RegistryType .BLOCK , "minecraft:fire" , 142 );
145- tagRewriter .addTag (RegistryType .BLOCK , "minecraft:campfires" , 679 );
146- tagRewriter .addTag (RegistryType .BLOCK , "minecraft:fence_gates" , 242 , 467 , 468 , 469 , 470 , 471 );
147- tagRewriter .addTag (RegistryType .BLOCK , "minecraft:unstable_bottom_center" , 242 , 467 , 468 , 469 , 470 , 471 );
148- tagRewriter .addTag (RegistryType .BLOCK , "minecraft:wooden_trapdoors" , 193 , 194 , 195 , 196 , 197 , 198 );
149- tagRewriter .addTag (RegistryType .ITEM , "minecraft:wooden_trapdoors" , 215 , 216 , 217 , 218 , 219 , 220 );
150- tagRewriter .addTag (RegistryType .ITEM , "minecraft:beacon_payment_items" , 529 , 530 , 531 , 760 );
151- tagRewriter .addTag (RegistryType .ENTITY , "minecraft:impact_projectiles" , 2 , 72 , 71 , 37 , 69 , 79 , 83 , 15 , 93 );
152-
153- // The client crashes if we don't send all tags it may use
154- tagRewriter .addEmptyTag (RegistryType .BLOCK , "minecraft:guarded_by_piglins" );
155- tagRewriter .addEmptyTag (RegistryType .BLOCK , "minecraft:soul_speed_blocks" );
156- tagRewriter .addEmptyTag (RegistryType .BLOCK , "minecraft:soul_fire_base_blocks" );
157- tagRewriter .addEmptyTag (RegistryType .BLOCK , "minecraft:non_flammable_wood" );
158- tagRewriter .addEmptyTag (RegistryType .ITEM , "minecraft:non_flammable_wood" );
159-
160- // The rest of not accessed tags added in older versions; #1830
161- tagRewriter .addEmptyTags (RegistryType .BLOCK , "minecraft:bamboo_plantable_on" , "minecraft:beds" , "minecraft:bee_growables" ,
162- "minecraft:beehives" , "minecraft:coral_plants" , "minecraft:crops" , "minecraft:dragon_immune" , "minecraft:flowers" ,
163- "minecraft:portals" , "minecraft:shulker_boxes" , "minecraft:small_flowers" , "minecraft:tall_flowers" , "minecraft:trapdoors" ,
164- "minecraft:underwater_bonemeals" , "minecraft:wither_immune" , "minecraft:wooden_fences" , "minecraft:wooden_trapdoors" );
165- tagRewriter .addEmptyTags (RegistryType .ENTITY , "minecraft:arrows" , "minecraft:beehive_inhabitors" , "minecraft:raiders" , "minecraft:skeletons" );
166- tagRewriter .addEmptyTags (RegistryType .ITEM , "minecraft:beds" , "minecraft:coals" , "minecraft:fences" , "minecraft:flowers" ,
167- "minecraft:lectern_books" , "minecraft:music_discs" , "minecraft:small_flowers" , "minecraft:tall_flowers" , "minecraft:trapdoors" , "minecraft:walls" , "minecraft:wooden_fences" );
112+ tagRewriter .addEmptyTags (RegistryType .ITEM , "minecraft:crimson_stems" , "minecraft:non_flammable_wood" , "minecraft:piglin_loved" ,
113+ "minecraft:piglin_repellents" , "minecraft:soul_fire_base_blocks" , "minecraft:warped_stems" );
114+ tagRewriter .addEmptyTags (RegistryType .BLOCK , "minecraft:crimson_stems" , "minecraft:guarded_by_piglins" , "minecraft:hoglin_repellents" ,
115+ "minecraft:non_flammable_wood" , "minecraft:nylium" , "minecraft:piglin_repellents" , "minecraft:soul_fire_base_blocks" , "minecraft:soul_speed_blocks" ,
116+ "minecraft:strider_warm_blocks" , "minecraft:warped_stems" );
168117 super .onMappingDataLoaded ();
169118 }
170119
@@ -173,6 +122,11 @@ public void init(UserConnection userConnection) {
173122 userConnection .addEntityTracker (this .getClass (), new EntityTrackerBase (userConnection , EntityTypes1_16 .PLAYER ));
174123 }
175124
125+ @ Override
126+ public BackwardsMappingData getMappingData () {
127+ return MAPPINGS ;
128+ }
129+
176130 @ Override
177131 public BlockItemPacketRewriter20w14infinite getItemRewriter () {
178132 return this .itemRewriter ;
@@ -188,9 +142,4 @@ public EntityPacketRewriter20w14infinite getEntityRewriter() {
188142 return this .entityRewriter ;
189143 }
190144
191- @ Override
192- public BackwardsMappingData getMappingData () {
193- return MAPPINGS ;
194- }
195-
196145}
0 commit comments