跳转至

常见问题 · wtjd

CMI常见问题解答🔗

有没有做某事的命令?🔗

也许?通常是的,确实有。

截止 9.2.x 版本,我们有大约 300 条命令,所以它已经存在的可能性很大。

如果你想找到它而不想创建工单,也不想等待 GitHub 或 Discord 上的回复,只需使用 /cmi checkcommand [关键词],你就会得到与该关键词相关的命令。

玩家可以使用命令,怎么回事?🔗

默认情况下,玩家不会拥有任何命令的访问权限。你必须为每条命令定义权限节点。所需权限节点总可以通过悬停错误消息或查看控制台(会打印缺失的权限节点)看到。如果你在悬停错误消息时看不到缺失的权限节点,那么讽刺的是,你缺少 cmi.permisiononerror 权限节点。不过这个节点默认授予所有人,所以在这种情况下,说明是你专门移除了它。

默认格式是 cmi.command.[命令名],例如 cmi.command.heal。

如何从 Essentials 转换旧的玩家数据?🔗

如果你从 Essentials 迁移到 CMI,可以使用专用命令将玩家的信息从 Essentials 导入到 CMI。此功能不需要 Essentials 插件也能正常工作。

/cmi importfrom essentials [home/warp/nick/logoutlocation/money/mail]
  • 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 命令,只需转到相应部分并设置:

/heal: true

创建自定义别名:你可以通过游戏内命令 /cmi aliaseditor 创建任何你想要的别名,它本身有 2 种创建新别名的方式:

  1. 使用通用的单行命令:/cmi aliaseditor new heal-cmi heal $1- 将创建 /heal 命令。
  2. 点击聊天窗口中的 + 号并在聊天窗口中输入 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生成,仅供参考)