OutgoingChatMessage.java

net.minecraft.network.chat.OutgoingChatMessage

信息

  • 全限定名:net.minecraft.network.chat.OutgoingChatMessage
  • 类型:public interface
  • 包:net.minecraft.network.chat
  • 源码路径:src/main/java/net/minecraft/network/chat/OutgoingChatMessage.java
  • 起始行号:L5
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

  • net.minecraft.network.chat.OutgoingChatMessage.Disguised

    • 类型: record
    • 修饰符: public
    • 源码定位: L16
    • 说明:

      TODO

  • net.minecraft.network.chat.OutgoingChatMessage.Player

    • 类型: record
    • 修饰符: public
    • 源码定位: L23
    • 说明:

      TODO

构造器

方法

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

Component content() @ L6

  • 方法名:content
  • 源码定位:L6
  • 返回类型:Component
  • 修饰符:package-private

参数:

说明:

TODO

void sendToPlayer(ServerPlayer player, boolean filtered, ChatType.Bound chatType) @ L8

  • 方法名:sendToPlayer
  • 源码定位:L8
  • 返回类型:void
  • 修饰符:package-private

参数:

  • player: ServerPlayer
  • filtered: boolean
  • chatType: ChatType.Bound

说明:

TODO

static OutgoingChatMessage create(PlayerChatMessage message) @ L10

  • 方法名:create
  • 源码定位:L10
  • 返回类型:OutgoingChatMessage
  • 修饰符:static

参数:

  • message: PlayerChatMessage

说明:

TODO

代码

public interface OutgoingChatMessage {
    Component content();
 
    void sendToPlayer(ServerPlayer player, boolean filtered, ChatType.Bound chatType);
 
    static OutgoingChatMessage create(PlayerChatMessage message) {
        return (OutgoingChatMessage)(message.isSystem()
            ? new OutgoingChatMessage.Disguised(message.decoratedContent())
            : new OutgoingChatMessage.Player(message));
    }
 
    public record Disguised(Component content) implements OutgoingChatMessage {
        @Override
        public void sendToPlayer(ServerPlayer player, boolean filtered, ChatType.Bound chatType) {
            player.connection.sendDisguisedChatMessage(this.content, chatType);
        }
    }
 
    public record Player(PlayerChatMessage message) implements OutgoingChatMessage {
        @Override
        public Component content() {
            return this.message.decoratedContent();
        }
 
        @Override
        public void sendToPlayer(ServerPlayer player, boolean filtered, ChatType.Bound chatType) {
            PlayerChatMessage filteredMessage = this.message.filter(filtered);
            if (!filteredMessage.isFullyFiltered()) {
                player.connection.sendPlayerChatMessage(filteredMessage, chatType);
            }
        }
    }
}

引用的其他类