# SkyeBlock 插件
一个全面的 SkyeBlock 插件,适用于 Paper/Spigot 服务器,允许玩家创建和管理自己的天空岛屿,具有高级功能和灵活的双命令系统。
## 📋 目录
- [功能](#功能)
- [核心功能](#核心功能)
- [可用岛屿类型](#可用岛屿类型)
- [高级功能](#高级功能)
- [命令](#命令)
- [🎯 双命令系统](#-双命令系统-全新)
- [直接命令 (原始)](#直接命令-原始)
- [子命令 (全新!)](#子命令-全新)
- [帮助 & 信息](#帮助--信息)
- [🔑 基于权限的命令](#-基于权限的命令)
- [安装 & 设置](#安装--设置)
- [配置](#配置)
- [岛屿设置系统](#岛屿设置系统)
- [游戏规则管理](#游戏规则管理)
- [可用游戏规则](#可用游戏规则)
- [GUI 界面](#gui-界面)
- [权限系统](#权限系统)
- [自定义岛屿模板](#自定义岛屿模板)
- [权限](#权限)
- [基本权限](#基本权限)
- [游戏规则权限 (LuckPerms 集成)](#游戏规则权限-luckperms-集成)
- [单个游戏规则控制](#单个游戏规则控制)
- [LuckPerms 用法示例](#luckperms-用法示例)
- [技术细节](#技术细节)
- [使用示例](#使用示例)
- [📚 文档](#-文档)
- [🚀 最近更新](#-最近更新)
- [💡 支持 & 贡献](#-支持--贡献)
- [📄 许可证](#-许可证)
## 功能
### 核心功能
- **🎯 双命令系统**: 使用直接命令 (`/island`, `/visit`) 和统一子命令 (`/sb island`, `/sb visit`) - **全新!**
- **🏝️ 多种岛屿类型**: 从经典、沙漠或地狱主题的岛屿中进行选择,带有清晰的单字标识符。
- **🌋 地狱岛屿系统**: 专用的地狱虚空世界,具有适当的生物群系管理和地狱专用模板 - **全新!**
- **📋 自定义蓝图系统**: 基于 YAML 的岛屿模板,具有详细的方块放置和箱子内容。
- **🌍 独立的岛屿世界**: 每个岛屿都有其自己的专用世界(具有 SlimeWorldManager 支持)。
- **⚙️ 岛屿设置管理**: 全面的游戏规则控制系统,具有交互式 GUI 界面。
- **🔐 高级权限**: LuckPerms 风格的权限系统,用于细粒度的游戏规则控制。
- **🏠 中枢集成**: 中枢和岛屿之间的无缝传送。
- **👥 访客系统**: 访问其他玩家的岛屿,并进行保护和设置。
- **🤝 合作游戏**: 带有成员管理的岛屿合作系统。
### 可用岛屿类型
1. **🌿 经典天空岛** (`classic`) - 传统的泥土平台,带有树木、箱子和基本补给。
2. **🏜️ 沙漠岛** (`desert`) - 基于沙子的岛屿,带有仙人掌和沙漠生存物品。
3. **🔥 地狱岛** (`nether`) - 具有地狱岩石、灵魂沙和黑曜石的具有挑战性的地狱主题岛屿,位于专用的地狱虚空世界。
### 高级功能
- **⚡ 双命令界面**: 选择直接命令 (`/island`) 或统一子命令 (`/sb island`),具有完全的向后兼容性。
- **🚀 智能世界管理**: SlimeWorldManager 集成以及标准 Bukkit 世界的回退。
- **🎮 岛屿设置 GUI**: 用于管理 31 种不同游戏规则的交互式界面。
- **🔑 细粒度权限**: 每个游戏规则的单独权限,带有管理绕过系统。
- **🎯 单字岛屿类型**: 干净、简单的岛屿类型标识符 (`classic`, `desert`, `nether`)。
- **📝 智能自动完成**: 所有命令和岛屿类型的智能命令完成。
- **🛠️ 全面的管理工具**: 岛屿列表、删除、状态监控和管理。
- **🌐 安全传送**: 适当的关键点计算和世界特定的传送。
- **🎨 MiniMessage 支持**: 带有 Adventure API 集成的现代文本格式。
- **💾 优化存储**: SlimeWorld 集成,以减少磁盘使用量和提高性能。
- **🌋 地狱岛屿支持**: 专用的地狱虚空世界,具有生物群系设置和地狱专用模板。
- **🔥 多环境岛屿**: 支持世界和地狱环境中的岛屿。
## 命令
### 🎯 双命令系统 (全新!)
该插件同时支持直接命令和统一子命令,以实现最大的灵活性:
#### 直接命令 (原始)
```bash
/island create # 创建新的岛屿 (classic, desert, nether)
/island home # 传送到你的岛屿
/island settings # 打开岛屿设置 GUI
/island types # 显示可用岛屿类型
/island delete # 确认后删除你的岛屿
/island list # 列出所有岛屿 (仅限管理员)
/island status # 显示服务器状态 (仅限管理员)
/visit # 访问其他玩家的岛屿
/delete [player] # 双步骤确认后删除岛屿
/hub # 返回枢纽世界
/is # /island 的别名
```
#### 子命令 (全新!)
```bash
/sb island create # 创建新的岛屿 (classic, desert, nether)
/sb island home # 传送到你的岛屿
/sb island settings # 打开岛屿设置 GUI
/sb island types # 显示可用岛屿类型
/sb island delete # 确认后删除你的岛屿
/sb island list # 列出所有岛屿 (仅限管理员)
/sb island status # 显示服务器状态 (仅限管理员)
/sb visit # 访问其他玩家的岛屿
/sb delete [player] # 双步骤确认后删除岛屿
/sb hub # 返回枢纽世界
/skyblock # /sb 的别名
```
#### 帮助 & 信息
```bash
/sb # 显示所有可用子命令以及描述
/island help # 显示岛屿命令帮助
```
### 🔑 基于权限的命令
命令会根据权限进行过滤:
- **基本用户**: `create`, `home`, `settings`, `types`, `delete`(自有岛屿)
- **管理员**: 所有命令,包括 `list`, `status` 和删除其他玩家的岛屿
## 安装 & 设置
### 1. 前置条件
- **Paper/Spigot 服务器** (1.20+)
- **可选**: SlimeWorldManager (ASWM/SWM) 用于优化世界管理
- **可选**: LuckPerms 用于高级游戏规则权限
### 2. 快速安装
```bash
# 克隆或下载插件
git clone
cd SkyeBlock
# 构建插件
./build.sh
# 复制到你的服务器
cp target/skyeblock-1.0.0.jar /path/to/your/server/plugins/
# 重启你的服务器
```
### 3. 可选增强功能
- **安装 SlimeWorldManager** 用于独立的岛屿世界(强烈建议)
- **安装 LuckPerms** 用于细粒度的游戏规则权限
- 这两个插件在不可用时提供自动回退
### 4. 快速测试 & 验证
```bash
# 测试安装
./test-setup.sh
# 验证双命令系统
./validate-dual-commands.sh
# 测试所有功能
./test-functionality.sh
```
### 5. 准备就绪!
- 插件会自动创建必要的配置
- 包含内置的岛屿模板
- 具有智能默认设置即可工作
## 配置
该插件会创建一个 `config.yml` 文件:
```yaml
# 世界设置
world:
name: "skyblock_world"
environment: "NORMAL"
# 地狱世界设置 (全新!)
nether:
name: "skyblock_nether"
environment: "NETHER"
biome: "NETHER_WASTES"
enabled: true
# 中枢设置 (可选)
hub:
enabled: true
world: "world"
spawn:
x: 0
y: 100
z: 0
# 岛屿设置
island:
distance: 1000 # 岛屿之间的距离(用于回退共享世界)
start-x: 0 # 启动 X 坐标
start-z: 0 # 启动 Z 坐标
# 消息 (完全可定制)
messages:
prefix: "&8[&6SkyeBlock&8] &r"
island-created: "&a岛屿创建成功!传送到那里..."
island-already-exists: "&c你已经有一个岛屿了!"
island-not-found: "&c你还没有岛屿!"
island-deleted: "&a你的岛屿已被删除!"
teleported: "&a传送到你的岛屿!"
no-permission: "&c你没有使用此命令的权限!"
invalid-command: "&c无效命令!请使用 /island help 获取可用命令。"
# ... 其他可定制消息
```
## 岛屿设置系统
### 游戏规则管理
该插件具有全面的游戏规则管理系统,可通过 `/island settings` 访问:
### 可用游戏规则
**生存 & 伤害控制:**
- 保持物品栏,跌落伤害,火焰伤害,溺水伤害
- 自然再生,立即复活
**世界机制:**
- 白天/光照周期,天气周期,火焰蔓延
- 生物生成,生物破坏,失眠 (幽灵)
**游戏功能:**
- 公告成就,显示死亡消息
- 实体/方块掉落,生物战利品,有限制作
**技术设置:**
- 随机滴答速度,生成半径
- 最大拥挤度,命令链长度
- 玩家睡眠百分比
### GUI 界面
- **交互式菜单**: 轻松管理游戏规则的基于点击的界面
- **视觉指标**: 布尔游戏规则的清晰开启/关闭状态
- **值输入**: 基于聊天的整数游戏规则输入
- **权限感知**: 仅显示玩家有权修改的游戏规则
- **实时应用**: 游戏规则值更改立即应用于岛屿世界
### 权限系统
- **默认访问**: 岛屿所有者默认可以看到所有游戏规则
- **LuckPerms 集成**: 使用 LuckPerms 隐藏特定游戏规则
- **管理员绕过**: 工作人员可以访问所有游戏规则,无论限制如何
- **细粒度控制**: 每个 31 个支持的游戏规则的单独权限
## 自定义岛屿模板
该插件包含一个复杂的基于 YAML 的蓝图系统。岛屿模板存储在 `src/main/resources/schematics/` 中,包括:
### 模板结构
```yaml
name: "Island Name"
description: "Island description"
# 可选:指定世界类型和生物群系(用于地狱岛)
world: "skyblock_nether"
biome: "NETHER_WASTES"
size:
width: 9
height: 5
length: 9
spawn_offset:
x: 4
y: 1
z: 4
structure:
- level: 0
blocks:
- "air air dirt dirt dirt air air air"
# ... 更多方块行
chest_contents:
- location: [4, 2, 3]
items:
- "ice:2"
- "lava_bucket:1"
```
### 创建自定义模板
1. 在世界中构建你的岛屿模板
2. 使用 WorldEdit 魔杖选择区域 (`//wand`)
3. 复制选择 (`//copy`)
4. 保存为蓝图 (`//schem save island-normal`)
5. 将蓝图文件移动到 `plugins/SkyeBlock/schematics/`
## 🌋 地狱岛屿系统
SkyeBlock 现在具有全面的地狱岛屿支持,具有专用的地狱虚空世界和生物群系管理。
### 🔥 地狱岛屿功能
- **专用地狱世界**: 每个地狱岛屿都有其自己的虚空地狱环境
- **自动生物群系设置**: 岛屿会自动设置为 `NETHER_WASTES` 生物群系
- **地狱专用模板**: 带有黑曜石、地狱岩石和灵魂沙的专用蓝图
- **新手工具包集成**: 一个装有地狱生存必需品的箱子
- **世界环境**: 合适的地狱环境,具有地狱机制
### 🏗️ 地狱岛屿结构
地狱岛屿模板包括:
- **黑曜石平台底座**: 你的地狱岛屿的坚固基础
- **地狱岩石中间层**: 经典的地下建造材料
- **灵魂沙补丁**: 预先种植的用于地狱疣农场的区域
- **新手箱子内容**:
- 水桶 (2) - 地狱生存必需品
- 黑曜石 (4) - 用于传送门构造
- 火把 (1) - 生火工具
- 地狱疣 (8) - 用于酿造和农场
- 烈焰棒 (2) - 酿造燃料
- 幽灵之泪 (1) - 高级酿造配料
- 烤熟的猪肉 (10) - 食物供应
- 岩浆块 (4) - 光和建筑材料
### 🌍 技术实现
- **世界结构**: 地狱岛屿组织在 `skyeblock/nether/` 目录中
- **SlimeWorld 集成**: 使用结构化命名 `skyeblock_nether_`
- **生物群系管理**: 自动设置岛屿周围 32x32 生物群系
- **环境设置**: 适当的地狱环境,默认禁用生物生成
- **回退支持**: 如果没有单独的世界,则回退到主地狱世界
### 🎮 创建地狱岛屿
```bash
# 使用任何命令风格创建地狱岛屿
/island create nether
/sb island create nether
# 首先查看可用岛屿类型
/island types
/sb island types
```
### ⚙️ 配置
地狱世界配置在主配置文件中:
```yaml
worlds:
nether:
enabled: true
environment: "NETHER"
biome: "NETHER_WASTES"
```
# 消息 (可定制)
messages:
prefix: "&8[&6SkyeBlock&8] &r"
island-created: "&a岛屿创建成功!传送到那里..."
# ... 更多消息
```
## 创建岛屿模板
1. 在世界中构建你的岛屿模板
2. 使用 WorldEdit 魔杖 (`//wand`) 选择该区域
3. 复制选择 (`//copy`)
4. 保存为蓝图 (`//schem save island-normal`)
5. 移动蓝图文件到 `plugins/SkyeBlock/schematics/`
## 权限
### 基本权限
- `skyeblock.*` - 所有权限 (默认:op)
- `skyeblock.island` - 基本岛屿命令 (默认:true)
- `skyeblock.hub` - 中枢传送命令 (默认:true)
- `skyeblock.admin` - 管理员命令 (默认:op)
### 游戏规则权限 (LuckPerms 集成)
- `skyeblock.gamerules.adminbypass` - 绕过所有游戏规则限制 (默认:op)
- `skyeblock.gamerule.*` - 所有单个游戏规则权限 (默认:true)
### 单个游戏规则控制
该插件提供对 31 个不同游戏规则的细粒度控制:
**布尔游戏规则:**
- `skyeblock.gamerule.keepinventory` - 死亡时保持物品栏
- `skyeblock.gamerule.mobgriefing` - 生物破坏
- `skyeblock.gamerule.dodaylightcycle` - 白天/夜晚循环
- `skyeblock.gamerule.doweathercycle` - 天气变化
- `skyeblock.gamerule.domobspawning` - 自然生物生成
- `skyeblock.gamerule.dofiretick` - 火焰蔓延
- `skyeblock.gamerule.falldamage` - 跌落伤害
- `skyeblock.gamerule.firedamage` - 火焰伤害
- `skyeblock.gamerule.drowningdamage` - 溺水伤害
- 还有 16 个布尔游戏规则...
**整数游戏规则:**
- `skyeblock.gamerule.randomtickspeed` - 随机滴答速度
- `skyeblock.gamerule.spawnradius` - 生成半径
- `skyeblock.gamerule.maxentitycramming` - 最大拥挤度限制
- `skyeblock.gamerule.maxcommandchainlength` - 命令链长度限制
- `skyeblock.gamerule.playerssleepingpercentage` - 玩家睡眠百分比
### LuckPerms 用法示例
```bash
# 从默认玩家隐藏危险的游戏规则
lp group default permission set skyeblock.gamerule.mobgriefing false
lp group default permission set skyeblock.gamerule.dofiretick false
# 允许 VIP 玩家访问受限的游戏规则
lp group vip permission set skyeblock.gamerule.mobgriefing true
# 仅限工作人员限制技术游戏规则
lp group default permission set skyeblock.gamerule.randomtickspeed false
lp group moderator permission set skyeblock.gamerule.randomtickspeed true
```
> **注意**: 所有游戏规则默认可见。将权限设置为 `false` 以隐藏特定游戏规则。
## 技术细节
### 世界管理
- **SlimeWorldManager 集成**: 自动检测并使用 SWM/ASWM 以优化世界处理
- **独立的岛屿世界**: 每个岛屿在 SlimeWorldManager 可用时拥有其自己的世界
- **地狱世界支持**: 专用的地狱虚空世界,具有适当的环境和生物群系设置
- **岛屿世界组织结构**: 岛屿组织在 `skyeblock/overworld/` 和 `skyeblock/nether/` 目录中
- **回退支持**: 如果 SlimeWorldManager 未安装,则提供平滑的回退到标准 Bukkit 世界
- **世界清理**: 岛屿删除和资源清理的适当处理
### 岛屿管理
- **岛屿格式**: `island--` 用于唯一标识
- **多环境支持**: 支持世界和地狱环境
- **生物群系管理**: 地狱岛屿的自动生物群系设置 (NETHER_WASTES)
- **安全传送**: 智能关键点计算和世界特定的传送
- **蓝图支持**: 内置基于 YAML 的蓝图系统,带有箱子填充和地狱专用功能
- **设置持久性**: 每个岛屿保存单个游戏规则设置
### GUI 系统
- **交互式设置**: 全面的 GUI 界面用于游戏规则管理
- **权限集成**: 根据 LuckPerms 权限动态地游戏规则可见性
- **实时更新**: 当游戏规则值更改时,实时更新
- **管理员绕过**: 工作人员可以访问所有游戏规则,而无论单个限制如何
### 性能功能
- **优化世界加载**: 世界创建和管理的高效
- **内存管理**: 适当的清理和资源管理
- **压缩存储**: SlimeWorld 集成以减少磁盘使用量
- **结构化世界组织**: 用于世界和地狱岛屿的组织文件夹结构
- **异步操作**: 在可能的情况下执行非阻止的世界操作
## 使用示例
### 🎯 双命令系统用法
两种命令样式都相同 - 选择最适合你的!
```bash
# 创建岛屿 - 两种方法都有效:
/island create classic ↔️ /sb island create classic
/island create desert ↔️ /sb island create desert
/island create nether ↔️ /sb island create nether
# 导航 - 两种方法都有效:
/island home ↔️ /sb island home
/visit PlayerName ↔️ /sb visit PlayerName
/hub ↔️ /sb hub
# 管理 - 两种方法都有效:
/island settings ↔️ /sb island settings
/island types ↔️ /sb island types
/delete ↔️ /sb delete
```
### 🏝️ 创建岛屿
```bash
# 简单岛屿创建
/island create classic
/island create desert
/island create nether # 创建地狱岛屿于专用的地狱虚空世界
# 首先检查可用类型
/island types
# 输出:可用岛屿类型:classic, desert, nether
```
### ⚙️ 管理岛屿设置
```bash
# 打开交互式 GUI
/island settings
# 玩家看到的游戏规则基于他们的权限
# 具有 adminbypass 的工作人员会看到所有 31 个游戏规则
```
### 🛠️ 管理员管理
```bash
# 列出所有岛屿的详细信息
/island list
# 检查服务器和世界管理器状态
/island status
# 删除任何玩家的岛屿(仅限管理员)
/island delete PlayerName
```
### 🎮 获取帮助
```bash
# 显示子命令帮助
/sb
# 显示岛屿命令帮助
/island help
```
## 📚 文档
### 核心指南
- **`DUAL_COMMAND_SYSTEM.md`** - 全新的双命令系统完整指南
- **`NETHER_ISLAND_GUIDE.md`** - 全面的地狱岛屿功能和设置指南
- **`LUCKPERMS_GAMERULE_PERMISSIONS.md`** - LuckPerms 游戏规则权限设置
- **`ASWM_INTEGRATION_GUIDE.md`** - SlimeWorldManager 集成细节
- **`ISLAND_SETTINGS_IMPLEMENTATION.md`** - 岛屿设置和 GUI 系统
### 技术文档
- **`GAMERULE_PERMISSIONS_UPDATE.md`** - 技术实施细节
- **`NETHER_FOLDER_STRUCTURE_COMPLETE.md`** - 地狱世界组织和结构
- **`DEPLOYMENT_GUIDE.md`** - 服务器部署和调试信息
- **`TESTING.md`** - 测试程序和预期结果
- **`PROJECT_COMPLETE.md`** - 完整功能概述和状态
### 快速参考
- **`DEPLOYMENT_CHECKLIST.md`** - 部署前验证清单
- **`COMMAND_TESTING.md`** - 命令测试程序
- **`test-nether-folder-structure.sh`** - 地狱岛屿测试脚本
- **`MINIMESSAGE_TESTING.md`** - 文本格式验证
## 🚀 最近更新
### ✨ 版本 2.0.0 - 主要版本 (2025 年 1 月)
#### 🎮 岛屿创建 GUI 系统
- **全新: 交互式岛屿创建**: 美观的 GUI 界面用于创建新的岛屿
- **视觉岛屿类型选择**: 从经典、沙漠或地狱岛屿中进行视觉预览选择
- **模板预览系统**: 在创建之前查看岛屿布局并提供详细描述
- **增强的用户体验**: 直观的点击创建界面,并带有确认对话框
- **智能模板加载**: 自动模板验证和加载系统
#### 🏝️ 高级岛屿管理
- **全面的岛屿控制**: 从创建到删除的生命周期完整管理
- **多环境支持**: 轻松处理世界和地狱岛屿
- **岛屿类型验证**: 所有岛屿操作的强大验证系统
- **增强的安全性特性**: 对破坏性操作进行多重确认
- **改进的世界处理**: 更好的世界创建、加载和清理过程
#### 🌋 地狱集成 & 生物群系管理
- **完整的地狱系统**: 全面支持地狱岛屿,并提供适当的环境处理
- **高级生物群系控制**: 所有岛屿类型的自动生物群系设置和管理
- **地狱虚空世界**: 专用的地狱虚空环境
- **多生物群系支持**: 支持各种生物群系,包括沙漠、平原和地狱荒地
- **环境特定的模板**: 针对不同生物群系定制的模板
#### 💬 MiniMessage 支持 & 现代 UI
- **Adventure API 集成**: 完整的 MiniMessage 支持,用于现代文本格式
- **丰富的文本消息**: 彩色文本、悬停效果和交互元素
- **增强的 GUI 元素**: 漂亮的、现代的界面元素,具有适当的样式
- **改进的用户反馈**: 所有用户交互的清晰、格式化的消息
- **一致的设计语言**: 所有插件界面中的统一视觉设计
#### 🔒 增强的安全性和稳定性
- **强大的错误处理**: 全面的错误检测和优雅的故障恢复
- **输入验证**: 所有用户输入和命令的严格验证
- **资源管理**: 更好的内存和资源清理
- **线程安全**: 更好的并发处理以应对多玩家环境
- **稳定性改进**: 减少了崩溃并提高了整体插件稳定性
#### 🎯 双命令系统 (持续)
- **直接命令**: `/island`, `/visit`, `/delete`, `/hub` (保留现有用法)
- **子命令**: `/sb island`, `/sb visit`, `/sb delete`, `/sb hub`(统一接口)
- **完全向后兼容**: 所有现有命令继续无缝工作
- **智能帮助系统**: `/sb` 显示所有可用子命令和描述
- **完整的自动完成**: 所有命令和岛屿类型都支持智能自动完成
#### 🔧 核心系统改进
- **SlimeWorldManager 集成**: 独立的岛屿世界,自动回退
- **🌍 高级世界管理**: 具有世界/地狱目录的结构化组织
- **LuckPerms 权限系统**: 对 31 个游戏规则进行细粒度控制
- **交互式设置 GUI**: 实时游戏规则管理,带有视觉指示器
- **优化性能**: 更好的世界管理和资源清理
## 💡 支持 & 贡献
### 获取帮助
- 检查存储库中的综合文档
- 使用测试脚本验证您的设置
- 审查配置示例以了解常见设置
### 报告问题
- 包括服务器版本和插件配置
- 提供相关的控制台日志和错误消息
- 使用包含的验证脚本进行测试
### 开发
- 插件遵循现代 Bukkit/Paper 开发实践
- 使用 Adventure API 进行文本组件和 MiniMessage 格式
- 包含全面的测试套件和验证工具
- 同时支持 SlimeWorldManager 和标准 Bukkit 世界
### 质量保证
- ✅ **完整的测试覆盖率**: 包含全面的测试脚本
- ✅ **多环境测试**: 针对世界和地狱岛屿的验证
- ✅ **验证工具**: 各种组件的多个验证脚本
- ✅ **向后兼容**: 保持与现有设置的兼容
- ✅ **性能优化**: 高效的世界管理和资源使用
## 📄 许可证
该插件由 SkyeNetwork 开发。保留所有权利。
**SkyeBlock 插件 v1.1.0** - 一个全面的岛屿管理解决方案,具有双命令系统、高级权限、现代 Minecraft 服务器集成以及具有专用虚空世界和优化目录结构的完整地狱岛屿支持。