Skip to content

Commit a94d067

Browse files
Use new ParticleRewriter (#901)
1 parent 8af8319 commit a94d067

File tree

41 files changed

+282
-127
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+282
-127
lines changed

common/src/main/java/com/viaversion/viabackwards/api/rewriters/BackwardsStructuredItemRewriter.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import com.viaversion.viabackwards.api.data.BackwardsMappingData;
2626
import com.viaversion.viabackwards.api.data.MappedItem;
2727
import com.viaversion.viaversion.api.connection.UserConnection;
28-
import com.viaversion.viaversion.api.minecraft.Particle;
2928
import com.viaversion.viaversion.api.minecraft.data.StructuredDataContainer;
3029
import com.viaversion.viaversion.api.minecraft.data.StructuredDataKey;
3130
import com.viaversion.viaversion.api.minecraft.item.Item;
@@ -35,7 +34,6 @@
3534
import com.viaversion.viaversion.rewriter.StructuredItemRewriter;
3635
import java.util.ArrayList;
3736
import java.util.List;
38-
import java.util.function.Function;
3937
import org.checkerframework.checker.nullness.qual.Nullable;
4038

4139
public class BackwardsStructuredItemRewriter<C extends ClientboundPacketType, S extends ServerboundPacketType,
@@ -44,10 +42,9 @@ public class BackwardsStructuredItemRewriter<C extends ClientboundPacketType, S
4442
public BackwardsStructuredItemRewriter(
4543
T protocol,
4644
Type<Item> itemType, Type<Item[]> itemArrayType, Type<Item> mappedItemType, Type<Item[]> mappedItemArrayType,
47-
Type<Item> itemCostType, Type<Item> optionalItemCostType, Type<Item> mappedItemCostType, Type<Item> mappedOptionalItemCostType,
48-
Type<Particle> particleType, Type<Particle> mappedParticleType
45+
Type<Item> itemCostType, Type<Item> optionalItemCostType, Type<Item> mappedItemCostType, Type<Item> mappedOptionalItemCostType
4946
) {
50-
super(protocol, itemType, itemArrayType, mappedItemType, mappedItemArrayType, itemCostType, optionalItemCostType, mappedItemCostType, mappedOptionalItemCostType, particleType, mappedParticleType);
47+
super(protocol, itemType, itemArrayType, mappedItemType, mappedItemArrayType, itemCostType, optionalItemCostType, mappedItemCostType, mappedOptionalItemCostType);
5148
}
5249

5350
public BackwardsStructuredItemRewriter(final T protocol, final Type<Item> itemType, final Type<Item[]> itemArrayType, final Type<Item> mappedItemType, final Type<Item[]> mappedItemArrayType) {

common/src/main/java/com/viaversion/viabackwards/api/rewriters/EntityRewriterBase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ public void registerEntityDataTypeHandler(
185185
data.setValue(protocol.getMappingData().getNewBlockStateId(value));
186186
}
187187
} else if (type == particleType) {
188-
rewriteParticle(event.user(), data.value());
188+
protocol.getParticleRewriter().rewriteParticle(event.user(), data.value());
189189
} else if (type == optionalComponentType || type == componentType) {
190190
JsonElement text = data.value();
191191
protocol.getComponentRewriter().processText(event.user(), text);
@@ -215,11 +215,11 @@ public void registerEntityDataTypeHandler1_20_3(
215215
data.setValue(protocol.getMappingData().getNewBlockStateId(value));
216216
}
217217
} else if (type == particleType) {
218-
rewriteParticle(event.user(), data.value());
218+
protocol.getParticleRewriter().rewriteParticle(event.user(), data.value());
219219
} else if (type == particlesType) {
220220
Particle[] particles = data.value();
221221
for (final Particle particle : particles) {
222-
rewriteParticle(event.user(), particle);
222+
protocol.getParticleRewriter().rewriteParticle(event.user(), particle);
223223
}
224224
} else if (type == optionalComponentType || type == componentType) {
225225
protocol.getComponentRewriter().processTag(event.user(), data.value());

common/src/main/java/com/viaversion/viabackwards/protocol/template/BlockItemPacketRewriter1_99.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@ public void registerPackets() {
6161
registerSetEquipment(ClientboundPackets1_21_2.SET_EQUIPMENT);
6262
registerMerchantOffers1_20_5(ClientboundPackets1_21_2.MERCHANT_OFFERS);
6363
registerContainerSetData(ClientboundPackets1_21_2.CONTAINER_SET_DATA);
64-
registerLevelParticles1_20_5(ClientboundPackets1_21_2.LEVEL_PARTICLES);
65-
registerExplosion1_21_2(ClientboundPackets1_21_2.EXPLODE);
6664
registerContainerClick1_21_2(ServerboundPackets1_21_2.CONTAINER_CLICK);
6765
registerSetCreativeModeSlot(ServerboundPackets1_21_2.SET_CREATIVE_MODE_SLOT);
6866

common/src/main/java/com/viaversion/viabackwards/protocol/template/Protocol1_98To1_99.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_20_5;
2626
import com.viaversion.viaversion.api.protocol.packet.provider.PacketTypesProvider;
2727
import com.viaversion.viaversion.api.protocol.packet.provider.SimplePacketTypesProvider;
28+
import com.viaversion.viaversion.api.type.types.version.Types1_21_2;
2829
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
2930
import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ServerboundConfigurationPackets1_20_5;
3031
import com.viaversion.viaversion.protocols.v1_20_5to1_21.Protocol1_20_5To1_21;
@@ -34,6 +35,7 @@
3435
import com.viaversion.viaversion.protocols.v1_21to1_21_2.packet.ServerboundPacket1_21_2;
3536
import com.viaversion.viaversion.protocols.v1_21to1_21_2.packet.ServerboundPackets1_21_2;
3637
import com.viaversion.viaversion.rewriter.ComponentRewriter.ReadType;
38+
import com.viaversion.viaversion.rewriter.ParticleRewriter;
3739
import com.viaversion.viaversion.rewriter.StatisticsRewriter;
3840
import com.viaversion.viaversion.rewriter.TagRewriter;
3941

@@ -47,13 +49,15 @@
4749
// ClientboundConfigurationPackets1_21
4850
// ServerboundConfigurationPackets1_20_5
4951
// EntityTypes1_20_5 (UNMAPPED type)
52+
// Types1_21_2.PARTICLE
5053
// 1.99, 1.98
5154
final class Protocol1_98To1_99 extends BackwardsProtocol<ClientboundPacket1_21_2, ClientboundPacket1_21_2, ServerboundPacket1_21_2, ServerboundPacket1_21_2> {
5255

5356
// ViaBackwards uses its own mappings and also needs a translatablerewriter for translation mappings
5457
public static final BackwardsMappingData MAPPINGS = new BackwardsMappingData("1.99", "1.98", Protocol1_20_5To1_21.class);
5558
private final EntityPacketRewriter1_99 entityRewriter = new EntityPacketRewriter1_99(this);
5659
private final BlockItemPacketRewriter1_99 itemRewriter = new BlockItemPacketRewriter1_99(this);
60+
private final ParticleRewriter<ClientboundPacket1_21_2> particleRewriter = new ParticleRewriter<>(this, Types1_21_2.PARTICLE/*, Types1_OLD.PARTICLE*/);
5761
private final TranslatableRewriter<ClientboundPacket1_21_2> translatableRewriter = new TranslatableRewriter<>(this, ReadType.NBT);
5862
private final TagRewriter<ClientboundPacket1_21_2> tagRewriter = new TagRewriter<>(this);
5963

@@ -89,6 +93,10 @@ protected void registerPackets() {
8993
translatableRewriter.registerComponentPacket(ClientboundPackets1_21_2.DISGUISED_CHAT);
9094
translatableRewriter.registerPlayerInfoUpdate1_21_2(ClientboundPackets1_21_2.PLAYER_INFO_UPDATE);
9195
translatableRewriter.registerPing();
96+
97+
// If needed for any particle, item, or block changes. Extend ParticleRewriter for particle serializer changes
98+
particleRewriter.registerLevelParticles1_20_5(ClientboundPackets1_21_2.LEVEL_PARTICLES);
99+
particleRewriter.registerExplode1_21_2(ClientboundPackets1_21_2.EXPLODE);
92100
}
93101

94102
@Override
@@ -111,6 +119,11 @@ public BlockItemPacketRewriter1_99 getItemRewriter() {
111119
return itemRewriter;
112120
}
113121

122+
@Override
123+
public ParticleRewriter<ClientboundPacket1_21_2> getParticleRewriter() {
124+
return particleRewriter;
125+
}
126+
114127
@Override
115128
public TranslatableRewriter<ClientboundPacket1_21_2> getComponentRewriter() {
116129
return translatableRewriter;

common/src/main/java/com/viaversion/viabackwards/protocol/v1_13_1to1_13/Protocol1_13_1To1_13.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import com.viaversion.viaversion.protocols.v1_12_2to1_13.packet.ServerboundPackets1_13;
4242
import com.viaversion.viaversion.protocols.v1_13to1_13_1.Protocol1_13To1_13_1;
4343
import com.viaversion.viaversion.rewriter.ComponentRewriter;
44+
import com.viaversion.viaversion.rewriter.ParticleRewriter;
4445
import com.viaversion.viaversion.rewriter.StatisticsRewriter;
4546
import com.viaversion.viaversion.rewriter.TagRewriter;
4647
import com.viaversion.viaversion.util.ComponentUtil;
@@ -50,6 +51,7 @@ public class Protocol1_13_1To1_13 extends BackwardsProtocol<ClientboundPackets1_
5051
public static final BackwardsMappingData MAPPINGS = new BackwardsMappingData("1.13.2", "1.13", Protocol1_13To1_13_1.class);
5152
private final EntityPacketRewriter1_13_1 entityRewriter = new EntityPacketRewriter1_13_1(this);
5253
private final ItemPacketRewriter1_13_1 itemRewriter = new ItemPacketRewriter1_13_1(this);
54+
private final ParticleRewriter<ClientboundPackets1_13> particleRewriter = new ParticleRewriter<>(this);
5355
private final TranslatableRewriter<ClientboundPackets1_13> translatableRewriter = new TranslatableRewriter<>(this, ComponentRewriter.ReadType.JSON);
5456
private final TagRewriter<ClientboundPackets1_13> tagRewriter = new TagRewriter<>(this);
5557

@@ -72,6 +74,8 @@ protected void registerPackets() {
7274

7375
new CommandRewriter1_13_1(this).registerDeclareCommands(ClientboundPackets1_13.COMMANDS);
7476

77+
particleRewriter.registerLevelParticles1_13(ClientboundPackets1_13.LEVEL_PARTICLES, Types.FLOAT);
78+
7579
registerServerbound(ServerboundPackets1_13.COMMAND_SUGGESTION, new PacketHandlers() {
7680
@Override
7781
public void register() {
@@ -221,6 +225,11 @@ public ItemPacketRewriter1_13_1 getItemRewriter() {
221225
return itemRewriter;
222226
}
223227

228+
@Override
229+
public ParticleRewriter<ClientboundPackets1_13> getParticleRewriter() {
230+
return particleRewriter;
231+
}
232+
224233
public TranslatableRewriter<ClientboundPackets1_13> translatableRewriter() {
225234
return translatableRewriter;
226235
}

common/src/main/java/com/viaversion/viabackwards/protocol/v1_13_1to1_13/rewriter/EntityPacketRewriter1_13_1.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
import com.viaversion.viaversion.api.minecraft.Particle;
2323
import com.viaversion.viaversion.api.minecraft.entities.EntityType;
2424
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_13;
25-
import com.viaversion.viaversion.api.minecraft.item.Item;
2625
import com.viaversion.viaversion.api.minecraft.entitydata.EntityData;
26+
import com.viaversion.viaversion.api.minecraft.item.Item;
2727
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
2828
import com.viaversion.viaversion.api.type.Types;
2929
import com.viaversion.viaversion.api.type.types.version.Types1_13;
@@ -138,7 +138,7 @@ protected void registerRewrites() {
138138
int value = (int) data.getValue();
139139
data.setValue(protocol.getMappingData().getNewBlockStateId(value));
140140
} else if (data.dataType() == Types1_13.ENTITY_DATA_TYPES.particleType) {
141-
rewriteParticle(event.user(), (Particle) data.getValue());
141+
protocol.getParticleRewriter().rewriteParticle(event.user(), (Particle) data.getValue());
142142
} else if (data.dataType() == Types1_13.ENTITY_DATA_TYPES.optionalComponentType || data.dataType() == Types1_13.ENTITY_DATA_TYPES.componentType) {
143143
JsonElement element = data.value();
144144
protocol.translatableRewriter().processText(event.user(), element);

common/src/main/java/com/viaversion/viabackwards/protocol/v1_13_1to1_13/rewriter/ItemPacketRewriter1_13_1.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
import com.viaversion.viabackwards.protocol.v1_13_1to1_13.Protocol1_13_1To1_13;
2121
import com.viaversion.viaversion.api.minecraft.item.Item;
22-
import com.viaversion.viaversion.api.type.Type;
2322
import com.viaversion.viaversion.api.type.Types;
2423
import com.viaversion.viaversion.protocols.v1_12_2to1_13.packet.ClientboundPackets1_13;
2524
import com.viaversion.viaversion.protocols.v1_12_2to1_13.packet.ServerboundPackets1_13;
@@ -68,7 +67,5 @@ public void registerPackets() {
6867
registerSetEquippedItem(ClientboundPackets1_13.SET_EQUIPPED_ITEM);
6968
registerContainerClick(ServerboundPackets1_13.CONTAINER_CLICK);
7069
registerSetCreativeModeSlot(ServerboundPackets1_13.SET_CREATIVE_MODE_SLOT);
71-
72-
registerLevelParticles(ClientboundPackets1_13.LEVEL_PARTICLES, Types.FLOAT);
7370
}
7471
}

common/src/main/java/com/viaversion/viabackwards/protocol/v1_14to1_13_2/Protocol1_14To1_13_2.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import com.viaversion.viabackwards.api.BackwardsProtocol;
2121
import com.viaversion.viabackwards.api.data.BackwardsMappingData;
2222
import com.viaversion.viabackwards.api.rewriters.TranslatableRewriter;
23-
import com.viaversion.viabackwards.protocol.v1_14to1_13_2.rewriter.CommandRewriter1_14;
2423
import com.viaversion.viabackwards.protocol.v1_14to1_13_2.rewriter.BlockItemPacketRewriter1_14;
24+
import com.viaversion.viabackwards.protocol.v1_14to1_13_2.rewriter.CommandRewriter1_14;
2525
import com.viaversion.viabackwards.protocol.v1_14to1_13_2.rewriter.EntityPacketRewriter1_14;
2626
import com.viaversion.viabackwards.protocol.v1_14to1_13_2.rewriter.PlayerPacketRewriter1_14;
2727
import com.viaversion.viabackwards.protocol.v1_14to1_13_2.rewriter.SoundPacketRewriter1_14;
@@ -38,13 +38,15 @@
3838
import com.viaversion.viaversion.protocols.v1_13_2to1_14.packet.ClientboundPackets1_14;
3939
import com.viaversion.viaversion.protocols.v1_13_2to1_14.packet.ServerboundPackets1_14;
4040
import com.viaversion.viaversion.rewriter.ComponentRewriter;
41+
import com.viaversion.viaversion.rewriter.ParticleRewriter;
4142
import com.viaversion.viaversion.rewriter.StatisticsRewriter;
4243

4344
public class Protocol1_14To1_13_2 extends BackwardsProtocol<ClientboundPackets1_14, ClientboundPackets1_13, ServerboundPackets1_14, ServerboundPackets1_13> {
4445

4546
public static final BackwardsMappingData MAPPINGS = new BackwardsMappingData("1.14", "1.13.2", Protocol1_13_2To1_14.class);
4647
private final EntityPacketRewriter1_14 entityRewriter = new EntityPacketRewriter1_14(this);
4748
private final BlockItemPacketRewriter1_14 itemRewriter = new BlockItemPacketRewriter1_14(this);
49+
private final ParticleRewriter<ClientboundPackets1_14> particleRewriter = new ParticleRewriter<>(this);
4850
private final TranslatableRewriter<ClientboundPackets1_14> translatableRewriter = new TranslatableRewriter<>(this, ComponentRewriter.ReadType.JSON);
4951

5052
public Protocol1_14To1_13_2() {
@@ -63,6 +65,8 @@ protected void registerPackets() {
6365
translatableRewriter.registerTitle(ClientboundPackets1_14.SET_TITLES);
6466
translatableRewriter.registerPing();
6567

68+
particleRewriter.registerLevelParticles1_13(ClientboundPackets1_14.LEVEL_PARTICLES, Types.FLOAT);
69+
6670
new CommandRewriter1_14(this).registerDeclareCommands(ClientboundPackets1_14.COMMANDS);
6771
new PlayerPacketRewriter1_14(this).register();
6872
new SoundPacketRewriter1_14(this).register();
@@ -187,6 +191,11 @@ public BlockItemPacketRewriter1_14 getItemRewriter() {
187191
return itemRewriter;
188192
}
189193

194+
@Override
195+
public ParticleRewriter<ClientboundPackets1_14> getParticleRewriter() {
196+
return particleRewriter;
197+
}
198+
190199
@Override
191200
public TranslatableRewriter<ClientboundPackets1_14> getComponentRewriter() {
192201
return translatableRewriter;

common/src/main/java/com/viaversion/viabackwards/protocol/v1_14to1_13_2/rewriter/BlockItemPacketRewriter1_14.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
package com.viaversion.viabackwards.protocol.v1_14to1_13_2.rewriter;
1919

2020
import com.google.common.collect.ImmutableSet;
21+
import com.viaversion.nbt.tag.CompoundTag;
22+
import com.viaversion.nbt.tag.ListTag;
23+
import com.viaversion.nbt.tag.StringTag;
2124
import com.viaversion.viabackwards.api.rewriters.BackwardsItemRewriter;
2225
import com.viaversion.viabackwards.api.rewriters.EnchantmentRewriter;
2326
import com.viaversion.viabackwards.api.rewriters.TranslatableRewriter;
@@ -35,8 +38,8 @@
3538
import com.viaversion.viaversion.api.minecraft.chunks.PaletteType;
3639
import com.viaversion.viaversion.api.minecraft.entities.EntityType;
3740
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_14;
38-
import com.viaversion.viaversion.api.minecraft.item.Item;
3941
import com.viaversion.viaversion.api.minecraft.entitydata.EntityData;
42+
import com.viaversion.viaversion.api.minecraft.item.Item;
4043
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
4144
import com.viaversion.viaversion.api.type.Types;
4245
import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_13;
@@ -45,9 +48,6 @@
4548
import com.viaversion.viaversion.api.type.types.version.Types1_13_2;
4649
import com.viaversion.viaversion.libs.gson.JsonElement;
4750
import com.viaversion.viaversion.libs.gson.JsonObject;
48-
import com.viaversion.nbt.tag.CompoundTag;
49-
import com.viaversion.nbt.tag.ListTag;
50-
import com.viaversion.nbt.tag.StringTag;
5151
import com.viaversion.viaversion.libs.gson.JsonParseException;
5252
import com.viaversion.viaversion.libs.mcstructs.text.utils.TextUtils;
5353
import com.viaversion.viaversion.protocols.v1_12_2to1_13.Protocol1_12_2To1_13;
@@ -430,8 +430,6 @@ public void register() {
430430
}
431431
});
432432

433-
registerLevelParticles(ClientboundPackets1_14.LEVEL_PARTICLES, Types.FLOAT);
434-
435433
protocol.registerClientbound(ClientboundPackets1_14.MAP_ITEM_DATA, new PacketHandlers() {
436434
@Override
437435
public void register() {

common/src/main/java/com/viaversion/viabackwards/protocol/v1_14to1_13_2/rewriter/EntityPacketRewriter1_14.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@
1717
*/
1818
package com.viaversion.viabackwards.protocol.v1_14to1_13_2.rewriter;
1919

20-
import com.viaversion.viabackwards.api.entities.storage.EntityReplacement;
2120
import com.viaversion.viabackwards.api.entities.storage.EntityPositionHandler;
21+
import com.viaversion.viabackwards.api.entities.storage.EntityReplacement;
2222
import com.viaversion.viabackwards.api.rewriters.LegacyEntityRewriter;
2323
import com.viaversion.viabackwards.protocol.v1_14to1_13_2.Protocol1_14To1_13_2;
2424
import com.viaversion.viabackwards.protocol.v1_14to1_13_2.storage.ChunkLightStorage;
2525
import com.viaversion.viabackwards.protocol.v1_14to1_13_2.storage.DifficultyStorage;
2626
import com.viaversion.viabackwards.protocol.v1_14to1_13_2.storage.EntityPositionStorage1_14;
2727
import com.viaversion.viaversion.api.data.entity.EntityTracker;
28+
import com.viaversion.viaversion.api.minecraft.BlockPosition;
2829
import com.viaversion.viaversion.api.minecraft.ClientWorld;
2930
import com.viaversion.viaversion.api.minecraft.Particle;
30-
import com.viaversion.viaversion.api.minecraft.BlockPosition;
3131
import com.viaversion.viaversion.api.minecraft.VillagerData;
3232
import com.viaversion.viaversion.api.minecraft.entities.EntityType;
3333
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_13;
@@ -377,7 +377,7 @@ protected void registerRewrites() {
377377
filter().type(EntityTypes1_14.ABSTRACT_RAIDER).removeIndex(14); // Celebrating
378378

379379
filter().type(EntityTypes1_14.AREA_EFFECT_CLOUD).index(10).handler((event, data) -> {
380-
rewriteParticle(event.user(), (Particle) data.getValue());
380+
protocol.getParticleRewriter().rewriteParticle(event.user(), (Particle) data.getValue());
381381
});
382382

383383
filter().type(EntityTypes1_14.FIREWORK_ROCKET).index(8).handler((event, data) -> {

0 commit comments

Comments
 (0)