ServerboundTestInstanceBlockActionPacket.java

net.minecraft.network.protocol.game.ServerboundTestInstanceBlockActionPacket

信息

  • 全限定名:net.minecraft.network.protocol.game.ServerboundTestInstanceBlockActionPacket
  • 类型:public record
  • 包:net.minecraft.network.protocol.game
  • 源码路径:src/main/java/net/minecraft/network/protocol/game/ServerboundTestInstanceBlockActionPacket.java
  • 起始行号:L19
  • 实现:Packet
  • 职责:

    TODO

字段/常量

  • STREAM_CODEC
    • 类型: StreamCodec<RegistryFriendlyByteBuf,ServerboundTestInstanceBlockActionPacket>
    • 修饰符: public static final
    • 源码定位: L21
    • 说明:

      TODO

内部类/嵌套类型

  • net.minecraft.network.protocol.game.ServerboundTestInstanceBlockActionPacket.Action
    • 类型: enum
    • 修饰符: public static
    • 源码定位: L51
    • 说明:

      TODO

构造器

public ServerboundTestInstanceBlockActionPacket(BlockPos pos, ServerboundTestInstanceBlockActionPacket.Action action, Optional<ResourceKey<GameTestInstance>> test, Vec3i size, Rotation rotation, boolean ignoreEntities) @ L31

  • 构造器名:ServerboundTestInstanceBlockActionPacket
  • 源码定位:L31
  • 修饰符:public

参数:

  • pos: BlockPos
  • action: ServerboundTestInstanceBlockActionPacket.Action
  • test: Optional<ResourceKey>
  • size: Vec3i
  • rotation: Rotation
  • ignoreEntities: boolean

说明:

TODO

方法

下面的方法块按源码顺序生成。

public PacketType<ServerboundTestInstanceBlockActionPacket> type() @ L42

  • 方法名:type
  • 源码定位:L42
  • 返回类型:PacketType
  • 修饰符:public

参数:

说明:

TODO

public void handle(ServerGamePacketListener listener) @ L47

  • 方法名:handle
  • 源码定位:L47
  • 返回类型:void
  • 修饰符:public

参数:

  • listener: ServerGamePacketListener

说明:

TODO

代码

public record ServerboundTestInstanceBlockActionPacket(BlockPos pos, ServerboundTestInstanceBlockActionPacket.Action action, TestInstanceBlockEntity.Data data)
    implements Packet<ServerGamePacketListener> {
    public static final StreamCodec<RegistryFriendlyByteBuf, ServerboundTestInstanceBlockActionPacket> STREAM_CODEC = StreamCodec.composite(
        BlockPos.STREAM_CODEC,
        ServerboundTestInstanceBlockActionPacket::pos,
        ServerboundTestInstanceBlockActionPacket.Action.STREAM_CODEC,
        ServerboundTestInstanceBlockActionPacket::action,
        TestInstanceBlockEntity.Data.STREAM_CODEC,
        ServerboundTestInstanceBlockActionPacket::data,
        ServerboundTestInstanceBlockActionPacket::new
    );
 
    public ServerboundTestInstanceBlockActionPacket(
        BlockPos pos,
        ServerboundTestInstanceBlockActionPacket.Action action,
        Optional<ResourceKey<GameTestInstance>> test,
        Vec3i size,
        Rotation rotation,
        boolean ignoreEntities
    ) {
        this(pos, action, new TestInstanceBlockEntity.Data(test, size, rotation, ignoreEntities, TestInstanceBlockEntity.Status.CLEARED, Optional.empty()));
    }
 
    @Override
    public PacketType<ServerboundTestInstanceBlockActionPacket> type() {
        return GamePacketTypes.SERVERBOUND_TEST_INSTANCE_BLOCK_ACTION;
    }
 
    public void handle(ServerGamePacketListener listener) {
        listener.handleTestInstanceBlockAction(this);
    }
 
    public static enum Action {
        INIT(0),
        QUERY(1),
        SET(2),
        RESET(3),
        SAVE(4),
        EXPORT(5),
        RUN(6);
 
        private static final IntFunction<ServerboundTestInstanceBlockActionPacket.Action> BY_ID = ByIdMap.continuous(
            e -> e.id, values(), ByIdMap.OutOfBoundsStrategy.ZERO
        );
        public static final StreamCodec<ByteBuf, ServerboundTestInstanceBlockActionPacket.Action> STREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, e -> e.id);
        private final int id;
 
        private Action(int id) {
            this.id = id;
        }
    }
}

引用的其他类