# CookieGUI
**版本:** 1.2 | **Minecraft:** 1.21+ | **作者:** CookieProgram
CookieGUI 是一个简单的 GUI 插件,旨在让创建 GUI 变得相对容易,而无需为插件付费。 CookieGUI 支持 PlaceholderAPI、颜色代码,以及更多您可以添加操作的内容,并且可以创建多个 GUI 以及更多其他功能。
## 功能
- **游戏内 GUI 创建**: 在不编辑任何配置文件的情况下创建和编辑 GUI
- **多个操作**: 将多个操作分配给 GUI 项目
- **动态内容**: 使用 PlaceholderAPI 变量创建动态 GUI
- **条件逻辑**: 使用 if 语句创建复杂的行为
- **材质占位符**: 使用可以动态改变的材质占位符
- **内置占位符**: 多个内置占位符用于玩家信息(也如 Dynamic Content 中所述)
- **颜色代码支持**: 为 GUI 标题和消息添加颜色
- **多个操作类型**: 控制台命令、玩家命令、消息、广播、声音等等
- **热重载**: 在不重启服务器的情况下重新加载 GUI 配置文件
## 依赖
- **可选**: PlaceholderAPI(用于在 GUI 中使用占位符)
## 命令
### 主命令
- `/gui create [size]` - 创建一个新的 GUI
- `/gui edit ` - 编辑一个现有的 GUI
- `/gui delete ` - 删除一个 GUI
- `/gui list` - 列出所有可用的 GUI
- `/gui reload` - 从磁盘重新加载所有 GUI 配置文件
- `/gui show ` - 显示一个 GUI (也称为打开一个 GUI)
### 编辑命令
- `/gui edit item ` - 在一个槽位设置一个项目
- `/gui edit name ` - 设置一个项目的显示名称
- `/gui edit lore add ` - 添加一行lore到项目
- `/gui edit lore set ` - 设置lore的一行
- `/gui edit lore clear` - 清除项目的所有lore
- `/gui edit action add ` - 向项目添加一个操作
- `/gui edit action remove ` - 从项目中移除一个操作
- `/gui edit action list` - 列出项目上的所有操作
- `/gui edit clear` - 清空一个槽位
## 操作类型
- **console**: 以控制台身份运行命令
- 示例: `/gui edit test 0 action add console give [player] diamond 64`
- **player**: 以玩家身份运行命令
- 示例: `/gui edit test 0 action add player spawn`
- **message**: 向玩家发送消息
- 示例: `/gui edit test 0 action add message &a欢迎来到服务器!`
- **broadcast**: 向所有玩家广播消息
- 示例: `/gui edit test 0 action add broadcast &e[player] 使用了一个特殊物品!`
- **sound**: 向玩家播放声音
- 示例: `/gui edit test 0 action add sound ENTITY_PLAYER_LEVELUP:1.0:1.0`
- **close**: 关闭库存
- 示例: `/gui edit test 0 action add close`
- **open**: 打开另一个 GUI
- 示例: `/gui edit test 0 action add open other_menu`
- 为另一个玩家打开: `/gui edit test 0 action add open other_menu:Steve`
- **if**: 基于变量的条件操作
- 格式: `if:::::[]`
- 示例: `/gui edit test 0 action add if permission equals vip.access console give [player] diamond message 你需要VIP!`
## If 语句的操作符
- **equals** 或 **==**: 检查值是否相等
- **!equals** 或 **!=**: 检查值是否不相等
- **contains**: 检查一个值是否包含另一个值
- **!contains**: 检查一个值是否不包含另一个值
- **startswith**: 检查一个值是否以另一个值开头
- **endswith**: 检查一个值是否以另一个值结尾
- **>**: 大于 (数字比较)
- **<**: 小于 (数字比较)
- **>=**: 大于或等于 (数字比较)
- **<=**: 小于或等于 (数字比较)
## 特殊值
- **[player]**: 自动替换为玩家的名称
- **&** 颜色代码: 用于彩色文本 (例如,&a 用于绿色)
- **%placeholder%**: 任何 PlaceholderAPI 占位符
## 示例
**使用 PlaceholderAPI 创建动态项目**:
```
/gui create stats &8Stats 54
/gui edit stats 0 item player_head
/gui edit stats 0 name &e%player_name%'s Stats
/gui edit stats 0 lore add &7Kills: &f%statistic_player_kills%
/gui edit stats 0 lore add &7Deaths: &f%statistic_deaths%
/gui edit stats 0 lore add &7K/D Ratio: &f%math_kills_div_deaths%
```
## 权限
- **cookiegui.command**: 访问基础 /gui 命令 (默认: op)
- **cookiegui.admin**: 访问所有插件命令和功能 (默认: op)
- 包含所有权限
- **cookiegui.create**: 权限创建新的 GUI (默认: op)
- **cookiegui.edit**: 权限编辑现有的 GUI (默认: op)
- **cookiegui.delete**: 权限删除 GUI (默认: op)
- **cookiegui.list**: 权限列出所有可用的 GUI (默认: op)
- **cookiegui.show**: 权限向自己显示 GUI (默认: op)
- **cookiegui.show.others**: 权限向其他玩家显示 GUI (默认: op)
- **cookiegui.reload**: 权限从磁盘重新加载 GUI 配置文件 (默认: op)