ServerboundSetCommandBlockPacket.java

net.minecraft.network.protocol.game.ServerboundSetCommandBlockPacket

信息

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

    TODO

字段/常量

  • STREAM_CODEC

    • 类型: StreamCodec<FriendlyByteBuf,ServerboundSetCommandBlockPacket>
    • 修饰符: public static final
    • 源码定位: L11
    • 说明:

      TODO

  • FLAG_TRACK_OUTPUT

    • 类型: int
    • 修饰符: private static final
    • 源码定位: L14
    • 说明:

      TODO

  • FLAG_CONDITIONAL

    • 类型: int
    • 修饰符: private static final
    • 源码定位: L15
    • 说明:

      TODO

  • FLAG_AUTOMATIC

    • 类型: int
    • 修饰符: private static final
    • 源码定位: L16
    • 说明:

      TODO

  • pos

    • 类型: BlockPos
    • 修饰符: private final
    • 源码定位: L17
    • 说明:

      TODO

  • command

    • 类型: String
    • 修饰符: private final
    • 源码定位: L18
    • 说明:

      TODO

  • trackOutput

    • 类型: boolean
    • 修饰符: private final
    • 源码定位: L19
    • 说明:

      TODO

  • conditional

    • 类型: boolean
    • 修饰符: private final
    • 源码定位: L20
    • 说明:

      TODO

  • automatic

    • 类型: boolean
    • 修饰符: private final
    • 源码定位: L21
    • 说明:

      TODO

  • mode

    • 类型: CommandBlockEntity.Mode
    • 修饰符: private final
    • 源码定位: L22
    • 说明:

      TODO

内部类/嵌套类型

构造器

public ServerboundSetCommandBlockPacket(BlockPos pos, String command, CommandBlockEntity.Mode mode, boolean trackOutput, boolean conditional, boolean automatic) @ L24

  • 构造器名:ServerboundSetCommandBlockPacket
  • 源码定位:L24
  • 修饰符:public

参数:

  • pos: BlockPos
  • command: String
  • mode: CommandBlockEntity.Mode
  • trackOutput: boolean
  • conditional: boolean
  • automatic: boolean

说明:

TODO

private ServerboundSetCommandBlockPacket(FriendlyByteBuf input) @ L35

  • 构造器名:ServerboundSetCommandBlockPacket
  • 源码定位:L35
  • 修饰符:private

参数:

  • input: FriendlyByteBuf

说明:

TODO

方法

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

private void write(FriendlyByteBuf output) @ L45

  • 方法名:write
  • 源码定位:L45
  • 返回类型:void
  • 修饰符:private

参数:

  • output: FriendlyByteBuf

说明:

TODO

public PacketType<ServerboundSetCommandBlockPacket> type() @ L65

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

参数:

说明:

TODO

public void handle(ServerGamePacketListener listener) @ L70

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

参数:

  • listener: ServerGamePacketListener

说明:

TODO

public BlockPos getPos() @ L74

  • 方法名:getPos
  • 源码定位:L74
  • 返回类型:BlockPos
  • 修饰符:public

参数:

说明:

TODO

public String getCommand() @ L78

  • 方法名:getCommand
  • 源码定位:L78
  • 返回类型:String
  • 修饰符:public

参数:

说明:

TODO

public boolean isTrackOutput() @ L82

  • 方法名:isTrackOutput
  • 源码定位:L82
  • 返回类型:boolean
  • 修饰符:public

参数:

说明:

TODO

public boolean isConditional() @ L86

  • 方法名:isConditional
  • 源码定位:L86
  • 返回类型:boolean
  • 修饰符:public

参数:

说明:

TODO

public boolean isAutomatic() @ L90

  • 方法名:isAutomatic
  • 源码定位:L90
  • 返回类型:boolean
  • 修饰符:public

参数:

说明:

TODO

public CommandBlockEntity.Mode getMode() @ L94

  • 方法名:getMode
  • 源码定位:L94
  • 返回类型:CommandBlockEntity.Mode
  • 修饰符:public

参数:

说明:

TODO

代码

public class ServerboundSetCommandBlockPacket implements Packet<ServerGamePacketListener> {
    public static final StreamCodec<FriendlyByteBuf, ServerboundSetCommandBlockPacket> STREAM_CODEC = Packet.codec(
        ServerboundSetCommandBlockPacket::write, ServerboundSetCommandBlockPacket::new
    );
    private static final int FLAG_TRACK_OUTPUT = 1;
    private static final int FLAG_CONDITIONAL = 2;
    private static final int FLAG_AUTOMATIC = 4;
    private final BlockPos pos;
    private final String command;
    private final boolean trackOutput;
    private final boolean conditional;
    private final boolean automatic;
    private final CommandBlockEntity.Mode mode;
 
    public ServerboundSetCommandBlockPacket(
        BlockPos pos, String command, CommandBlockEntity.Mode mode, boolean trackOutput, boolean conditional, boolean automatic
    ) {
        this.pos = pos;
        this.command = command;
        this.trackOutput = trackOutput;
        this.conditional = conditional;
        this.automatic = automatic;
        this.mode = mode;
    }
 
    private ServerboundSetCommandBlockPacket(FriendlyByteBuf input) {
        this.pos = input.readBlockPos();
        this.command = input.readUtf();
        this.mode = input.readEnum(CommandBlockEntity.Mode.class);
        int flags = input.readByte();
        this.trackOutput = (flags & 1) != 0;
        this.conditional = (flags & 2) != 0;
        this.automatic = (flags & 4) != 0;
    }
 
    private void write(FriendlyByteBuf output) {
        output.writeBlockPos(this.pos);
        output.writeUtf(this.command);
        output.writeEnum(this.mode);
        int flags = 0;
        if (this.trackOutput) {
            flags |= 1;
        }
 
        if (this.conditional) {
            flags |= 2;
        }
 
        if (this.automatic) {
            flags |= 4;
        }
 
        output.writeByte(flags);
    }
 
    @Override
    public PacketType<ServerboundSetCommandBlockPacket> type() {
        return GamePacketTypes.SERVERBOUND_SET_COMMAND_BLOCK;
    }
 
    public void handle(ServerGamePacketListener listener) {
        listener.handleSetCommandBlock(this);
    }
 
    public BlockPos getPos() {
        return this.pos;
    }
 
    public String getCommand() {
        return this.command;
    }
 
    public boolean isTrackOutput() {
        return this.trackOutput;
    }
 
    public boolean isConditional() {
        return this.conditional;
    }
 
    public boolean isAutomatic() {
        return this.automatic;
    }
 
    public CommandBlockEntity.Mode getMode() {
        return this.mode;
    }
}

引用的其他类