ChatRestriction.java

net.minecraft.client.multiplayer.chat.ChatRestriction

信息

  • 全限定名:net.minecraft.client.multiplayer.chat.ChatRestriction
  • 类型:public enum
  • 包:net.minecraft.client.multiplayer.chat
  • 源码路径:src/main/java/net/minecraft/client/multiplayer/chat/ChatRestriction.java
  • 起始行号:L18
  • 职责:

    TODO

字段/常量

  • permissionSet, permissionSet, permissionSet, permissionSet

    • 类型: CHAT_AND_COMMANDS_DISABLED_BY_OPTIONS(Component.translatable(),Optional.of(ChatRestriction.Action.GO_TO_CHAT_SETTINGS)) { public void modifyPermissions(Set<Permission> permissionSet) { ChatRestriction.disableCommands(permissionSet); ChatRestriction.disablePlayerMessages(
    • 修饰符: public public public public
    • 源码定位: L19
    • 说明:

      TODO

  • display

    • 类型: Component
    • 修饰符: private final
    • 源码定位: L47
    • 说明:

      TODO

  • action

    • 类型: Optional<ChatRestriction.Action>
    • 修饰符: private final
    • 源码定位: L48
    • 说明:

      TODO

内部类/嵌套类型

  • net.minecraft.client.multiplayer.chat.ChatRestriction.Action
    • 类型: record
    • 修饰符: public
    • 源码定位: L76
    • 说明:

      TODO

构造器

private ChatRestriction(Component display, Optional<ChatRestriction.Action> action) @ L50

  • 构造器名:ChatRestriction
  • 源码定位:L50
  • 修饰符:private

参数:

  • display: Component
  • action: Optional<ChatRestriction.Action>

说明:

TODO

方法

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

public Component display() @ L55

  • 方法名:display
  • 源码定位:L55
  • 返回类型:Component
  • 修饰符:public

参数:

说明:

TODO

public Optional<ChatRestriction.Action> action() @ L59

  • 方法名:action
  • 源码定位:L59
  • 返回类型:Optional<ChatRestriction.Action>
  • 修饰符:public

参数:

说明:

TODO

private static void disablePlayerMessages(Set<Permission> permissionSet) @ L63

  • 方法名:disablePlayerMessages
  • 源码定位:L63
  • 返回类型:void
  • 修饰符:private static

参数:

  • permissionSet: Set

说明:

TODO

private static void disableCommands(Set<Permission> permissionSet) @ L68

  • 方法名:disableCommands
  • 源码定位:L68
  • 返回类型:void
  • 修饰符:private static

参数:

  • permissionSet: Set

说明:

TODO

public abstract void modifyPermissions(Set<Permission> permissionSet) @ L73

  • 方法名:modifyPermissions
  • 源码定位:L73
  • 返回类型:void
  • 修饰符:public abstract

参数:

  • permissionSet: Set

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public enum ChatRestriction {
    CHAT_AND_COMMANDS_DISABLED_BY_OPTIONS(
        Component.translatable("chat_restriction.chat_and_commands_disabled_by_options"), Optional.of(ChatRestriction.Action.GO_TO_CHAT_SETTINGS)
    ) {
        @Override
        public void modifyPermissions(Set<Permission> permissionSet) {
            ChatRestriction.disableCommands(permissionSet);
            ChatRestriction.disablePlayerMessages(permissionSet);
        }
    },
    CHAT_DISABLED_BY_OPTIONS(Component.translatable("chat_restriction.chat_disabled_by_options"), Optional.of(ChatRestriction.Action.GO_TO_CHAT_SETTINGS)) {
        @Override
        public void modifyPermissions(Set<Permission> permissionSet) {
            ChatRestriction.disablePlayerMessages(permissionSet);
        }
    },
    DISABLED_BY_LAUNCHER(Component.translatable("chat_restriction.disabled_by_launcher"), Optional.empty()) {
        @Override
        public void modifyPermissions(Set<Permission> permissionSet) {
            ChatRestriction.disablePlayerMessages(permissionSet);
        }
    },
    DISABLED_BY_PROFILE(Component.translatable("chat_restriction.disabled_by_profile"), Optional.of(ChatRestriction.Action.GO_TO_ACCOUNT)) {
        @Override
        public void modifyPermissions(Set<Permission> permissionSet) {
            ChatRestriction.disablePlayerMessages(permissionSet);
        }
    };
 
    private final Component display;
    private final Optional<ChatRestriction.Action> action;
 
    private ChatRestriction(Component display, Optional<ChatRestriction.Action> action) {
        this.display = display;
        this.action = action;
    }
 
    public Component display() {
        return this.display;
    }
 
    public Optional<ChatRestriction.Action> action() {
        return this.action;
    }
 
    private static void disablePlayerMessages(Set<Permission> permissionSet) {
        permissionSet.remove(Permissions.CHAT_SEND_MESSAGES);
        permissionSet.remove(Permissions.CHAT_RECEIVE_PLAYER_MESSAGES);
    }
 
    private static void disableCommands(Set<Permission> permissionSet) {
        permissionSet.remove(Permissions.CHAT_SEND_COMMANDS);
        permissionSet.remove(Permissions.CHAT_RECEIVE_SYSTEM_MESSAGES);
    }
 
    public abstract void modifyPermissions(Set<Permission> permissionSet);
 
    @OnlyIn(Dist.CLIENT)
    public record Action(Component title, BiConsumer<Minecraft, Screen> runnable) {
        public static final ChatRestriction.Action GO_TO_ACCOUNT = new ChatRestriction.Action(
            Component.translatable("chat_restriction.disabled_by_profile.action"),
            (minecraft, screen) -> ConfirmLinkScreen.confirmLinkNow(screen, CommonLinks.ACCOUNT_SETTINGS, true)
        );
        public static final ChatRestriction.Action GO_TO_CHAT_SETTINGS = new ChatRestriction.Action(
            Component.translatable("chat_restriction.chat_disabled_by_options.action"),
            (minecraft, screen) -> minecraft.setScreen(new ChatOptionsScreen(screen, minecraft.options))
        );
    }
}

引用的其他类

  • ConfirmLinkScreen

    • 引用位置: 方法调用
    • 关联成员: ConfirmLinkScreen.confirmLinkNow()
  • ChatOptionsScreen

    • 引用位置: 构造调用
    • 关联成员: ChatOptionsScreen()
  • Component

    • 引用位置: 参数/字段/方法调用/返回值
    • 关联成员: Component.translatable()
  • Permission

    • 引用位置: 参数/字段