Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,57 @@ public void register() {
});
}

public void registerLevelParticles(C packetType) {
protocol.registerClientbound(packetType, new PacketHandlers() {
@Override
public void register() {
map(Types.INT);
map(Types.BOOLEAN);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.INT);

handler(wrapper -> {
final int id = wrapper.get(Types.INT, 0);
if (id != 46 && id != 37 && id != 38) { // falling_dust, block_crack, block_dust
return;
}
int data = wrapper.read(Types.VAR_INT);
final int blockId = data & 0xFFF;
final int blockData = data >> 12;
final IdAndData mapped = handleBlock(blockId, blockData);
if (mapped != null) {
data = mapped.getId() | (mapped.getData() << 12);
}
wrapper.write(Types.VAR_INT, data);
});

handler(wrapper -> {
final int id = wrapper.get(Types.INT, 0);
if (id != 36) { // iconcrack
return;
}
int itemId = wrapper.read(Types.VAR_INT);
int itemData = wrapper.read(Types.VAR_INT);
MappedLegacyBlockItem mapped = getMappedItem(itemId, itemData);
if (mapped != null) {
itemId = mapped.getId();
if (mapped.getData() != -1) {
itemData = mapped.getData();
}
}
wrapper.write(Types.VAR_INT, itemId);
wrapper.write(Types.VAR_INT, itemData);
});
}
});
}

@Override
public @Nullable Item handleItemToClient(UserConnection connection, @Nullable Item item) {
if (item == null) return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public BlockItemPacketRewriter1_10(Protocol1_10To1_9_3 protocol) {
protected void registerPackets() {
registerBlockChange(ClientboundPackets1_9_3.BLOCK_UPDATE);
registerMultiBlockChange(ClientboundPackets1_9_3.CHUNK_BLOCKS_UPDATE);
registerLevelParticles(ClientboundPackets1_9_3.LEVEL_PARTICLES);

registerSetSlot(ClientboundPackets1_9_3.CONTAINER_SET_SLOT);
registerSetContent(ClientboundPackets1_9_3.CONTAINER_SET_CONTENT);
Expand All @@ -65,26 +66,10 @@ protected void registerPackets() {
});

// Particle
protocol.registerClientbound(ClientboundPackets1_9_3.LEVEL_PARTICLES, new PacketHandlers() {
@Override
public void register() {
map(Types.INT);
map(Types.BOOLEAN);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.FLOAT);
map(Types.INT);

handler(wrapper -> {
int id = wrapper.get(Types.INT, 0);
if (id == 46) { // new falling_dust
wrapper.set(Types.INT, 0, 38); // -> block_dust
}
});
protocol.appendClientbound(ClientboundPackets1_9_3.LEVEL_PARTICLES, wrapper -> {
final int id = wrapper.get(Types.INT, 0);
if (id == 46) { // new falling_dust
wrapper.set(Types.INT, 0, 38); // -> block_dust
}
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ public BlockItemPacketRewriter1_11(Protocol1_11To1_10 protocol) {
protected void registerPackets() {
registerBlockChange(ClientboundPackets1_9_3.BLOCK_UPDATE);
registerMultiBlockChange(ClientboundPackets1_9_3.CHUNK_BLOCKS_UPDATE);
registerLevelParticles(ClientboundPackets1_9_3.LEVEL_PARTICLES);

protocol.registerClientbound(ClientboundPackets1_9_3.CONTAINER_SET_SLOT, new PacketHandlers() {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public BlockItemPacketRewriter1_12(Protocol1_12To1_11_1 protocol) {
protected void registerPackets() {
registerBlockChange(ClientboundPackets1_12.BLOCK_UPDATE);
registerMultiBlockChange(ClientboundPackets1_12.CHUNK_BLOCKS_UPDATE);
registerLevelParticles(ClientboundPackets1_12.LEVEL_PARTICLES);

protocol.registerClientbound(ClientboundPackets1_12.MAP_ITEM_DATA, new PacketHandlers() {
@Override
Expand Down