mirror of
https://github.com/ViaVersion/ViaBackwards.git
synced 2024-11-24 12:35:43 +01:00
More work
This commit is contained in:
parent
5cd34e6fa8
commit
5269a610d1
@ -20,7 +20,10 @@ package com.viaversion.viabackwards.protocol.v1_21_2to1_21.rewriter;
|
||||
import com.viaversion.viabackwards.api.rewriters.BackwardsStructuredItemRewriter;
|
||||
import com.viaversion.viabackwards.protocol.v1_21_2to1_21.Protocol1_21_2To1_21;
|
||||
import com.viaversion.viaversion.api.connection.UserConnection;
|
||||
import com.viaversion.viaversion.api.minecraft.HolderSet;
|
||||
import com.viaversion.viaversion.api.minecraft.Particle;
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.minecraft.item.StructuredItem;
|
||||
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_20_2;
|
||||
@ -31,7 +34,9 @@ import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ServerboundPac
|
||||
import com.viaversion.viaversion.protocols.v1_20_5to1_21.packet.ClientboundPackets1_21;
|
||||
import com.viaversion.viaversion.protocols.v1_21to1_21_2.packet.ClientboundPacket1_21_2;
|
||||
import com.viaversion.viaversion.protocols.v1_21to1_21_2.packet.ClientboundPackets1_21_2;
|
||||
import com.viaversion.viaversion.protocols.v1_21to1_21_2.rewriter.RecipeRewriter1_21_2;
|
||||
import com.viaversion.viaversion.rewriter.BlockRewriter;
|
||||
import com.viaversion.viaversion.rewriter.SoundRewriter;
|
||||
|
||||
import static com.viaversion.viaversion.protocols.v1_21to1_21_2.rewriter.BlockItemPacketRewriter1_21_2.downgradeItemData;
|
||||
import static com.viaversion.viaversion.protocols.v1_21to1_21_2.rewriter.BlockItemPacketRewriter1_21_2.updateItemData;
|
||||
@ -107,6 +112,92 @@ public final class BlockItemPacketRewriter1_21_2 extends BackwardsStructuredItem
|
||||
final int slot = wrapper.read(Types.VAR_INT);
|
||||
wrapper.write(Types.SHORT, (short) slot);
|
||||
});
|
||||
|
||||
protocol.registerClientbound(ClientboundPackets1_21_2.EXPLODE, wrapper -> {
|
||||
wrapper.passthrough(Types.DOUBLE); // Center X
|
||||
wrapper.passthrough(Types.DOUBLE); // Center Y
|
||||
wrapper.passthrough(Types.DOUBLE); // Center Z
|
||||
|
||||
// TODO
|
||||
wrapper.write(Types.FLOAT, 0F); // Power
|
||||
wrapper.write(Types.VAR_INT, 0); // No blocks affected
|
||||
|
||||
double knockbackX = 0;
|
||||
double knockbackY = 0;
|
||||
double knockbackZ = 0;
|
||||
if (wrapper.read(Types.BOOLEAN)) {
|
||||
knockbackX = wrapper.read(Types.DOUBLE);
|
||||
knockbackY = wrapper.read(Types.DOUBLE);
|
||||
knockbackZ = wrapper.read(Types.DOUBLE);
|
||||
}
|
||||
wrapper.write(Types.FLOAT, (float) knockbackX);
|
||||
wrapper.write(Types.FLOAT, (float) knockbackY);
|
||||
wrapper.write(Types.FLOAT, (float) knockbackZ);
|
||||
|
||||
wrapper.write(Types.VAR_INT, 0); // Block interaction type
|
||||
|
||||
final Particle explosionParticle = wrapper.read(Types1_21.PARTICLE);
|
||||
rewriteParticle(wrapper.user(), explosionParticle);
|
||||
// As small and large explosion particle
|
||||
wrapper.write(Types1_21_2.PARTICLE, explosionParticle);
|
||||
wrapper.write(Types1_21_2.PARTICLE, explosionParticle);
|
||||
|
||||
new SoundRewriter<>(protocol).soundHolderHandler().handle(wrapper);
|
||||
});
|
||||
|
||||
new RecipeRewriter1_21_2<>(protocol) {
|
||||
@Override
|
||||
protected void handleIngredient(final PacketWrapper wrapper) {
|
||||
wrapper.write(mappedItemArrayType(), ingredient(wrapper));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleCraftingShaped(final PacketWrapper wrapper) {
|
||||
wrapper.passthrough(Types.STRING); // Group
|
||||
wrapper.passthrough(Types.VAR_INT); // Crafting book category
|
||||
wrapper.passthrough(Types.VAR_INT); // Width
|
||||
wrapper.passthrough(Types.VAR_INT); // Height
|
||||
|
||||
final int ingredients = wrapper.read(Types.VAR_INT);
|
||||
for (int i = 0; i < ingredients; i++) {
|
||||
wrapper.write(mappedItemArrayType(), ingredient(wrapper));
|
||||
}
|
||||
|
||||
wrapper.write(mappedItemType(), rewrite(wrapper.user(), wrapper.read(itemType()))); // Result
|
||||
wrapper.passthrough(Types.BOOLEAN); // Show notification
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleCraftingShapeless(final PacketWrapper wrapper) {
|
||||
wrapper.passthrough(Types.STRING); // Group
|
||||
wrapper.passthrough(Types.VAR_INT); // Crafting book category
|
||||
|
||||
// Move below
|
||||
final Item result = rewrite(wrapper.user(), wrapper.read(itemType()));
|
||||
|
||||
final int ingredients = wrapper.passthrough(Types.VAR_INT);
|
||||
for (int i = 0; i < ingredients; i++) {
|
||||
wrapper.write(mappedItemArrayType(), ingredient(wrapper));
|
||||
}
|
||||
|
||||
wrapper.write(mappedItemType(), result);
|
||||
}
|
||||
|
||||
private Item[] ingredient(final PacketWrapper wrapper) {
|
||||
final HolderSet ingredient = wrapper.read(Types.HOLDER_SET).rewrite(id -> protocol.getMappingData().getNewItemId(id));
|
||||
if (ingredient.hasTagKey()) {
|
||||
// TODO
|
||||
return new Item[]{new StructuredItem(1, 1)};
|
||||
}
|
||||
|
||||
final int[] ids = ingredient.ids();
|
||||
final Item[] items = new Item[ids.length];
|
||||
for (int i = 0; i < ids.length; i++) {
|
||||
items[i] = new StructuredItem(ids[i], 1);
|
||||
}
|
||||
return items;
|
||||
}
|
||||
}.register1_20_5(ClientboundPackets1_21_2.UPDATE_RECIPES);
|
||||
}
|
||||
|
||||
private void updateContainerId(final PacketWrapper wrapper) {
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user