17
17
*/
18
18
package com .viaversion .viabackwards .protocol .v1_20_3to1_20_2 .rewriter ;
19
19
20
+ import com .viaversion .nbt .tag .CompoundTag ;
21
+ import com .viaversion .nbt .tag .StringTag ;
20
22
import com .viaversion .viabackwards .api .rewriters .BackwardsItemRewriter ;
21
23
import com .viaversion .viabackwards .protocol .v1_20_3to1_20_2 .Protocol1_20_3To1_20_2 ;
24
+ import com .viaversion .viaversion .api .Via ;
25
+ import com .viaversion .viaversion .api .connection .UserConnection ;
22
26
import com .viaversion .viaversion .api .data .ParticleMappings ;
27
+ import com .viaversion .viaversion .api .minecraft .blockentity .BlockEntity ;
23
28
import com .viaversion .viaversion .api .protocol .packet .PacketWrapper ;
24
29
import com .viaversion .viaversion .api .protocol .remapper .PacketHandlers ;
25
30
import com .viaversion .viaversion .api .type .Types ;
26
31
import com .viaversion .viaversion .api .type .types .chunk .ChunkType1_20_2 ;
27
32
import com .viaversion .viaversion .api .type .types .version .Types1_20_3 ;
33
+ import com .viaversion .viaversion .libs .gson .JsonElement ;
28
34
import com .viaversion .viaversion .protocols .v1_20_2to1_20_3 .packet .ClientboundPacket1_20_3 ;
29
35
import com .viaversion .viaversion .protocols .v1_20_2to1_20_3 .packet .ClientboundPackets1_20_3 ;
30
36
import com .viaversion .viaversion .protocols .v1_20_2to1_20_3 .rewriter .RecipeRewriter1_20_3 ;
31
37
import com .viaversion .viaversion .protocols .v1_20to1_20_2 .packet .ServerboundPacket1_20_2 ;
32
38
import com .viaversion .viaversion .protocols .v1_20to1_20_2 .packet .ServerboundPackets1_20_2 ;
33
39
import com .viaversion .viaversion .rewriter .BlockRewriter ;
40
+ import com .viaversion .viaversion .util .ComponentUtil ;
41
+ import com .viaversion .viaversion .util .SerializerVersion ;
42
+ import com .viaversion .viaversion .util .StringUtil ;
43
+ import java .util .logging .Level ;
34
44
35
45
public final class BlockItemPacketRewriter1_20_3 extends BackwardsItemRewriter <ClientboundPacket1_20_3 , ServerboundPacket1_20_2 , Protocol1_20_3To1_20_2 > {
36
46
@@ -45,8 +55,8 @@ public void registerPackets() {
45
55
blockRewriter .registerBlockUpdate (ClientboundPackets1_20_3 .BLOCK_UPDATE );
46
56
blockRewriter .registerSectionBlocksUpdate1_20 (ClientboundPackets1_20_3 .SECTION_BLOCKS_UPDATE );
47
57
blockRewriter .registerLevelEvent (ClientboundPackets1_20_3 .LEVEL_EVENT , 1010 , 2001 );
48
- blockRewriter .registerLevelChunk1_19 (ClientboundPackets1_20_3 .LEVEL_CHUNK_WITH_LIGHT , ChunkType1_20_2 ::new );
49
- blockRewriter .registerBlockEntityData (ClientboundPackets1_20_3 .BLOCK_ENTITY_DATA );
58
+ blockRewriter .registerLevelChunk1_19 (ClientboundPackets1_20_3 .LEVEL_CHUNK_WITH_LIGHT , ChunkType1_20_2 ::new , this :: updateBlockEntity );
59
+ blockRewriter .registerBlockEntityData (ClientboundPackets1_20_3 .BLOCK_ENTITY_DATA , this :: updateBlockEntity );
50
60
51
61
registerCooldown (ClientboundPackets1_20_3 .COOLDOWN );
52
62
registerSetContent1_17_1 (ClientboundPackets1_20_3 .CONTAINER_SET_CONTENT );
@@ -156,4 +166,25 @@ public void handleCraftingShaped(final PacketWrapper wrapper) {
156
166
wrapper .read (Types .OPTIONAL_FLOAT ); // Sound range
157
167
});
158
168
}
169
+
170
+ private void updateBlockEntity (final UserConnection connection , final BlockEntity blockEntity ) {
171
+ final CompoundTag tag = blockEntity .tag ();
172
+ if (tag == null ) {
173
+ return ;
174
+ }
175
+
176
+ final StringTag customName = tag .getStringTag ("CustomName" );
177
+ if (customName == null ) {
178
+ return ;
179
+ }
180
+
181
+ try {
182
+ final JsonElement updatedComponent = ComponentUtil .convertJson (customName .getValue (), SerializerVersion .V1_20_3 , SerializerVersion .V1_19_4 );
183
+ customName .setValue (updatedComponent .toString ());
184
+ } catch (final Exception e ) {
185
+ if (!Via .getConfig ().isSuppressTextComponentConversionWarnings ()) {
186
+ protocol .getLogger ().log (Level .SEVERE , "Error during custom name conversion: " + StringUtil .forLogging (customName .getValue ()), e );
187
+ }
188
+ }
189
+ }
159
190
}
0 commit comments