Add getSpawnParticleHandler method to ItemRewriter

This commit is contained in:
KennyTV 2020-12-09 11:03:40 +01:00
parent 52b95eab28
commit a4d1ac3b95
No known key found for this signature in database
GPG Key ID: 6BE3B555EBC5982B
2 changed files with 22 additions and 18 deletions

View File

@ -205,27 +205,31 @@ public class ItemRewriter {
map(Type.FLOAT); // 7 - Offset Z
map(Type.FLOAT); // 8 - Particle Data
map(Type.INT); // 9 - Particle Count
handler(wrapper -> {
int id = wrapper.get(Type.INT, 0);
if (id == -1) return;
ParticleMappings mappings = protocol.getMappingData().getParticleMappings();
if (id == mappings.getBlockId() || id == mappings.getFallingDustId()) {
int data = wrapper.passthrough(Type.VAR_INT);
wrapper.set(Type.VAR_INT, 0, protocol.getMappingData().getNewBlockStateId(data));
} else if (id == mappings.getItemId()) {
toClient.rewrite(wrapper.passthrough(itemType));
}
int newId = protocol.getMappingData().getNewParticleId(id);
if (newId != id) {
wrapper.set(Type.INT, 0, newId);
}
});
handler(getSpawnParticleHandler(itemType, coordType));
}
});
}
public PacketHandler getSpawnParticleHandler(Type<Item> itemType, Type<?> coordType) {
return wrapper -> {
int id = wrapper.get(Type.INT, 0);
if (id == -1) return;
ParticleMappings mappings = protocol.getMappingData().getParticleMappings();
if (id == mappings.getBlockId() || id == mappings.getFallingDustId()) {
int data = wrapper.passthrough(Type.VAR_INT);
wrapper.set(Type.VAR_INT, 0, protocol.getMappingData().getNewBlockStateId(data));
} else if (id == mappings.getItemId()) {
toClient.rewrite(wrapper.passthrough(itemType));
}
int newId = protocol.getMappingData().getNewParticleId(id);
if (newId != id) {
wrapper.set(Type.INT, 0, newId);
}
};
}
// Only sent to the client
public PacketHandler itemArrayHandler(Type<Item[]> type) {
return wrapper -> {

View File

@ -43,8 +43,8 @@ public class EntityPackets {
dimensionName = "minecraft:overworld";
}
wrapper.write(Type.STRING, dimensionName); // dimension type
wrapper.write(Type.STRING, dimensionName); // dimension
wrapper.write(Type.STRING, dimensionName); // world
};
public static final CompoundTag DIMENSIONS_TAG = new CompoundTag("");
private static final String[] WORLD_NAMES = {"minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"};