Skip to content

命令与权限 ​

EmakiSkills 的命令和权限节点如下, 包括玩家用的功能命令, 管理员用的管理命令, 以及每条命令要配什么权限

EmakiSkills 的主命令是 /emakiskills, 别名 /eskills. 玩家用它打开技能界面, 切换施法模式和升级技能; 管理员用它管理等级, 授予或收回技能, 清空槽位, 检查档案, 重新扫描技能来源和重载配置

命令注册 ​

项目值
主命令/emakiskills
别名/eskills
命令注册权限emakiskills.use
命令提示/eskills 或 /eskills help

记住一点: 整条命令都挂在 emakiskills.use 权限下. 缺了这个权限, 连 help 在内的所有子命令都执行不了, 子命令里那个 emakiskills.admin 的备用权限判断也轮不到. 这个权限默认是 true, 所以实际能拦住人的, 主要是服主在权限插件里显式取消 (取反) 的情况

命令列表 ​

命令权限说明
/eskills help命令注册权限输出命令帮助列表. 不带参数直接执行 /eskills 也会显示同样的内容. help 分支自己不再额外检查权限
/eskills guiemakiskills.use 或 emakiskills.admin打开技能 GUI. 控制台这类非玩家来执行会提示仅限玩家
/eskills castmode <on|off|toggle>emakiskills.use 或 emakiskills.admin开启, 关闭或切换施法模式
/eskills upgrade <skill>emakiskills.use 或 emakiskills.admin尝试升级指定技能, 反馈文案来自 upgrade.*
/eskills level get <player> <skill>emakiskills.admin查看某个玩家某个技能的等级
/eskills level set <player> <skill> <value>emakiskills.admin设置某个玩家某个技能的等级
/eskills level add <player> <skill> <value>emakiskills.admin增加某个玩家某个技能的等级
/eskills grant <player> <skill>emakiskills.admin把技能写进玩家的手动已学集合, 并存到 data/<uuid>.yml 的 manual_skill_ids. 目标技能 id 没有定义 (YAML 或外部注册) 时回复 skill.not_found
/eskills revoke <player> <skill>emakiskills.admin从玩家的手动已学集合移除技能并保存. 目标技能 id 没有定义时同样回复 skill.not_found
/eskills list [player]emakiskills.use 或 emakiskills.admin只读列出玩家已学的技能和槽位绑定, 省略玩家时看自己
/eskills reset <player>emakiskills.admin清空玩家的手动已学技能, 槽位绑定不受影响
/eskills clearslot <player> <slot>emakiskills.admin清空玩家指定技能槽的绑定
/eskills inspect [player]emakiskills.use 或 emakiskills.admin查看玩家的技能档案和已绑定的触发器槽位
/eskills resync [player]emakiskills.admin校验并重新同步玩家的技能槽绑定, 省略玩家时可以作用在自己身上
/eskills debug [status|on|off|player|module] [...]emakiskills.debug 或 emakiskills.admin输出或切换调试状态. 技能模块有 cast, unlock, upgrade, slot 四个
/eskills reloademakiskills.reload 或 emakiskills.admin异步重载技能, 资源, GUI, 语言和主配置, 并输出耗时

你输错子命令时, 会收到 general.unknown_command 的回复. level 和 clearslot 还会检查参数个数以及整数 value/slot 是否合法, 不合法就回复 general.invalid_args

参数补全 ​

位置补全内容
第 1 参数补出十四个子命令本身
castmode 第 2 参数补出 on, off, toggle
upgrade 第 2 参数补出玩家已解锁, 已开启升级且还没满级的技能 id; 控制台执行时补出全部技能 id
level 第 2 参数补出 get, set, add
clearslot / grant / revoke / list / reset / inspect / resync 第 2 参数, level 第 3 参数补出在线玩家名
grant / revoke 第 3 参数补出全部技能 id
clearslot 第 3 参数补出槽位 0~8
level 第 4 参数补出全部技能 id
level set/add 第 5 参数补出 1, 2, 5, 10

权限节点 ​

权限默认说明
emakiskills.usetrue允许使用基础技能功能, 打开 GUI, 切换施法模式和释放技能; 同时也是命令的注册权限
emakiskills.reloadop允许重载配置
emakiskills.adminop允许管理技能等级, 清空槽位, 重新同步, 也作为基础功能的管理员备用权限
emakiskills.debugop允许输出调试信息

先用哪个命令 ​

场景先执行目的
玩家要查看或绑定技能/eskills gui打开技能界面
主动技能无法释放/eskills inspect [player]看看玩家档案有没有加载, 以及已绑定的触发器槽位现在是什么状态
玩家换装备后技能没刷新/eskills resync <player>重新扫描一遍技能来源
技能等级异常/eskills level get <player> <skill>确认玩家档案里真实的等级是多少
槽位绑定到已删除技能/eskills clearslot <player> <slot>清理指定的技能槽
要直接给玩家授予或收回技能/eskills grant / /eskills revoke写入或移除玩家的手动已学技能
改了技能, 资源或 GUI/eskills reload重载运行配置

常见操作 ​

打开技能界面 ​

text
/eskills gui

打开技能界面后, 你能看到已解锁的技能, 技能等级, 槽位绑定, 升级入口和触发器选择入口

切换施法模式 ​

text
/eskills castmode toggle
/eskills castmode on
/eskills castmode off

施法模式决定主动技能能不能触发. 默认配置里你按 F 键就能进入或退出施法模式; 玩家重登后要不要恢复上次的状态, 由 cast_mode.restore_last_state_on_join 控制

管理技能等级 ​

text
/eskills level get Steve fireball
/eskills level set Steve fireball 3
/eskills level add Steve fireball 1

等级会直接影响技能参数, 资源消耗, 脚本变量和升级判断. 等级会被限制在 [1, max_level] 之间; 没开升级的技能最大等级就是 1. 改完后用 inspect 看一眼, 确认玩家档案里的等级已经更新

授予与移除技能 ​

text
/eskills grant Steve fireball
/eskills revoke Steve fireball

grant 把技能写进玩家的手动已学集合, revoke 再把它从集合里拿掉. 两条命令都要求目标技能 id 已经定义 (skills/ 里的 YAML 技能或外部注册的技能), 否则回复 skill.not_found. 结果会保存到 data/<uuid>.yml 的 manual_skill_ids

查看玩家已学技能 ​

text
/eskills list
/eskills list Steve

这条命令只列出玩家已学 (手动解锁) 的技能和槽位绑定, 只读不改; 省略玩家时看自己

重置手动已学技能 ​

text
/eskills reset Steve

这条命令只清空玩家的手动已学技能, 只影响 manual_skill_ids, 槽位绑定不受影响; 要清理槽位请改用 clearslot

清空技能槽 ​

text
/eskills clearslot Steve 1

碰到下面这些情况, 你可以用这条命令清理指定的槽位: 玩家的槽位绑到了已删除的技能, 触发器冲突, 或 GUI 里怎么都解绑不了. 槽位不合法时状态服务会拒绝并返回失败

重新扫描技能来源 ​

text
/eskills resync Steve

下面几种情况适合用它:

  • 玩家换了装备, 但技能来源没有马上刷新
  • EmakiItem 套装或物品效果发生了变化
  • 外部模块发放或移除了技能来源
  • 重载配置后要刷新在线玩家状态

输出调试信息 ​

text
/eskills debug
/eskills debug status
/eskills debug on
/eskills debug off
/eskills debug player Steve
/eskills debug module cast
子命令说明
status输出当前调试状态和正在跟踪的玩家; debug 不带参数时也会输出状态, 认不出的子命令也回落到状态输出
on / off打开或关闭全部调试输出
player <玩家>跟踪指定玩家的调试输出
module <模块>切换单个调试模块. 技能模块有 cast, unlock, upgrade, slot; 共享模块有 action, item_operation, variables, placeholder, gui, chat_input

注意: 命令帮助里写的是 debug <status|player|module|all> [...], 实际能用的子命令以上面这节为准

排查建议 ​

  • 技能不显示: 检查技能定义是否加载, 你有没有技能来源, 技能等级是否大于 0
  • 技能无法释放: 检查施法模式, 触发器绑定, 冷却, 全局延迟, 资源消耗和条件
  • 被动技能不触发: 检查 trigger_type: passive, passive_triggers 和全局被动触发器是否启用
  • GUI 绑定失败: 检查触发器是否禁用, 是否与已有触发器冲突, 槽位编号是否有效
  • MythicMobs 技能无效果: 检查 MythicMobs 是否安装, 技能 ID 是否正确, 脚本模式是否为 mythic 或 hybrid
  • 玩家看不到失败原因: 文案取自 lang/<language>.yml; 确认该语言文件里有对应键, 不要直接去改源码里的 reasonKey