常见问题 · wtjd
CMI常见问题解答🔗
有没有做某事的命令?🔗
也许?通常是的,确实有。
截止 9.2.x 版本,我们有大约 300 条命令,所以它已经存在的可能性很大。
如果你想找到它而不想创建工单,也不想等待 GitHub 或 Discord 上的回复,只需使用 /cmi checkcommand [关键词],你就会得到与该关键词相关的命令。
玩家可以使用命令,怎么回事?🔗
默认情况下,玩家不会拥有任何命令的访问权限。你必须为每条命令定义权限节点。所需权限节点总可以通过悬停错误消息或查看控制台(会打印缺失的权限节点)看到。如果你在悬停错误消息时看不到缺失的权限节点,那么讽刺的是,你缺少 cmi.permisiononerror 权限节点。不过这个节点默认授予所有人,所以在这种情况下,说明是你专门移除了它。
默认格式是 cmi.command.[命令名],例如 cmi.command.heal。
如何从 Essentials 转换旧的玩家数据?🔗
如果你从 Essentials 迁移到 CMI,可以使用专用命令将玩家的信息从 Essentials 导入到 CMI。此功能不需要 Essentials 插件也能正常工作。
- home - 将导入家(home)位置
- nick - 将导入玩家的昵称
- logoutlocation - 将导入玩家最后一次退出游戏的位置
- money - 将导入玩家的金币余额
- mail - 将导入玩家的邮件
- warp - 将导入传送点
你可以一次使用多个变量,甚至全部使用,例如:/cmi importfrom essentials home warp nick logoutlocation money mail。
这个过程可能需要一些时间。一般来说每秒可转换 200 个用户,你会收到反馈消息以了解进度。
如果你想使用旧的 worth.yml 文件,那么只需从 Essentials 复制/粘贴到 CMI 文件夹中即可。
如何拥有短命令(指令简写)?🔗
默认情况下,只有少量命令启用了别名,这样你才能使用简写命令。因此默认情况下,大多数命令需要使用完整命令,如 /cmi heal Zrips。要启用短命令,你有 2 个选项:在 alias.yml 中启用,或者创建你自己的别名。
通过 alias.yml 启用:进入 alias.yml 文件,查找任何你想作为短命令的别名。例如,如果你想要 /heal 命令,只需转到相应部分并设置:
创建自定义别名:你可以通过游戏内命令 /cmi aliaseditor 创建任何你想要的别名,它本身有 2 种创建新别名的方式:
- 使用通用的单行命令:
/cmi aliaseditor new heal-cmi heal $1-将创建/heal命令。 - 点击聊天窗口中的 + 号并在聊天窗口中输入 heal,按回车,然后再次点击 + 号,输入
cmi heal $1-并再次按回车。就这样,现在你已经启用并可以使用 /heal 了。
你还可以添加多个将依次执行的命令,这些命令支持特殊的 CMI 命令格式,我们称之为特殊命令(specialized commands),其 wiki 可以在此处找到(HERE),功能非常强大。
别名命令中的额外变量如 $1 表示将取第一个变量并替换到这个别名中。例如 /cmi aliaseditor new heal-cmi heal $1,执行 /heal Zrips 时,第一个变量(本例中为 Zrips)将被替换到原始命令中,最终命令看起来像 /cmi heal Zrips。
这允许变量按顺序替换,例如 /cmi aliaseditor new tps-cmi tp $2 $1,执行 /tps Zrips Zhax 将得到类似 /cmi tp Zhax Zrips 的命令。
如果需要在某一点之后添加所有变量,使用 $1- 格式,例如 /cmi aliaseditor new ms-cmi msg $1 $2-,执行类似 /ms Zrips Hello World! 的命令将得到 /cmi msg Zrips Hello World!。
如何重置特定字段或整个数据库?🔗
简短回答:使用 /cmi resetfields [列名] (-w:[世界名]) (-p:[玩家名])。
你可以为每个玩家重置一个特定列并将其设置为默认值。你可以重置诸如位于特定世界中的家等数据。你也可以为特定玩家重置该字段。
请记住,这只会重置一列。如果你是开新服务器并想删除所有内容,那么如果你使用 MySQL,只需删除 CMI 表,或者重命名 sqlite 文件。如果你不知道如何删除 MySQL 表或没有权限,那么只需在配置文件中重命名表前缀,这将创建具有空数据的新表。
玩家卡在飞行模式怎么办?🔗
如果你注意到你的玩家切换世界或重新登录后处于飞行状态,他们可能卡在飞行模式中。你可以尝试这样解决:
eventcommands.yml:你可以在加入事件以及传送事件中添加一条命令;这应该会强制生存模式下的玩家关闭飞行。例如,
perm:cmi.command.fly@! check:%cmi_user_gamemode%==Survival! asConsole! cmi fly [playerName] false -s
另一个可能的解决方案是找出原因。在没有安装其他插件的情况下会发生这种情况吗?如果你认为自己遇到了 bug,请随时提交 bug 报告。
另外,你可以检查 config.yml 中的 WorldLimits 设置是否正确配置,以及玩家/组是否没有通配符或 OP,因为这可能也会授予他们 .bypass 权限节点。
最后,你可以查看这篇(非官方)文章,确认你是否真的覆盖了所有基础。 (内容由AI生成,仅供参考)