ClientboundTrackedWaypointPacket.java

net.minecraft.network.protocol.game.ClientboundTrackedWaypointPacket

信息

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

    TODO

字段/常量

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

      TODO

内部类/嵌套类型

  • net.minecraft.network.protocol.game.ClientboundTrackedWaypointPacket.Operation
    • 类型: enum
    • 修饰符: private static
    • 源码定位: L71
    • 说明:

      TODO

构造器

方法

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

public static ClientboundTrackedWaypointPacket removeWaypoint(UUID identifier) @ L30

  • 方法名:removeWaypoint
  • 源码定位:L30
  • 返回类型:ClientboundTrackedWaypointPacket
  • 修饰符:public static

参数:

  • identifier: UUID

说明:

TODO

public static ClientboundTrackedWaypointPacket addWaypointPosition(UUID identifier, Waypoint.Icon icon, Vec3i position) @ L34

  • 方法名:addWaypointPosition
  • 源码定位:L34
  • 返回类型:ClientboundTrackedWaypointPacket
  • 修饰符:public static

参数:

  • identifier: UUID
  • icon: Waypoint.Icon
  • position: Vec3i

说明:

TODO

public static ClientboundTrackedWaypointPacket updateWaypointPosition(UUID identifier, Waypoint.Icon icon, Vec3i position) @ L38

  • 方法名:updateWaypointPosition
  • 源码定位:L38
  • 返回类型:ClientboundTrackedWaypointPacket
  • 修饰符:public static

参数:

  • identifier: UUID
  • icon: Waypoint.Icon
  • position: Vec3i

说明:

TODO

public static ClientboundTrackedWaypointPacket addWaypointChunk(UUID identifier, Waypoint.Icon icon, ChunkPos chunk) @ L42

  • 方法名:addWaypointChunk
  • 源码定位:L42
  • 返回类型:ClientboundTrackedWaypointPacket
  • 修饰符:public static

参数:

  • identifier: UUID
  • icon: Waypoint.Icon
  • chunk: ChunkPos

说明:

TODO

public static ClientboundTrackedWaypointPacket updateWaypointChunk(UUID identifier, Waypoint.Icon icon, ChunkPos chunk) @ L46

  • 方法名:updateWaypointChunk
  • 源码定位:L46
  • 返回类型:ClientboundTrackedWaypointPacket
  • 修饰符:public static

参数:

  • identifier: UUID
  • icon: Waypoint.Icon
  • chunk: ChunkPos

说明:

TODO

public static ClientboundTrackedWaypointPacket addWaypointAzimuth(UUID identifier, Waypoint.Icon icon, float angle) @ L50

  • 方法名:addWaypointAzimuth
  • 源码定位:L50
  • 返回类型:ClientboundTrackedWaypointPacket
  • 修饰符:public static

参数:

  • identifier: UUID
  • icon: Waypoint.Icon
  • angle: float

说明:

TODO

public static ClientboundTrackedWaypointPacket updateWaypointAzimuth(UUID identifier, Waypoint.Icon icon, float angle) @ L54

  • 方法名:updateWaypointAzimuth
  • 源码定位:L54
  • 返回类型:ClientboundTrackedWaypointPacket
  • 修饰符:public static

参数:

  • identifier: UUID
  • icon: Waypoint.Icon
  • angle: float

说明:

TODO

public PacketType<ClientboundTrackedWaypointPacket> type() @ L58

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

参数:

说明:

TODO

public void handle(ClientGamePacketListener listener) @ L63

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

参数:

  • listener: ClientGamePacketListener

说明:

TODO

public void apply(TrackedWaypointManager manager) @ L67

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

参数:

  • manager: TrackedWaypointManager

说明:

TODO

代码

public record ClientboundTrackedWaypointPacket(ClientboundTrackedWaypointPacket.Operation operation, TrackedWaypoint waypoint)
    implements Packet<ClientGamePacketListener> {
    public static final StreamCodec<RegistryFriendlyByteBuf, ClientboundTrackedWaypointPacket> STREAM_CODEC = StreamCodec.composite(
        ClientboundTrackedWaypointPacket.Operation.STREAM_CODEC,
        ClientboundTrackedWaypointPacket::operation,
        TrackedWaypoint.STREAM_CODEC,
        ClientboundTrackedWaypointPacket::waypoint,
        ClientboundTrackedWaypointPacket::new
    );
 
    public static ClientboundTrackedWaypointPacket removeWaypoint(UUID identifier) {
        return new ClientboundTrackedWaypointPacket(ClientboundTrackedWaypointPacket.Operation.UNTRACK, TrackedWaypoint.empty(identifier));
    }
 
    public static ClientboundTrackedWaypointPacket addWaypointPosition(UUID identifier, Waypoint.Icon icon, Vec3i position) {
        return new ClientboundTrackedWaypointPacket(ClientboundTrackedWaypointPacket.Operation.TRACK, TrackedWaypoint.setPosition(identifier, icon, position));
    }
 
    public static ClientboundTrackedWaypointPacket updateWaypointPosition(UUID identifier, Waypoint.Icon icon, Vec3i position) {
        return new ClientboundTrackedWaypointPacket(ClientboundTrackedWaypointPacket.Operation.UPDATE, TrackedWaypoint.setPosition(identifier, icon, position));
    }
 
    public static ClientboundTrackedWaypointPacket addWaypointChunk(UUID identifier, Waypoint.Icon icon, ChunkPos chunk) {
        return new ClientboundTrackedWaypointPacket(ClientboundTrackedWaypointPacket.Operation.TRACK, TrackedWaypoint.setChunk(identifier, icon, chunk));
    }
 
    public static ClientboundTrackedWaypointPacket updateWaypointChunk(UUID identifier, Waypoint.Icon icon, ChunkPos chunk) {
        return new ClientboundTrackedWaypointPacket(ClientboundTrackedWaypointPacket.Operation.UPDATE, TrackedWaypoint.setChunk(identifier, icon, chunk));
    }
 
    public static ClientboundTrackedWaypointPacket addWaypointAzimuth(UUID identifier, Waypoint.Icon icon, float angle) {
        return new ClientboundTrackedWaypointPacket(ClientboundTrackedWaypointPacket.Operation.TRACK, TrackedWaypoint.setAzimuth(identifier, icon, angle));
    }
 
    public static ClientboundTrackedWaypointPacket updateWaypointAzimuth(UUID identifier, Waypoint.Icon icon, float angle) {
        return new ClientboundTrackedWaypointPacket(ClientboundTrackedWaypointPacket.Operation.UPDATE, TrackedWaypoint.setAzimuth(identifier, icon, angle));
    }
 
    @Override
    public PacketType<ClientboundTrackedWaypointPacket> type() {
        return GamePacketTypes.CLIENTBOUND_WAYPOINT;
    }
 
    public void handle(ClientGamePacketListener listener) {
        listener.handleWaypoint(this);
    }
 
    public void apply(TrackedWaypointManager manager) {
        this.operation.action.accept(manager, this.waypoint);
    }
 
    private static enum Operation {
        TRACK(WaypointManager::trackWaypoint),
        UNTRACK(WaypointManager::untrackWaypoint),
        UPDATE(WaypointManager::updateWaypoint);
 
        private final BiConsumer<TrackedWaypointManager, TrackedWaypoint> action;
        public static final IntFunction<ClientboundTrackedWaypointPacket.Operation> BY_ID = ByIdMap.continuous(
            Enum::ordinal, values(), ByIdMap.OutOfBoundsStrategy.WRAP
        );
        public static final StreamCodec<ByteBuf, ClientboundTrackedWaypointPacket.Operation> STREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, Enum::ordinal);
 
        private Operation(BiConsumer<TrackedWaypointManager, TrackedWaypoint> action) {
            this.action = action;
        }
    }
}

引用的其他类