ChunkDeleter

一个高级区块清理插件,用于删除Paper/Folia服务器中未使用的区块。

资源图片
# ChunkDeleter 一个适用于 Paper/Folia 服务器的高级区块清理插件,它可以自动删除玩家指定时间段内未进入的区块。 ## 特性 ### 🚀 高级调度 - **Folia 支持**: 完整兼容 Folia 的线程区域调度器 - **Paper/Spigot 支持**: 对于 Paper/Spigot 服务器,回退到标准调度器 - **线程安全**: 所有操作使用适当的调度器以确保线程安全 - **PerfoBooster 集成**: 自动检测和优化与 PerfoBooster 插件 ### 🛡️ 智能保护系统 - **生成点保护**: 保护世界生成点附近的区块 - **玩家保护**: 保护附近在线玩家的区块 - **结构保护**: 保护包含重要结构(传送门、信标等)的区块 - **瓦尔单位保护**: 保护包含存储方块、熔炉和其他重要方块的区块 - **建筑检测**: 识别玩家建造的结构并保护它们 ### ⚙️ 灵活配置 - **CamelCase 配置**: 现代、整洁的配置格式 - **可配置的时间限制**: 设置区块必须处于未使用状态多长时间才能删除 - **宽限期**: 标记和宽限期两阶段删除 - **世界特定设置**: 针对特定世界启用/禁用 - **性能调整**: 可调整的批次大小和处理限制 ### 📊 基本跟踪与日志记录 - **SQLite 数据库**: 高效的区块访问跟踪 - **文件日志记录**: 详细的区块删除日志保存在 `logs/latest.txt` 中 - **坐标日志记录**: 精确的区块和方块坐标跟踪 - **统计信息**: 详细的已扫描、已删除和已保护区块的统计信息 - **实时监控**: 实时跟踪区块访问 ### 🎛️ 易于管理 - **游戏内命令**: 全面的命令界面进行管理 - **日志管理**: 在游戏中查看、追踪和清除日志文件 - **权限系统**: 细粒度的权限控制 - **热重载**: 在不重启的情况下重新加载配置 - **手动清理**: 手动触发清理周期 - **自动优化**: 一键安装 PerfoBooster ## 安装 1. 下载 ChunkDeleter JAR 文件 2. 将其放置在服务器的 `plugins` 文件夹中 3. 重启服务器 4. 在 `plugins/ChunkDeleter/config.yml` 中配置插件 5. (可选) 使用 `/chunkdeleter optimize` 安装 PerfoBooster 以获得更好的性能 ## 命令 ### 核心命令 - `/chunkdeleter help` - 显示帮助信息 - `/chunkdeleter reload` - 重新加载插件配置 - `/chunkdeleter stats` - 显示区块统计信息 - `/chunkdeleter clean` - 手动触发清理 - `/chunkdeleter toggle` - 启用/禁用区块删除 - `/chunkdeleter info` - 显示插件信息 ### 高级命令 - `/chunkdeleter optimize` - 下载并安装 PerfoBooster 插件 - `/chunkdeleter logs` - 查看日志文件信息 - `/chunkdeleter logs tail [lines]` - 显示最近的日志条目(1-50 行) - `/chunkdeleter logs clear` - 清除日志文件 - `/chunkdeleter debug` - 切换调试模式(仅限管理员) **别名**: `/cd`, `/chunkdel` ## 权限 - `chunkdeleter.*` - 访问所有功能(默认:op) - `chunkdeleter.admin` - 全面管理访问权限 - `chunkdeleter.reload` - 重新加载配置的权限 - `chunkdeleter.stats` - 查看统计信息 - `chunkdeleter.clean` - 触发手动清理 - `chunkdeleter.toggle` - 启用/禁用插件 - `chunkdeleter.optimize` - 下载 PerfoBooster 插件 - `chunkdeleter.logs` - 查看和管理日志文件 ## 配置 插件使用现代的 camelCase 配置格式。配置文件包括: ```yaml # 启用/禁用插件 enabled: true # 区块删除设置 chunkDeletion: timeBeforeDeletion: 30 # 删除前区块需要未使用的分钟数 maxChunksPerCycle: 50 # 每个周期处理的最大区块数 cleanupInterval: 300 # 清理间隔,单位秒 immediateDeletion: false # 启用立即删除或使用宽限期 gracePeriod: 5 # 标记区块的宽限期,单位分钟 # 世界设置 worlds: enabledWorlds: [] # 要启用的特定世界(空 = 所有世界) disabledWorlds: # 要排除的世界 - "world_nether" - "world_the_end" spawnProtectionRadius: 10 # 保护生成点周围的区块半径 # 保护设置 protection: protectPlayerChunks: true # 保护附近玩家的区块 playerProtectionRadius: 3 # 玩家保护半径,单位区块 protectStructures: true # 保护包含结构的区块 protectTileEntities: true # 保护包含存储/功能性方块的区块 minTileEntities: 1 # 保护区块所需的最小瓦尔单位数 # 性能设置 performance: asyncScanning: true # 使用异步处理 maxProcessingTimePerTick: 10 # 每个滴度最大处理时间(毫秒) batchSize: 25 # 操作的批处理大小 # 日志设置 logging: logDeletions: true # 将区块删除记录到控制台 logStatistics: true # 定期记录统计信息 statisticsInterval: 60 # 统计间隔,单位分钟 debug: false # 启用调试日志记录 # 数据库设置 database: type: SQLITE # 数据库类型 (SQLITE, MYSQL 或 MEMORY) sqliteFile: "chunkdata.db" # SQLite 文件名 mysql: # MySQL 设置(如果使用 MYSQL) host: "localhost" port: 3306 database: "chunkdeleter" username: "username" password: "password" ``` ## 日志系统 ChunkDeleter 包含一个基本日志系统,用于跟踪所有区块删除: ### 日志文件位置 - **路径**: `logs/latest.txt` (在您的服务器根目录下) - **格式**: 带详细坐标信息的带时间戳的条目 - **线程安全**: 适用于并发访问和高性能服务器 ### 日志条目格式 ``` [2024-01-15 14:30:25] CHUNK_DELETED: World=world, ChunkCoords=[15,11], BlockRange=[240,176] to [255,191], Info=Automatic cleanup [2024-01-15 14:31:02] Manual cleanup triggered by admin [2024-01-15 14:35:10] Cleanup cycle: Processed 45, Deleted 12, Protected 33 chunks ``` ### 日志管理命令 - `/chunkdeleter logs` - 查看日志文件信息和统计信息 - `/chunkdeleter logs tail 20` - 显示最近的 20 条日志条目 - `/chunkdeleter logs clear` - 清除日志文件(仅限管理员) ## PerfoBooster 集成 ChunkDeleter 自动检测并集成 PerfoBooster 以实现最佳性能: ### 自动检测 - **版本兼容性**: 检查 Minecraft 1.20.1 和区域调度器支持 - **服务器兼容性**: 验证 Paper/Folia/Purpur 服务器软件 - **安装警告**: 如果推荐使用 PerfoBooster 但未安装,则显示警告 ### 简单安装 - **一键安装**: 使用 `/chunkdeleter optimize` 自动下载并安装 PerfoBooster - **版本管理**: 始终下载最新的兼容版本 - **安全检查**: 防止在不兼容的服务器上安装 ### 性能优势 当在兼容服务器上安装 PerfoBooster 时: - 在区块操作期间减少服务器延迟 - 优化红石和实体处理 - 增强大规模区块清理操作的性能 ## 工作原理 1. **区块跟踪**: 插件使用移动和传送事件跟踪玩家进入区块的时间 2. **数据库存储**: 将访问时间存储在 SQLite 数据库中以进行持久化 3. **定期清理**: 可配置的清理周期检查旧区块 4. **保护检查**: 多个保护系统防止重要区块被删除 5. **安全删除**: 安全卸载并从跟踪中移除区块 6. **基本日志记录**: 所有操作都记录带详细坐标和时间戳 ## 性能考虑 - **异步处理**: 大多数操作以异步方式运行,以避免服务器延迟 - **批处理**: 区块以可配置的批次进行处理 - **高效数据库**: 具有优化查询和索引的 SQLite - **智能缓存**: 频繁访问的区块缓存在内存中 - **Folia 优化**: 使用区域调度器实现最佳 Folia 性能 - **PerfoBooster 集成**: 借助 PerfoBooster 插件实现增强的性能 ## 兼容性 - **Minecraft**: 1.20 (PerfoBooster 需要 1.20.1) - **服务器软件**: Paper, Folia, Purpur, Spigot - **Java**: 17 - **可选依赖项**: PerfoBooster (可自动安装) ## 支持 如需支持,请加入 discord: https://discord.gg/yUghaxRSZs