ClientboundUpdateAdvancementsPacket.java

net.minecraft.network.protocol.game.ClientboundUpdateAdvancementsPacket

信息

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

    TODO

字段/常量

  • STREAM_CODEC

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

      TODO

  • reset

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

      TODO

  • added

    • 类型: List<AdvancementHolder>
    • 修饰符: private final
    • 源码定位: L22
    • 说明:

      TODO

  • removed

    • 类型: Set<Identifier>
    • 修饰符: private final
    • 源码定位: L23
    • 说明:

      TODO

  • progress

    • 类型: Map<Identifier,AdvancementProgress>
    • 修饰符: private final
    • 源码定位: L24
    • 说明:

      TODO

  • showAdvancements

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

      TODO

内部类/嵌套类型

构造器

public ClientboundUpdateAdvancementsPacket(boolean reset, Collection<AdvancementHolder> newAdvancements, Set<Identifier> removedAdvancements, Map<Identifier,AdvancementProgress> progress, boolean showAdvancements) @ L27

  • 构造器名:ClientboundUpdateAdvancementsPacket
  • 源码定位:L27
  • 修饰符:public

参数:

  • reset: boolean
  • newAdvancements: Collection
  • removedAdvancements: Set
  • progress: Map<Identifier,AdvancementProgress>
  • showAdvancements: boolean

说明:

TODO

private ClientboundUpdateAdvancementsPacket(RegistryFriendlyByteBuf input) @ L41

  • 构造器名:ClientboundUpdateAdvancementsPacket
  • 源码定位:L41
  • 修饰符:private

参数:

  • input: RegistryFriendlyByteBuf

说明:

TODO

方法

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

private void write(RegistryFriendlyByteBuf output) @ L49

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

参数:

  • output: RegistryFriendlyByteBuf

说明:

TODO

public PacketType<ClientboundUpdateAdvancementsPacket> type() @ L57

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

参数:

说明:

TODO

public void handle(ClientGamePacketListener listener) @ L62

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

参数:

  • listener: ClientGamePacketListener

说明:

TODO

public List<AdvancementHolder> getAdded() @ L66

  • 方法名:getAdded
  • 源码定位:L66
  • 返回类型:List
  • 修饰符:public

参数:

说明:

TODO

public Set<Identifier> getRemoved() @ L70

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

参数:

说明:

TODO

public Map<Identifier,AdvancementProgress> getProgress() @ L74

  • 方法名:getProgress
  • 源码定位:L74
  • 返回类型:Map<Identifier,AdvancementProgress>
  • 修饰符:public

参数:

说明:

TODO

public boolean shouldReset() @ L78

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

参数:

说明:

TODO

public boolean shouldShowAdvancements() @ L82

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

参数:

说明:

TODO

代码

public class ClientboundUpdateAdvancementsPacket implements Packet<ClientGamePacketListener> {
    public static final StreamCodec<RegistryFriendlyByteBuf, ClientboundUpdateAdvancementsPacket> STREAM_CODEC = Packet.codec(
        ClientboundUpdateAdvancementsPacket::write, ClientboundUpdateAdvancementsPacket::new
    );
    private final boolean reset;
    private final List<AdvancementHolder> added;
    private final Set<Identifier> removed;
    private final Map<Identifier, AdvancementProgress> progress;
    private final boolean showAdvancements;
 
    public ClientboundUpdateAdvancementsPacket(
        boolean reset,
        Collection<AdvancementHolder> newAdvancements,
        Set<Identifier> removedAdvancements,
        Map<Identifier, AdvancementProgress> progress,
        boolean showAdvancements
    ) {
        this.reset = reset;
        this.added = List.copyOf(newAdvancements);
        this.removed = Set.copyOf(removedAdvancements);
        this.progress = Map.copyOf(progress);
        this.showAdvancements = showAdvancements;
    }
 
    private ClientboundUpdateAdvancementsPacket(RegistryFriendlyByteBuf input) {
        this.reset = input.readBoolean();
        this.added = AdvancementHolder.LIST_STREAM_CODEC.decode(input);
        this.removed = input.readCollection(Sets::newLinkedHashSetWithExpectedSize, FriendlyByteBuf::readIdentifier);
        this.progress = input.readMap(FriendlyByteBuf::readIdentifier, AdvancementProgress::fromNetwork);
        this.showAdvancements = input.readBoolean();
    }
 
    private void write(RegistryFriendlyByteBuf output) {
        output.writeBoolean(this.reset);
        AdvancementHolder.LIST_STREAM_CODEC.encode(output, this.added);
        output.writeCollection(this.removed, FriendlyByteBuf::writeIdentifier);
        output.writeMap(this.progress, FriendlyByteBuf::writeIdentifier, (buffer, value) -> value.serializeToNetwork(buffer));
        output.writeBoolean(this.showAdvancements);
    }
 
    @Override
    public PacketType<ClientboundUpdateAdvancementsPacket> type() {
        return GamePacketTypes.CLIENTBOUND_UPDATE_ADVANCEMENTS;
    }
 
    public void handle(ClientGamePacketListener listener) {
        listener.handleUpdateAdvancementsPacket(this);
    }
 
    public List<AdvancementHolder> getAdded() {
        return this.added;
    }
 
    public Set<Identifier> getRemoved() {
        return this.removed;
    }
 
    public Map<Identifier, AdvancementProgress> getProgress() {
        return this.progress;
    }
 
    public boolean shouldReset() {
        return this.reset;
    }
 
    public boolean shouldShowAdvancements() {
        return this.showAdvancements;
    }
}

引用的其他类