# SkyeGUI



一个允许玩家控制生物生成的Spigot插件。
## 特点
- 🎨 **自定义GUI创建** - 创建完全可定制的基于物品栏的GUI
- ⚡ **动态配置** - 通过YAML文件配置GUI,无需重启
- 🎮 **多种GUI类型** - 支持各种GUI界面,包括游戏模式菜单、管理工具等
- 🔧 **轻松管理** - 简单的命令用于管理和打开GUI
- 🌈 **MiniMessage 支持** - 使用Adventure API进行丰富的文本格式化
- 🔄 **实时重新加载** - 在不重启服务器的情况下重新加载配置
- 🎯 **权限系统** - 对每个GUI进行粒度的权限控制
## 安装
1. 从 releases 下载最新的 `SkyeGUI-1.0.0.jar`
2. 将JAR文件放置到服务器的 `plugins` 文件夹中
3. 重启服务器或使用插件管理器加载它
4. 在生成的 `config.yml` 和 `guis.yml` 文件中配置您的GUI
## 命令
| 命令 | 描述 | 权限 | 用法 |
|---------|-------------|------------|-------|
| `/skyegui` | 主插件管理命令 | `skyegui.admin` | `/skyegui [reload|version|list|open ]` |
| `/creative` | 打开游戏模式菜单 | `skyegui.creative` | `/creative` |
| `/examplegui` | 打开示例GUI | `skyegui.gui.example` | `/examplegui` |
| `/stafftools` | 打开管理工具GUI | `skyegui.gui.staff` | `/stafftools` |
| `/gmmenu` | 打开游戏模式菜单GUI | `skyegui.gui.gamemode` | `/gmmenu` |
### 命令示例
```bash
# 重新加载插件配置
/skyegui reload
# 列出所有可用的GUI
/skyegui list
# 打开特定的GUI
/skyegui open example
# 检查插件版本
/skyegui version
```
## 权限
| 权限 | 描述 | 默认值 |
|------------|-------------|---------|
| `skyegui.admin` | 访问GUI管理命令 | `op` |
| `skyegui.gui.example` | 访问示例GUI | `true` |
| `skyegui.gui.staff` | 访问管理工具GUI | `op` |
| `skyegui.gui.gamemode` | 访问游戏模式菜单GUI | `op` |
| `skyegui.creative` | 访问创意菜单命令 | `op` |
## 配置
### 主配置 (`config.yml`)
```yaml
# 启用/禁用插件
enabled: true
# 插件消息前缀
prefix: "[SkyeGUI] "
# 调试模式
debug: false
```
### GUI 配置 (`guis.yml`)
插件通过YAML支持灵活的GUI配置。 每个GUI都可以使用以下方式进行定制:
- **标题** - 使用MiniMessage格式的自定义物品栏标题
- **大小** - 物品栏大小(9, 18, 27, 36, 45, 54)
- **物品** - 自定义物品,具有材质、名称、描述和附魔
- **命令** - 自定义命令绑定
示例GUI配置:
```yaml
example:
title: "示例GUI"
size: 27
command: "examplegui"
items:
13:
material: "DIAMOND"
name: "点击我!"
lore:
- "这是一个示例物品"
- "点击关闭"
```
### 消息配置 (`messages.yml`)
使用MiniMessage格式支持自定义所有插件消息:
```yaml
prefix: "[SkyeGUI] "
version: "SkyeGUI v1.0.0 by SkyeNetwork Team"
reload: "插件已成功重新加载!"
gui-not-found: "GUI未找到: {gui}"
no-permission: "您没有使用此命令的权限!"
```
## 开发
### 从源代码构建
**先决条件:**
- Java 8 或更高版本
- Maven 3.6+
**构建步骤:**
```bash
git clone https://github.com/SkyeNetMC/SkyeGUIs.git
cd SkyeGUIs
mvn clean package
```
编译后的JAR将位于 `target/` 目录中。
### 项目结构
```
src/
├── main/
│ ├── java/
│ │ └── me/pilkeysek/skyegui/
│ │ ├── SkyeGUIPlugin.java # 主插件类
│ │ ├── commands/ # 命令处理器
│ │ ├── menu/ # GUI菜单实现
│ │ └── modules/ # 核心GUI模块
│ └── resources/
│ ├── plugin.yml # 插件元数据
│ ├── config.yml # 主配置
│ ├── guis.yml # GUI定义
│ └── messages.yml # 消息模板
```
## API 使用
SkyeGUI 提供了一个简单的API,供其他插件与之交互:
```java
// 获取插件实例
SkyeGUIPlugin skyeGUI = (SkyeGUIPlugin) Bukkit.getPluginManager().getPlugin("SkyeGUI");
// 为玩家打开GUI
skyeGUI.getGUIModule().openGUI(player, "example");
// 检查GUI是否存在
boolean exists = skyeGUI.getGUIModule().getGUINames().contains("myGui");
```
## 兼容性
- **Minecraft 版本**: 1.21+
- **服务器软件**: Paper, Spigot 和兼容的派生版本
- **Java 版本**: 8+
## 🌐 在线编辑器
我们提供了一个方便的基于Web的编辑器,用于开发:
- **编辑器 URL:** [editor.nobleskye.dev](https://editor.nobleskye.dev)
- 在线编辑和测试您的配置
- 实时语法高亮和验证
- 与插件的直接集成
## 📋 分发策略
**⚠️ 重要再分发通知:**
- **不要**直接与他人分享插件文件
- **不要**再分发修改或未修改的版本
- **始终**将用户引导到原始源代码库
- 任何分享必须仅通过 **链接到原始源代码** 完成
**✅ 允许:**
- 个人使用和修改
- 贡献回原始项目
- 从源代码学习
**❌ 禁止:**
- 直接文件共享或再分发
- 商业再分发
- 修改版本的独立分发
## 贡献
1. Fork 仓库
2. 创建一个功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交您的更改 (`git commit -m '添加一些惊人的功能'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开一个 Pull Request
## 支持
- **网站**: [https://skyenet.co.in](https://store.skyenet.co.in)
- **问题**: [GitHub Issues](https://github.com/SkyeNetMC/SkyeGUIs/issues)
- **Wiki**: [插件文档](https://github.com/SkyeNetMC/SkyeGUIs/wiki)
## 许可证
本项目使用自定义许可证授权 - 请参阅 [LICENSE](LICENSE) 文件以获取详细信息。
**重要:** 此软件具有具体的再分发限制。 在共享或分发之前,请仔细阅读许可证。
## 致谢
由 **SkyeNetwork Team** 开发
---
*有关更详细的文档和示例,请访问我们的 [Wiki](https://github.com/SkyeNetMC/SkyeGUIs/wiki).*