权限系统决定你能用哪些命令、能进哪些世界、菜单里能看到哪几项。大多数人进服就在某个组里,用不着管它。
查自己的权限
用菜单里的“权限”,或者:
/rsp user <你的名字> info
/rsp user <玩家> check rcc.fly
/rsp 是 /rswperm 的别名。第一条列出所在的组和继承的规则,第二条查某一项。
组和阶梯
一个组可以有多个父组,权限从父组继承。给新人加能力,改 visitor 组就行。
阶梯是一串有顺序的组:
visitor → member → admin
阶梯上判定向上放行:member 能做的,admin 自动能做。有了顺序,插入或删除一级、比较高低、升级降级都能直接完成。
判定顺序
相关规则排序后取第一条:
| 顺位 | 比较 | 胜出 |
|---|---|---|
| 1 | 键的具体程度 | 更具体 |
| 2 | 上下文的具体程度 | 更具体 |
| 3 | 继承距离 | 更近 |
| 4 | 权重 | 更大 |
| 5 | 值 | 拒绝 |
| 6 | 键名 | 字典序 |
| 7 | 出处 | 字典序 |
第 1 档排在第 3 档前面,“先给一整包、再去掉一项”的写法才有效。第 6、7 档保证同级规则的结果不随插件加载顺序变化。
排查
/rsp why <玩家> <节点>
按上面的顺序列出所有候选规则和最终结果,末尾标出每个上下文提供方的状态:[通]、[失败] 或 [已隔离]。提供方失败时,带条件的规则不会出现在候选表里。
事件门禁
可以拦截原版行为,比如破坏方块、打开容器、攻击实体。改完立即生效。
/rsp guard list
/rsp guard on <id>
/rsp guard off <id>
guard list 显示三种状态:
[开] 配置开着,事件已订阅,正在拦截
[开·订阅失败] 配置开着,事件没订阅上,拦不住任何人
[关] 配置关着
管理员命令
user <玩家> info | check <节点> | setgroup | addgroup <组> | delgroup <组>
user <玩家> set <节点> <true|false> | unset <节点> | promote | demote [阶梯]
group list | info <组> | create | delete | set | unset | parent add|del
track list | show <阶梯> | insert <阶梯> <组> [插在谁上面] | remove
why <玩家> <节点>
nodes | guard list|on|off <id> | providers | status | reload
promote、demote 沿阶梯走一格,不会出现“不在任何组里”的中间状态。
网页管理界面
默认关闭。需要在配置里把 enabled 设为 true 并填写非空 token,token 为空时拒绝启动。默认只监听 127.0.0.1,绑定其他地址时日志里会有警告。
补充
- 组没变但权限变了,多半是组的配置改了,用
/rsp why查是哪条规则。 - 某个世界不能飞,可能是权限带了世界条件,也可能是世界本身不许飞(见多世界)。
- 组改名不会同步到引用它的阶梯和准入条件,改之前用
/rsp providers和/rsp track list查引用。 - 没装权限插件时,其他插件按“离线”处理,不会报错。