McLists一周年快乐
服务器已经添加了详细介绍信息板块
服主可以在管理后台来提交自己服务器介绍信息。
服务器介绍信息提交后,管理人员会进行审核
审核通过后会在服务器详细页面进行显示
提交服务器介绍信息会让新玩家更好的了解你的服务器哦~
添加图片信息,也会让百度等搜索引擎更好的收录您的服务器哦~
管理平台地址:传送门
Player Roles

Player Roles - 玩家角色

适用于Fabric服务器的角色与权限管理系统
fabric 作者 Patbox 支持版本 1.16.4 - 1.21.11
下载量
33,580
关注数
126
数据来源
Modrinth
模组详细介绍

Player Roles for Fabric

这是一个简单的实现,允许通过类似 Discord 的“角色”为玩家分配自定义权限。

角色及其权限在 JSON 文件中定义,该文件可以在运行时轻松修改和重新加载,以便快速迭代。

roles.json 文件位于配置目录中(/config/roles.json)。示例配置可能如下所示:

{
  "admin": {
    "level": 100,
    "overrides": {
      "name_decoration": {
        "style": ["red", "bold"],
        "suffix": {"text": "*"}
      },
      "permission_level": 4,
      "command_feedback": true,
      "commands": {
        ".*": "allow"
      }
    }
  },
  "spectator": {
    "level": 10,
    "overrides": {
      "commands": {
        "gamemode (spectator|adventure)": "allow"
      }
    }
  },
  "mute": {
    "level": 1,
    "overrides": {
      "mute": true
    }
  },
  "everyone": {
    "overrides": {
      "commands": {
        "help": "allow",
        ".*": "deny"
      }
    }
  }
}

但这里发生了什么?这个 JSON 文件声明了三个角色:adminspectatoreveryone

everyone 是默认角色:每个玩家都将拥有这个角色,并且无法移除。

指定的其他角色在 everyone 角色的基础上作为覆盖层生效。

覆盖项

在每个角色声明中,我们列出了一组覆盖项。覆盖项是本模组用于根据角色改变游戏行为的通用系统。

目前支持的覆盖项类型有 commandsnamedecorationchattypemutecommandfeedbackpermissionlevelentity_selectors

当多个角色针对同一事物时,考虑覆盖项如何应用非常重要。此类冲突的解决方式是始终选择等级最高的角色。

因此,在示例中:尽管 everyone 声明除 help 外的所有命令都不允许,但由于 adminspectator 的等级更高,它们将覆盖此行为。

命令

commands 覆盖项用于操纵玩家可以使用的命令。

每个覆盖项条目指定一个正则表达式模式进行匹配,然后指定当模组遇到该模式时的响应策略。

例如,模式 .* 匹配所有可能的命令,而 gamemode (spectator|adventure) 仅匹配旁观者和冒险模式的 gamemode 命令。

然后可以与这些模式一起使用的策略是 allowdeny

allow 将确保玩家被允许使用此命令,而 deny 将阻止玩家使用此命令。

例如:

"commands": {
  "gamemode (spectator|adventure)": "allow"
}

命令覆盖项还可以使用 hidden 规则结果,这将允许使用命令,同时将其从命令建议中隐藏。

名称装饰

name_decoration 覆盖项修改拥有角色的玩家名称的显示方式。这可用于覆盖名称颜色以及添加前缀或后缀文本。

其优先级低于记分板队伍颜色。

名称装饰可以这样声明:

"name_decoration": {
  "prefix": {"text": "[前缀] ", "color": "green"},
  "suffix": {"text": "-后缀"},
  "style": ["#ff0000", "bold", "underline"],
  "contexts": ["chat", "tab_list"]
}

可以可选地声明三个字段:

  • style:接受文本格式化类型或十六进制颜色的列表
  • prefix:接受一个文本组件,该组件将添加在名称之前
  • suffix:接受一个文本组件,该组件将添加在名称之后
  • contexts:接受一组可能的上下文,定义此装饰应应用的位置
  • 接受:chattab_list
  • 默认:应用于所有可能的上下文

聊天类型

chat_type 覆盖项允许为所有拥有角色的玩家替换聊天消息装饰。

这与 Vanilla 的 minecraft:chat_type 注册表集成,可以通过数据包进行修改。

chattype 覆盖项简单地声明应使用的 chattype

"chat_type": "minecraft:say_command"

此示例将替换拥有给定角色的玩家的所有消息,应用 say_command 样式。

需要注意的是,Vanilla 聊天类型注册表在服务器启动时从数据包加载,不能像玩家角色配置那样热重载。

声明自定义聊天类型

自定义聊天类型可以通过自定义数据包在 data//chat_type/ 中声明。

例如,我们可以声明一个 data/mydatapack/chat_type/admin.json

{
  "chat": {
    "decoration": {
      "parameters": ["sender", "content"],
      "style": {},
      "translation_key": "%s: %s <- 一位管理员说了这个!"
    }
  },
  "narration": {
    "decoration": {
      "parameters": ["sender", "content"],
      "style": {},
      "translation_key": "chat.type.text.narrate"
    },
    "priority": "chat"
  }
}

然后可以在覆盖项中这样引用:

"chat_type": "mydatapack:admin"

权限等级

permission_level 覆盖项为分配的玩家设置原版权限等级

这对于与其他模组交互以及本模组不支持的原版功能非常有用。

权限等级这样声明:

"permission_level": 4

禁言

mute 覆盖项的功能非常简单,即阻止分配的玩家在聊天中输入。

禁言这样声明:

"mute": true

命令反馈

默认情况下,所有操作员在另一个玩家运行命令时都会收到全局反馈。

command_feedback 覆盖项允许特定角色接收相同类型的反馈。

命令反馈这样声明:

"command_feedback": true

实体选择器

通常,只有权限等级为 2 或更高的命令源才能使用实体选择器。

entity_selectors 覆盖项允许特定角色使用实体选择器。

可以这样允许实体选择器:

"entity_selectors": true

其他配置

角色还可以通过配置文件应用于命令方块或函数执行器。

例如:

{
  "commands": {
    "apply": {
      "command_block": true,
      "function": true
    },
    "overrides": {
    }
  }
}

让一个角色继承另一个角色的覆盖项也可能很有用。

这可以通过 includes 声明来实现,引用其他等级较低的角色。

例如:

{
  "foo": {
    "includes": ["bar"],
    "overrides": {
      "commands": {
        ".*": "allow"
      }
    }
  },
  "bar": {
    "overrides": {
      "name_decoration": {
        "style": "red"
      }
    }
  }
}

使用此配置,foo 角色将继承红色的 name_decoration

在游戏中应用角色

一旦你对 roles.json 文件进行了修改,你可以使用 /role reload 重新加载它。

所有角色管理都通过 role 命令的各种子命令进行。例如:

  • role assign Gegy admin:将 admin 角色分配给 Gegy
  • role remove Gegy admin:从 Gegy 移除 admin 角色
  • role list Gegy:列出已应用于 Gegy 的所有角色
  • role reload:重新加载 roles.json 配置文件
基本信息
模组名称Player Roles
作者Patbox
下载量33,580
关注数126
支持版本1.16.4 - 1.21.11
加载器fabric
客户端unsupported
服务端required

友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作

历史访问人数:79,705  |  历史访问人次:168,090

今日访问人数:10,345  |  今日访问人次:11,253

昨日访问人数:20,761  |  昨日访问人次:24,774

Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.

Powered by GermMC 京ICP备17023959号-6