Skip to content

菜单插件

目前主流的菜单插件主要是 MagicMenu 和 CrossplatForms,推荐使用 MagicMenu,相较于 CrossplatForms 更轻量,支持所有服务端核心,并且有跟更多功能

安装

可以在GitHub 下载,或者使用下载镜像 下载

配置

如果你是一个聪明人,看默认的config.yml就能看懂

yaml
# 查看所有占位符请访问 https://github.com/onebeastchris/MagicMenu/blob/master/setup.md

# 配置版本 - 不要更改此项。
config-version: 1.0

# 当使用表情打开菜单时,是否显示表情?
show-emotes: true

# 如果设置为 true,关闭表单将返回上一个表单。
go-back: true

# 调试模式:这将向控制台发送大量信息。
debug: false

# 在此处定义你的菜单。你可以有任意多个,但实际操作中,不要超过4个 - 每个表情一个。
menus:
  # 在此处输入表情 UUID。或者,输入 "all" 表示所有表情(不推荐)。从这里获取 UUID:
  # https://github.com/JustTalDevelops/bedrock-emotes
  # 或者,你也可以不设置表情 UUID,而是设置一个命令来打开菜单。
  # 同时设置表情和命令将导致两者都被注册 - 见底部最后一个示例。
  # 你也可以设置为 "all",这意味着菜单将针对所有表情打开。你不能有多个 "all" 菜单。
  - emote-uuid: all
    # 在此处输入允许的用户。如果你想允许所有用户,请完全删除 "allowed-users"
    # 如果某人无权使用此菜单,他们将正常使用表情。
    allowed-users:
      - onebeastofchris
      - someotheraccount
    # 在此处输入菜单的标题/描述;描述是可选的。
    forms:
      - form-title: "示例表单"
        form-description: "你可以在这里设置描述!"

        # 在此处配置按钮。
        buttons:
          # 按钮的名称。这里,我们定义了一个命令,因此点击按钮将运行该命令。
          - name: "说点什么 o.o"
            commands:
              - command-name: "说点什么"
                run: "say !%input:输入一条消息, 测试消息% 由 %username% 发送"
          # 与上面类似 - 但有
          # 1. 名称中的占位符,和
          # 2. 按钮的允许用户!(Xbox 用户名,无前缀)
          # 这里:"%username%" 被替换为玩家的 Java 用户名
          - name: "给 %username% 一个苹果!"
            allowed-users:
              - onebeastofchris
              - totallyavalidxboxusername
            commands:
              - command-name: "给 %username% 一个苹果!"
                run: "give %username% apple 1"

          # 你也可以通过更多命令打开一个菜单
          # 按钮旁边可以有图片
          - name: "§2 嘿 %username%,看看这个!"
            image-url:
            forms:
              - form-title: "占位符演示部分"
                form-description: "这是你可以使用的一些占位符的演示!"
                buttons:
                  - name: "位置: %position%"
                    commands:
                      - command-name: "位置"
                        run: "say 这是我的位置: %position%"
                  - name: "用户名: %username%"
                    commands:
                      - command-name: "用户名"
                        run: "say 由 %username% 发送"
                  - name: "下拉菜单 & 滑块演示"
                    commands:
                      - command-name: "下拉菜单 & 滑块演示"
                        run: "say 下拉菜单: !%dropdown:选择一个下拉菜单, 默认, 默认, 只是, 一些, 更多, 选项%, 滑块: !%slider:选择一个滑块, 0, 10, 1, 5%"
                  - name: "步进滑块和输入演示"
                    commands:
                      - command-name: "步进滑块和输入演示"
                        run: "say 这是一个步进滑块值, !%step-slider:选择一个步进滑块, 0, 0, 10, 1, 2, 3, 4, 5% 和一个输入 !%input:输入一个 xuid, %xuid%%"
                  - name: "切换演示"
                    commands:
                      - command-name: "切换演示"
                        run: "say 这是一个布尔值: !%toggle:选择一个切换, true%"

          - name: "Geyser 命令"
            image-url: "https://avatars.githubusercontent.com/u/52673035?s=200&v=4"
            forms:
              - form-title: "Geyser 命令"
                form-description: "这是你可以使用的一些 Geyser 命令的演示!"
                buttons:
                  - name: "统计数据"
                    commands:
                      - command-name: "geyser 统计数据"
                        run: "geyser statistics"
                  - name: "副手"
                    commands:
                      - command-name: "geyser 副手"
                        run: "geyser offhand"
                  - name: "工具提示"
                    commands:
                      - command-name: "geyser 工具提示"
                        run: "geyser tooltips"
                  - name: "进度"
                    commands:
                      - command-name: "geyser 进度"
                        run: "geyser advancements"
                  - name: "转储"
                    commands:
                      - command-name: "geyser 转储"
                        run: "geyser dump"
                        allowed-users:
                          - onebeastchris
                          - onebeastofchris
                          - someotheraccount

  # 你也可以直接运行一个命令,而不打开菜单。
  # 注意:我们在这里设置了一个特定的表情 UUID(来自 https://github.com/JustTalDevelops/bedrock-emotes),它将覆盖 "all" 菜单。
  - emote-uuid: 6d9f24c0-6246-4c92-8169-4648d1981cbb
    commands:
      - command-name: "游戏模式"
        run: "gamemode !%dropdown:选择一个游戏模式, 创造, 创造, 生存, 冒险, 旁观者%"
        allowed-users:
            - onebeastofchris
            - someotheraccount

      # 由于上面的命令仅对 onebeastofchris 和 someotheraccount 可访问,因此该命令仅对他们运行。
      # 下面的命令没有设置允许的用户,因此,它将对其他人运行。
      # 一个按钮不能运行多个命令。
      - command-name: "说"
        run: "say !%input:输入一条消息, 测试消息% %position% %username%"

  # 你也可以通过命令 (/magicmenu [menu-command]) 打开一个菜单
  # 这里的示例通过命令 /magicmenu weather 打开天气菜单
  # 然而,我们也为该命令添加了一个权限,因此只有拥有 "magicmenu.weather" 权限的人可以使用它。
  # 你可以通过 Bedrock 用户名定义允许的用户,而不是权限。
  - menu-command:
      command-name: "天气"
      description: "打开天气菜单"
      permission: "magicmenu.weather"
      aliases:
        - "w"
    commands:
      - command-name: "天气"
        run: "weather !%dropdown:天气会是什么?, 雨, 雨, 晴朗, 雷暴%"```

注意事项

基岩版菜单中的图片必须是 URL,而不是资源包,你可以使用笨蛋图床上传你的图片

NPC Form

一种基岩版独有的菜单,长这样

很炫酷,很适合做任务吧,但很可惜,目前只有 zim 的 Skript-Floodgate-API 支持创建(后面会讲)

目前没有菜单插件支持NPC Form,但 zim 为我们提供了简单的接口去创建 NPC Form

你需要安装 GeyserUtils,以下是关键代码,你需要一点 Java or Kotlin 编程能力才能使用

Button 按钮源代码

NPC Form 源代码

菜单组源代码

专用菜单插件

这些菜单插件是专门针对某些用途或插件开发的,自定义性较低,但更加方便

BedrockFormShop

专门用于制作商店菜单的插件,项目地址

下载地址,这是官方Wiki

Residence 领地

下载地址

项目地址

QuickShop 商店

下载地址

项目地址

支持 QuickShop 和 QuickShop-Hikari

Tpa 菜单

下载地址

项目地址

支持的插件:

  • EssentialX
  • CMI
  • Sunlight
  • HuskHomes (仅单端)
  • TPAPro (需要从 此处 下载扩展以兼容其黑名单功能)

Skript 脚本

zim 太强啦

zimzaza4 开发的 Skript Geyser 菜单扩展,可以使用 Skript 创建菜单

同时也是目前唯一一个支持 NPC Form 的插件!

项目地址,安装和使用请查看 readme,建议在使用前读一遍源代码,有些功能没写上去