简体中文
命令与权限
/emakistation 的全部子命令, 权限节点, 按工作站的访问权限, 以及队列长度的权限档, 方便随手查
EmakiStation 的命令在运行时注册, 不在 paper-plugin.yml 里声明 commands: 段, 这一点和系列内其他模块一样
主命令是 /emakistation, 别名 /estation, /est. 你什么都不带地敲一条, 或者敲了无法识别的子命令, 都会打印帮助
子命令
| 用法 | 权限 | 说明 |
|---|---|---|
/emakistation | 无 | 打印帮助 |
/emakistation help | 无 | 同不带参数, 打印帮助 |
/emakistation open <工作站> | emakistation.use + 该工作站访问权限 | 打开工作站界面 |
/emakistation dismantle <工作站> | emakistation.dismantle + 该分解站访问权限 | 打开分解界面 |
/emakistation queue | emakistation.use | 查看自己的队列 |
/emakistation claim | emakistation.use | 领取待领取的产物 |
/emakistation cancel <工作站> <序号> | emakistation.use | 取消队列条目, 序号从 1 开始 |
/emakistation list [工作站] | emakistation.use | 列出工作站, 或者列出某个工作站的配方. 可在控制台执行 |
/emakistation reload | emakistation.reload | 重载配置, 工作站, 配方与界面模板. 可在控制台执行 |
/emakistation debug | emakistation.debug | 调试开关, 参数与其他模块的 debug 子命令一致. 可在控制台执行 |
/emakistation admin queue <玩家> | emakistation.admin | 查看指定玩家的队列, 会异步加载离线玩家数据. 玩家名必须能在服务端缓存里找到, 否则报未知玩家. 可在控制台执行 |
下面这些子命令里, open, dismantle, queue, claim, cancel 要求你以玩家身份执行 (在控制台敲会提示仅限玩家). list, reload, debug, admin 则允许在控制台执行. 子命令表共 10 个可补全项 (help, open, dismantle, queue, claim, cancel, list, reload, debug, admin), 其中 help 只用于打印帮助
敲 open, cancel, list 时, 第二个参数会自动补全成已加载的合成工作站 id; dismantle 补全成已加载的分解站 id. 第一个参数的补全表里还包含 help. debug 的补全来自 CoreLib 的 debug 子命令
权限节点
paper-plugin.yml 声明的权限及默认值:
| 权限 | 默认 | 作用 |
|---|---|---|
emakistation.use | true | 使用工作站界面与队列相关子命令 |
emakistation.purchase | true | 购买额外队列位 |
emakistation.dismantle | true | 使用分解界面 |
emakistation.reload | op | 重载配置 |
emakistation.debug | op | 调试开关 |
emakistation.admin | op | 管理员操作 |
你可能会好奇 emakistation.purchase 为什么没有放进 emakistation.queue.* 下面: 那个前缀已经被队列长度分级占用, 混在一起会让两种含义难以分辨. 另外, 购买还需要 config.yml 的 queue.purchase.enabled 与工作站的 queue.allow_purchase 同时为 true
按工作站的访问权限
工作站与分解站各自有一套独立的访问权限前缀. 你把配置里的 permission 留空时, 插件会自动改用按 id 生成的节点:
| 类型 | 配置键 | 留空时使用的节点 |
|---|---|---|
| 合成工作站 | stations/<id>.yml 的 permission | emakistation.access.<id> |
| 分解站 | stations_dismantle/<id>.yml 的 permission | emakistation.dismantle.access.<id> |
这两个前缀没有写在描述符里, 因为节点名取决于你配了哪些工作站. 给玩家开放示例工作站与示例分解站:
text
emakistation.access.blacksmith
emakistation.dismantle.access.example_dismantle队列长度权限档
你启用 queue.permission_tiers 后, emakistation.queue.<n> 中数字最大的一档生效, <n> 就是队列长度. 你没有任何该前缀权限时, 队列保持 base_length 不变
text
emakistation.queue.8
emakistation.queue.16同时拿着上面两个节点时, 生效的是 16. 记住这个规律: 权限档取代基础长度, 而付费队列位叠加在生效档之上, 最终统一被工作站的 queue.max_length 截断
线程说明
任何会碰到玩家窗口或背包的子命令, 都会先切到该玩家自己的线程 (owner 线程) 上执行, 因为这条命令可能来自控制台, 或者来自另一个玩家的线程. 在 Folia 上是实体调度器里的该玩家线程, 在 Paper 上是主服务器线程