minecraft-src/net/minecraft/network/protocol/game/ServerboundSetJigsawBlockPacket.java
2025-07-04 02:00:41 +03:00

112 lines
3.2 KiB
Java

package net.minecraft.network.protocol.game;
import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.PacketType;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.entity.JigsawBlockEntity;
public class ServerboundSetJigsawBlockPacket implements Packet<ServerGamePacketListener> {
public static final StreamCodec<FriendlyByteBuf, ServerboundSetJigsawBlockPacket> STREAM_CODEC = Packet.codec(
ServerboundSetJigsawBlockPacket::write, ServerboundSetJigsawBlockPacket::new
);
private final BlockPos pos;
private final ResourceLocation name;
private final ResourceLocation target;
private final ResourceLocation pool;
private final String finalState;
private final JigsawBlockEntity.JointType joint;
private final int selectionPriority;
private final int placementPriority;
public ServerboundSetJigsawBlockPacket(
BlockPos pos,
ResourceLocation name,
ResourceLocation target,
ResourceLocation pool,
String finalState,
JigsawBlockEntity.JointType joint,
int selectionPriority,
int placementPriority
) {
this.pos = pos;
this.name = name;
this.target = target;
this.pool = pool;
this.finalState = finalState;
this.joint = joint;
this.selectionPriority = selectionPriority;
this.placementPriority = placementPriority;
}
private ServerboundSetJigsawBlockPacket(FriendlyByteBuf buffer) {
this.pos = buffer.readBlockPos();
this.name = buffer.readResourceLocation();
this.target = buffer.readResourceLocation();
this.pool = buffer.readResourceLocation();
this.finalState = buffer.readUtf();
this.joint = (JigsawBlockEntity.JointType)JigsawBlockEntity.JointType.CODEC.byName(buffer.readUtf(), JigsawBlockEntity.JointType.ALIGNED);
this.selectionPriority = buffer.readVarInt();
this.placementPriority = buffer.readVarInt();
}
/**
* Writes the raw packet data to the data stream.
*/
private void write(FriendlyByteBuf buffer) {
buffer.writeBlockPos(this.pos);
buffer.writeResourceLocation(this.name);
buffer.writeResourceLocation(this.target);
buffer.writeResourceLocation(this.pool);
buffer.writeUtf(this.finalState);
buffer.writeUtf(this.joint.getSerializedName());
buffer.writeVarInt(this.selectionPriority);
buffer.writeVarInt(this.placementPriority);
}
@Override
public PacketType<ServerboundSetJigsawBlockPacket> type() {
return GamePacketTypes.SERVERBOUND_SET_JIGSAW_BLOCK;
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
public void handle(ServerGamePacketListener handler) {
handler.handleSetJigsawBlock(this);
}
public BlockPos getPos() {
return this.pos;
}
public ResourceLocation getName() {
return this.name;
}
public ResourceLocation getTarget() {
return this.target;
}
public ResourceLocation getPool() {
return this.pool;
}
public String getFinalState() {
return this.finalState;
}
public JigsawBlockEntity.JointType getJoint() {
return this.joint;
}
public int getSelectionPriority() {
return this.selectionPriority;
}
public int getPlacementPriority() {
return this.placementPriority;
}
}