GeyserCommandsYML

为地表客户端 (Geyser) 显示自定义命令建议列表。

资源图片
# GeyserCommandsYML **GeyserCommandsYML** 是一个专为使用 [Geyser-Spigot](https://geysermc.org/) 的服务器设计的轻量级插件,用于更好地控制向他们的 bedrock 版玩家展示的 **命令建议列表**。 而不是完全通过 Geyser-Spigot 配置文件 (aka `Geyser-Spigot\config.yml` → `command-suggestions: false`) 禁用所有服务器命令建议,这个插件 **直接对接** Geyser + Floodgate API,让你 **定义你自己的自定义命令列表** **仅为 bedrock 版玩家** — 避免崩溃、臃肿或暴露不相关的命令。 --- ## 功能 - ✅ 添加你自己的可定制的 bedrock 版玩家可见命令列表。 - ✅ 避免禁用 Geyser 全局的命令建议。 - ✅ 简单的 YAML 配置文件 (`plugins/GeyserCommandsYML/commands.yml`)。 - ✅ 对外部配置文件编辑提供热重载支持(伴随受控的玩家踢出)。 - ✅ 非常轻量级 — 仅仅拦截 `PlayerCommandSendEvent` 并对 bedrock 客户端进行修改。 --- ## 命令 | 命令 | 描述 | 权限 | | :--- | :--- | :--- | | `/geysercommands add ` | 将命令添加到 bedrock 命令列表中。 | `geysercommands.add` | | `/geysercommands remove ` | 从 bedrock 命令列表中移除命令。 | `geysercommands.remove` | | `/geysercommands list` | 在聊天中列出所有当前注册的 bedrock 命令。 | `geysercommands.list` | | `/geysercommands reload` | 重新加载插件的配置文件并更新 bedrock 命令列表(强制 bedrock 玩家重新连接)。 | `geysercommands.reload` | **别名:** `/geysercommandsyml`, `/gcyml` --- ## 工作原理 - 在 `PlayerCommandSendEvent` 时,插件: - **检查玩家是否为 bedrock 客户端**(通过 Geyser/Floodgate API)。 - 如果 **是**,它将 **清除** 默认的命令建议列表。 - 然后它 **添加** 仅插件 YAML 文件中定义的命令。 - **Geyser 客户端** **在玩家加入时拉取可用的命令**,而不是动态地 — **因此,在运行 `/geysercommands reload` 后,bedrock 玩家必须重新加入才能看到更新后的列表。** (此命令将自动以友好的消息踢出 bedrock 玩家,要求他们重新加入。) - **重要:** - 在 `Geyser-Spigot\config.yml` 中,确保设置 `command-suggestions: true`。 - `/geysercommands add ` 和 `/geysercommands remove ` 命令 **不会** 踢出玩家。 - 但请记住,**在线 bedrock 玩家在他们手动离开并重新加入之前将看不到更新后的命令列表**。 --- ## 权限总览 | 权限 | 目的 | | :--- | :--- | | `geysercommands.add` | 允许将命令添加到 bedrock 命令列表。 | | `geysercommands.remove` | 允许从 bedrock 命令列表中移除命令。 | | `geysercommands.list` | 允许查看当前的 bedrock 命令列表。 | | `geysercommands.reload` | 允许重新加载插件配置并强制 bedrock 玩家重新连接。 | - 如果玩家缺少所需的权限,他们将被拒绝访问子命令。 - 服务器运维人员保持默认的命令访问权限。 --- ## 已测试环境 - ✅ **PaperMC 1.21.4 - Build #226**: 兼容 - ✅ **Geyser-Spigot - Build #816:** 兼容 - ✅ **Floodgate - Build #116:** 兼容 ---