T2C-CommandGUI

T2C-CommandGUI - 自定义GUI与指令菜单

功能界面 | 自定义界面 | 使用命令 | 向玩家发送消息 | 支持 PlaceholderAPI | 1.18
Bukkit / Spigot 作者 JaTiTVDE 支持版本 1.8 - 1.21
服务器使用量
未统计
服务玩家数
未统计
下载量
10,960
插件详细介绍

CommandGUI 是一款功能强大的插件,允许你为服务器创建任意数量和不同样式的图形用户界面(GUI)。

主要功能

  • 通过 GUI 向玩家发送命令或消息。
  • 可通过经济系统(需 Vault 及经济插件)对使用项目收费。
  • 可为每个槽位单独设置所需的玩家权限。
  • 可为每个槽位播放自定义音效。
  • 可通过槽位直接打开另一个 GUI。
  • 可为 GUI 中的物品设置描述(Lore)来展示信息,描述支持变量占位符。
  • 可为玩家提供一种特殊物品,用于在背包中打开指定 GUI。
  • 可为发送给玩家的所有消息添加悬停提示和/或点击功能。

悬停与点击消息

你可以为所有发送给玩家的消息添加悬停提示和/或点击功能。

格式与示例

  • 使用 /*/ 来分隔消息的不同部分。
  • 使用 [nl] 在消息或悬停文本中设置换行。

消息格式:

  • 带悬停的消息:<消息>/*/<悬停文本>
  • 带悬停和点击的消息:<消息>//<悬停文本>//<动作>/*/<动作值>
  • 仅带点击的消息:<消息>////<动作>/*/<动作值>

可用的点击动作

  • OPEN_URL:打开 ActionValue 中指定的网址。
  • OPEN_FILE:打开 ActionValue 中指定的文件。
  • RUN_COMMAND:运行 ActionValue 中指定的命令。
  • SUGGEST_COMMAND:将 ActionValue 中的字符串插入玩家的聊天框。
  • CHANGE_PAGE:在书中切换到 ActionValue 指定的页码。
  • COPY_TO_CLIPBOARD:将 ActionValue 中的字符串复制到玩家的剪贴板。

跨服支持 (BungeeCord/Waterfall/Velocity)

CommandGUI 也可以执行跨服(BungeeCord)命令。此插件必须同时安装在代理端(Proxy)和 Spigot 服务端上。

要求与依赖

必需:

  • Java 21 或更高版本
  • T2CodeLib(可选库)

推荐:

  • 权限插件:LuckPerms
  • Vault
  • 经济插件:Economy、EssentialsX 或 CMI(付费,也支持其他插件)

命令列表

  • /commandgui - 打开默认 GUI(可配置)
  • /commandgui [gui] - 打开指定的 GUI
  • /gui-item on - 为你自己启用 GUI 物品
  • /gui-item off - 为你自己禁用 GUI 物品
  • /gui-item slot [slot] - 为你自己设置 GUI 物品的背包槽位
  • /commandguihelp - 打开帮助文件
  • /commandgui admin info - 查看 CommandGUI 信息
  • /commandgui admin createdefaultgui - 创建默认 GUI
  • /commandgui admin reload - 重载插件

权限节点

permissions:
  commandgui.admin:
    description: 拥有 CommandGUI 的所有权限
    default: op
    children:
      commandgui.command: true
      commandgui.get.guiitem.at.login: true
      commandgui.useitem: true
      commandgui.useitem.toggle: true
      commandgui.bypass: true
      commandgui.command.info: true
      commandgui.command.give: true
  commandgui.player:
    description: 玩家的基础权限
    default: op
    children:
      commandgui.command: true
      commandgui.get.guiitem.at.login: true
      commandgui.useitem: true
      commandgui.useitem.toggle: true
  commandgui.command:
    description: 通过命令打开 GUI 所需的权限
    default: op
  commandgui.get.guiitem.at.login:
    description: 拥有此权限的玩家会在登录时获得 GUI 物品
    default: op
  commandgui.useitem:
    description: 使用 GUI 物品所需的权限
    default: op
  commandgui.useitem.toggle:
    description: 允许为自己启用/禁用 GUI 物品的权限(需配置 UseItem/AllowToggle 为 true)
    default: op
  commandgui.bypass:
    description: 绕过限制,打开被禁用的 GUI
    default: op
  commandgui.command.info:
    description: 查看 CommandGUI 信息的权限
    default: not op
  commandgui.command.give:
    description: 将在 V2.1.0 版本中启用
    default: op

变量占位符

  • %commandgui_useitem% - 以颜色显示你是否启用了 UseItem(颜色可在 config.yml 中自定义)。
  • %commandgui_useitem_boolean% - 显示你是否启用了 UseItem(布尔值)。
  • %commandgui_useitem_slot% - 显示你为 UseItem 设置的背包槽位。

支持与反馈

遇到问题或有新功能建议?请在我们的 Git 上提交工单,以便我们轻松跟踪处理:

git.T2Code.net

如果发现任何错误或漏洞,请在我们的 Discord 上报告,以便我们及时修复。

开发信息

由 JaTiTV 开发:

由 Jkobs 开发:

(注:展示视频来自 1.x 版本,界面和命令可能有所不同。如果你的服务器正在使用 CommandGUI 并希望在此列出,请通过 Discord、Issue 或私信联系我。)

CommandGUI 是一款功能强大的 Minecraft 插件,它允许服务器管理员通过高度可自定义的图形用户界面(GUI)来执行命令、管理权限、切换服务器等操作,极大地简化了玩家交互和服务器管理流程。

核心特性

  • 高度可配置的 GUI:通过 YAML 文件轻松创建和设计各种功能菜单。
  • 丰富的交互功能:支持执行命令、切换服务器、打开其他 GUI、发送消息、花费游戏货币、修改配置文件等。
  • 物品触发:可为玩家提供一个物品,点击即可打开指定 GUI。
  • 跨服支持:集成 BungeeCord,支持跨服务器传送和命令执行。
  • 权限系统:为每个 GUI、命令和功能槽位提供精细的权限控制。
  • 多语言支持:内置英语、德语、挪威语等多种语言文件。
  • 声音反馈:为各种操作(打开、点击、成功、失败)配置音效。

快速开始

安装与依赖

  • CommandGUI.jar 放入服务器的 plugins 文件夹。
  • 确保已安装 Vault 插件以使用经济系统功能。
  • 对于 BungeeCord 功能,需在代理端也安装本插件。
  • 重启服务器。

基础命令与权限

  • /commandgui/cgui - 打开默认 GUI。
  • 权限: commandgui.command.default
  • /commandgui <GUI文件名> - 打开指定的 GUI。
  • 权限: commandgui.command.<GUI文件名>
  • /commandguihelp - 查看帮助信息。
  • /gui-item on|off|slot [1-9] - 管理个人 GUI 触发物品。
  • /commandguiadmin reload - 重载插件配置。
  • 权限: commandgui.admin.reload
  • /commandguiadmin give <玩家> - 给予玩家 GUI 触发物品。
  • 权限: commandgui.admin.give
  • /commandguiadmin createdefaultgui - 生成默认的 GUI 示例文件。
  • 权限: commandgui.admin.createdefaultgui

配置详解

插件的主要配置位于 plugins/CommandGUI/config.yml。关键配置项包括:

插件设置

  • UpdateCheckOnJoin: 玩家加入时检查更新。
  • language: 设置插件语言 (english, german, norwegian)。
  • DefaultGUI: 设置默认打开的 GUI 文件名(不含 .yml)。

存储设置

  • Storage.Type: 数据存储类型,可选 YMLMySQL
  • 如果选择 MySQL,需配置下方相应的数据库连接信息。

BungeeCord 设置

  • BungeeCord.Enable: 启用跨服功能。
  • ThisServer: 设置当前服务器在 Bungee 网络中的名称。

触发物品设置

  • UseItem.Enable: 是否启用通过物品打开 GUI 的功能。
  • OpenGUI: 设置物品默认打开的 GUI。
  • InventorySlot.Slot: 设置物品默认存放在玩家快捷栏的槽位(1-9)。

游戏模式与世界保护

  • 可设置在特定游戏模式(如 CREATIVE)或特定世界(如 World1)中禁用触发物品。

创建自定义 GUI

plugins/CommandGUI/GUIs/ 目录下创建新的 .yml 文件即可定义一个新的 GUI。

GUI 文件结构示例

# GUI 基础设置
GUI:
  Enable: true
  Lines: 6 # GUI 行数,1-6
  Name: '&5我的菜单' # 界面标题
  FillItem: # 背景填充物品
    Enable: true
    Item: BLACK_STAINED_GLASS_PANE
  Command:
    Alias: true # 是否允许使用 /commandgui <本文件名> 打开
    Permission:
      Required: true # 打开是否需要权限 commandgui.command.<本文件名>
# 功能槽位定义
Slots:
  # 槽位名称(可自定义,但必须唯一)
  商店按钮:
    Slot: 22 # 该物品在 GUI 中的位置(0-53)
    Enable: true
    Function: OpenGUI # 功能类型
    Item: # 物品显示设置
      Material: EMERALD
      Name: '&a商店'
      Lore:
        - '&7点击打开商店'
    OpenGUI: # 对应功能的详细设置
      Enable: true
      GUI: 'shop' # 指向另一个 GUI 文件(shop.yml)
    Permission: # 该槽位的权限
      Required: false
      See: commandgui.gui.我的菜单.slot.22.see # 查看物品的权限
      Use: commandgui.gui.我的菜单.slot.22.use # 使用功能的权限

可用的功能类型

  • Command: 执行命令(支持控制台执行和 Bungee 命令)。
  • OpenGUI: 打开另一个 GUI。
  • ServerChange: 将玩家传送到 Bungee 网络中的其他服务器。
  • Message: 向玩家发送消息。
  • Cost: 让玩家花费金钱后执行功能。
  • Toggle: 切换权限或物品状态(如开关 GUI 触发物品)。
  • SetConfig: 动态修改插件配置文件(如 YAML 文件中的值)。

API 与开发者

如需在插件中集成 CommandGUI,可通过 Maven 添加依赖。

Maven 依赖

<repositories>
  <repository>
    <id>T2Code</id>
    <url>https://repo.t2code.net/repository/T2Code/</url>
  </repository>
</repositories>
<dependencies>
  <dependency>
    <groupId>net.t2code</groupId>
    <artifactId>CommandGUI_V2</artifactId>
    <version>VERSION</version> <!-- 替换为最新版本 -->
  </dependency>
</dependencies>

常见问题

如何让 GUI 物品在玩家加入时自动给予?

在 `config.yml` 中配置

  • Join.GiveOnEveryJoin: true - 每次加入都给。
  • Join.GiveOnlyOnFirstJoin: false - 仅首次加入给。

如何修改触发物品的材质和名称?

config.ymlItem 部分修改:

  • Material: paper
  • Name: '&bDefault &6GUI'

如何为某个 GUI 槽位设置经济系统价格?

在 GUI 配置文件的对应槽位下添加

Cost:
  Enable: true
  Price: 100.0

同时确保已安装 Vault 和经济插件。

如何实现一个“权限开关”按钮?

使用 Toggle 功能。在 GUI 槽位配置中设置:

Function: Toggle
Toggle:
  Permission:
    Enable: true
    Permission: 'myplugin.use.special'

玩家点击即可切换自己是否拥有 myplugin.use.special 权限。

支持 PlaceholderAPI 吗?

是的,插件支持在物品名称、描述和消息中使用 PlaceholderAPI 占位符。

测试支持版本
1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.20.6 1.21
版本分布
基本信息
插件名称 T2C-CommandGUI
作者 JaTiTVDE
平台 Bukkit / Spigot
支持版本 1.8 - 1.21
点赞数 3
最近版本
暂无数据 -