简体中文
命令与权限
/emakimobs 的全部子命令, 对应的权限节点, 以及可以直接照抄的常用示例如下
主命令是 /emakimobs, 别名 /emobs. 不带子命令执行时输出用法提示; 未知子命令同样输出用法提示
命令列表
所有子命令的 mob_id 参数都区分大小写: 按定义 id 精确匹配, 不存在的 id 会提示未知生物
| 命令 | 权限 | 说明 |
|---|---|---|
/emakimobs spawn <mob_id> [player] | emakimobs.spawn | 在目标玩家所在的位置刷出指定生物. 省略 player 时就是命令执行者自己, 控制台执行时必须写 player. player 按名称精确匹配 (Bukkit.getPlayerExact), 名字不存在或玩家离线时会提示缺少目标 |
/emakimobs reload | emakimobs.reload | 重新读取所有生物定义, 掉落表, 刷新规则与目标选择器, 不用重启服务器. 预检发现 ERROR 时会拒绝提交, 并回滚到上一份内容, 这时提示的数量是回滚后仍在生效的定义数 |
/emakimobs list [page] | emakimobs.list | 分页列出所有已注册的生物定义 (每页 10 条, 按 id 排序), 标题行会给出总页数, 总数和当前页. page 省略时为 1; 不是正整数就提示页码非法, 超出总页数就提示范围 |
/emakimobs info <mob_id> | emakimobs.info | 显示这只生物的原版类型, components 有几个键, ea_attributes 有几个键, 配了哪些触发器, 以及有没有同名的 loot_tables/<mob_id>.yml |
/emakimobs kill <mob_id> [radius] | emakimobs.admin | 清除该 id 的受管生物. 写了 radius 就只清除以执行者为中心, 该半径内的目标, 所以带半径的写法只能由玩家执行; radius 必须是不小于 0 的有限数值 |
/emakimobs kill all [radius] | emakimobs.admin | 清除全部受管生物 (不限 id). 省略 radius 就扫描全世界; 写了半径就只清除该半径内的目标 (同样只能由玩家执行) |
/emakimobs count [mob_id] | emakimobs.count | 统计受管生物的数量; 省略 mob_id 就是统计全部 (消息里记作 *). 只统计 PDC 标记里的 id 还在当前已加载集合内的实体, mob_id 没注册时会提示未知生物 |
/emakimobs find <mob_id> [radius] | emakimobs.count | 查找受管生物, 按距离从近到远列出 (最多 20 条, 超出的部分显示一行截断提示). 省略 radius 就是不限范围; 只能由玩家执行. 鼠标停在列表条目上会显示 id, UUID 与生命值, 点击就会执行 /emakimobs tp <uuid> 传送过去 |
/emakimobs tp <uuid> | emakimobs.admin | 传送到指定 UUID 的受管生物那里; 目标不存在或不是受管生物就拒绝. 它可以由 find 列表点击触发, 也可以手动输入执行 |
/emakimobs edit [id] | emakimobs.edit | 打开游戏内的定义编辑器: 省略 id 就进入文件浏览器 (可以翻页, 新建, 删除), 指定 id 就直接打开这只生物的定义逐字段编辑 |
/emakimobs help | emakimobs.use | 输出命令帮助列表 |
/emakimobs debug ... | emakimobs.debug | 转发给模块的调试子命令 (CoreLib 的调试命令, 模块过滤为 mobs); 调试处理器不可用时会给出提示 |
count, kill 与 find 都先让调度器扫描实体, 再把结果发回给命令执行者 (玩家在他自己所属的线程, 控制台走全局线程). 如果执行过程中模块已经进入停用流程, 就不再发回消息. 扫描方式是遍历全世界的 world.getEntities() 再加 PDC 的 isManaged 标记, 所以区块卸载后重新加载的生物不会被漏数或漏杀
权限节点
emakimobs.use 是整条命令的总开关: 没有它时命令不会被注册为可用 (canUse 判定失败), 任何子命令都执行不了. 其余权限按子命令逐个检查, 缺了就提示无权限
| 权限 | 默认值 | 说明 |
|---|---|---|
emakimobs.use | true (所有玩家) | 使用 /emakimobs 命令的基础权限 |
emakimobs.spawn | op | 手动刷出自定义生物 |
emakimobs.reload | op | 重载配置文件 |
emakimobs.list | op | 列出已注册的生物定义 |
emakimobs.info | op | 查看单个生物定义的详情 |
emakimobs.count | op | 统计受管生物的数量; 同时也是 find 的权限 |
emakimobs.edit | op | 打开游戏内的定义编辑器 |
emakimobs.debug | op | 模块的调试子命令 |
emakimobs.admin | op | 管理功能, 用于 kill (含 kill all) 与 tp |
Tab 补全会按你的权限过滤子命令, 并补全 spawn / info / kill / count / find 的 mob_id, spawn 的在线玩家名, find / kill 的半径, 以及 list 的页码
使用示例
# 在自己所在位置刷出精英僵尸
/emakimobs spawn elite_zombie
# 在玩家 Steve 所在位置刷出骨骼领主
/emakimobs spawn bone_lord Steve
# 分页列出已注册的生物定义
/emakimobs list 1
# 查看骨骼领主的定义详情
/emakimobs info bone_lord
# 统计精英僵尸的存活数量
/emakimobs count elite_zombie
# 清除周围 32 格内的精英僵尸
/emakimobs kill elite_zombie 32
# 清除周围 64 格内的全部受管生物
/emakimobs kill all 64
# 清除全世界的全部受管生物
/emakimobs kill all
# 查找周围的精英僵尸并点击传送
/emakimobs find elite_zombie 48
# 重载所有配置
/emakimobs reloadCAUTION
spawn 命令刷出的生物坐标和目标玩家完全重合, 建议在空旷的地方测试, 免得生物卡进方块里