CustomGuiReworked

一个简单的插件,用于创建带有数据物品保存系统的自定义GUI库存界面。

资源图片
# 🎮 CustomGuiReworked - 插件机制 详细描述 CustomGuiReworked 插件的所有机制和系统。 ## 📋 **GUI 系统** ### 创建和编辑 - **内置编辑器** - 使用 `/gui create` 和 `/gui edit` 命令创建 GUI - **可视化编辑** - 通过界面放置物品到槽位 - **属性配置** - 设置标题、大小、槽位命令 - **文件保存** - 每个 GUI 保存在一个单独的 YAML 文件中 ### 物品栏类型 - **9 个槽位** (1 行) - 用于简单菜单 - **18 个槽位** (2 行) - 用于小型界面 - **27 个槽位** (3 行) - 标准大小 - **36 个槽位** (4 行) - 扩展界面 - **45 个槽位** (5 行) - 大型菜单 - **54 个槽位** (6 行) - 最大大小 ## 💾 **数据存储系统** ### 5 种存储类型 | 类型 | 描述 | 用法 | |------|-------------|-------| | **区块** | 绑定到特定区块的数据 | 箱子、熔炉、工作台 | | **个人** | 每个玩家唯一的数据 | 个人物品栏、设置 | | **全局** | 所有玩家共享的数据 | 全局银行、全局箱子 | | **团队** | 玩家群组的数据 | 氏族存储 | | **临时** | 只在会话期间存在的数据 | 临时菜单、表格 | ### 保存机制 - **自动保存** 在内容更改时 - **数据加载** 在打开 GUI 时 - **同步** 共享库存之间的玩家 ## 🎯 **命令系统** ### 槽位命令 - **点击槽位时执行命令** - **变量支持** (%player%, %slot%, %item%) - **条件执行** - 仅在满足特定条件时执行命令 - **控制台命令** - 以服务器的名义执行 ### 命令示例 ```yaml commands: - command: "give %player% diamond 1" slot: 10 condition: "has_permission" - command: "teleport %player% spawn" slot: 15 ``` ## 🔍 **SlotTypeAPI - 槽位类型检测** ### 自动检测 | 类型 | 描述 | 行为 | |------|-------------|----------| | **DESIGN** | 装饰性槽位 | 无法交互 | | **CONTAINER** | 存储槽位 | 完全交互 | | **CRAFT** | 制作/配方槽位 | 交互受限 | | **RESULT** | 制作结果槽位 | 仅可以获取物品 | | **FUEL** | 燃料槽位 | 燃料有效性检查 | only design have functional, other for API to easy codding ### 标准物品栏支持 - **工作台** - 制作槽位和结果 - **熔炉** - 燃料、原料、结果 - **酿造台** - 药水、燃料、瓶子 - **铁砧** - 物品和结果 - **附魔台** - 物品和拉比斯 ### 自定义物品栏的启发式方法 - **物品栏大小分析** - **布局图案检测** - **结果缓存** 以提高性能 ## 🔧 **开发者 API** ### 静态 API (CustomGuiAPI) ```java // 简单的调用而不获取插件实例 CustomGuiAPI.createGui("shop"); CustomGuiAPI.openGui(player, "shop"); CustomGuiAPI.isDesignSlot(slot, inventory); ``` ### 内部 API (ApiManager) - **直接访问** 插件管理器 - **扩展功能** 用于复杂集成 - **完全控制** 功能 ## 🎨 **设计系统** ### 外观配置 - **标题** 使用颜色代码 (§6, §a, §c) - **骨架系统** - 按钮和元素中的物品 ### **支持 ItemsAdder!** ## 🛡️ **安全系统** ### 检查和限制 - **访问权限** - 权限检查 - **数据验证** - 正确性验证 - **漏洞保护** - 错误预防 ## ⚡ **性能优化** ### 缓存 - **槽位类型缓存** - 快速访问信息 - **GUI 缓存** - 内存中加载的界面 - **延迟加载** - 按需加载 ### 内存管理 - **自动清理** - 删除未使用的数据 - **大小限制** - 预防内存泄漏 - **异步操作** - 非阻塞操作 ## 🌐 **多语言支持** ### 语言支持 - **英语** - 主要语言 - **俄语** - 附加语言 - **翻译系统** - 易于添加新语言 ### 本地化 - **消息** - 翻译所有文本 - **命令** - 支持不同语言 - **文档** - 帮助翻译 ## 🔧 **与其他插件的集成** ### API 功能 - **其他插件创建 GUI** - **数据管理** - 读取/写入内容 - **事件处理** - 响应玩家操作 - **功能扩展** - 添加新功能 ### 集成示例 | 插件 | 应用 | 示例 | |--------|-------------|----------| | **经济插件** | 带价格的商店 | Vault, Essentials | | **传送系统** | 传送菜单 | Essentials, Multiverse | | **氏族系统** | 氏族管理 | Factions, Clans | | **小游戏** | 游戏界面 | 自定义小游戏 | ## 📊 **性能** ### 指标 - **GUI 加载时间**: < 50 毫秒 - **每个 GUI 的内存**: ~2-5KB - **并发用户支持**: 1000+ - **兼容性**: 99% 的插件 ### 优化 - **惰性初始化** - 仅在需要时加载 - **对象池** - 对象重用 - **异步处理** - 非阻塞操作 - **智能缓存** - 带 TTL 的缓存 ## 🚀 **高级功能** ### 高级功能 - **动态 GUI** - 实时内容更改 - **条件逻辑** - 根据条件显示元素 - **动画** - 平滑过渡和效果 - **网页集成** - 连接到网络服务 ### 未来计划 - **可视化构建器** - 拖放界面 - **GUI 模板** - 现成的设计 - **插件市场** - 服务器之间的 GUI 交换 - **移动支持** - 通过应用进行管理