# AnyARES (高级区域编辑套件)

AnyARES 是一个为 PaperMC 服务器量身打造的现代、高性能、异步世界编辑套件,从底层开始构建,注重性能和可扩展性。
灵感来源于 WorldEdit 和 FAWE 等大型工具,AnyARES 旨在为服务器管理员和高级建造者提供一套强大的、直观的、无延迟的工具集,用于大规模区域操作。 其核心理念基于一个精简、强大的核心插件和丰富的可选附加插件生态系统,允许服务器所有者仅安装他们需要的特性。
# 服务器要求
### 服务器软件
**Paper** (或 Purpur 等下游分支)。由于该插件依赖 Paper 的高级异步 API 来实现性能,因此 **不** 支持 Spigot。
### Minecraft 版本
**1.21.x**。该插件针对 1.21 API 构建,不能在 1.20.x 等旧版本上工作。 始终建议使用与 Minecraft 发布版本对应的最新版本的 Paper。
### Java 版本
**Java 21**。这是 Minecraft 1.21+ 本身的要求,因此如果您的服务器正在运行,您已经满足此要求了。
# ✨ 核心功能
AnyARES-Core 插件提供了所有世界编辑任务的必要基础。
异步设计:所有方块操作都通过强大的异步任务引擎处理,最大限度地减少对服务器性能 (TPS) 的影响。
多形状选择系统:原生支持超出简单长方体范围的各种选择形状。
长方体:经典的盒状选择。
球体:由中心和半径定义的完美球形选择。
圆柱体:垂直或任意方向的圆柱体。
2D 多边形(挤出):定义自定义平面形状并将其垂直挤出以创建复杂的棱柱体。
强大的模式解析器:超越单个方块。 使用类似于 50%stone,30%dirt,20%gravel 的复杂模式,并指定 oak_log[axis=y] 等方块状态。
完整的历史系统:每个操作的无限撤销 (/undo) 和重做 (/redo),按玩家存储。
玩家剪贴板:一个适用于所有选择形状的强大的 /copy,/cut 和 /paste 系统。
可扩展的 API:一个干净、定义明确的 API (AnyAresAPI),专为开发人员轻松创建和集成他们自己的插件而设计。
实时可视化:通过轻量级的基于粒子的可视化器实时查看您的选择,该可视化器勾勒出您选择的形状。
# 🔌 插件生态系统
AnyARES 旨在具有模块化设计。 核心插件本身就很强大,但其真正的潜力通过插件来解锁。
AnyARES-Selections (包含): 提供高级选择操作命令的官方插件。
# 🚀 计划功能 & 路线图
AnyARES 的旅程才刚刚开始! 以下是针对核心和新插件未来计划的功能一览。
## 核心增强
性能优化通道:连续分析和优化方块迭代器、任务引擎和内存使用情况。
笔刷系统 API:用于将操作绑定到物品的核心 API,允许在插件中创建强大的绘画和雕刻工具。
遮罩系统 API:用于源和目标遮罩的 API,允许操作仅影响特定方块(例如 //replace stone dirt -m !air)。
变换 API:一个框架,用于将几何变换(例如旋转和翻转)应用于玩家剪贴板。
## 未来插件
### AnyARES-Clipboard:
完整的 .schem 模式文件支持 (/schem load, /schem save, /schem list)。
支持在玩家之间共享剪贴板。
### AnyARES-Operations:
WorldEdit 命令,例如 //walls,//outline,//overlay。
高级操作,例如 //smooth 和 //regen。
### AnyARES-BrushesAddon:
一系列标准笔刷:球形笔刷,平滑笔刷,粘贴笔刷等。
### AnyARES-Tools:
“魔杖”/连续方块选择工具。
信息工具(例如 /tool info 以获取方块数据)。
### AnyARES-Scripting:
与脚本引擎集成,允许用户编写自己的复杂操作。
# 🛠️ 供开发者使用
AnyARES 考虑到了开发者的需求。 要创建您自己的插件:
1. 在您的 pom.xml 中将 AnyARES-Core 添加为提供的依赖项。
2. 将 depend: [AnyARES-Core] 添加到您的插件的 plugin.yml 中。
3. 使用 com.anynom39.anyares.api.AnyAresAPI 类安全地与所有核心管理器和功能交互。
# ❓ 为什么再做另一个世界编辑器?
AnyARES 的目标不仅仅是克隆现有的工具,而是以现代架构重新构想它们,重点关注:
性能:充分利用 PaperMC 的异步功能。
模块化:提供稳定的核心,并允许服务器所有者通过插件选择他们想要的功能集。
可扩展性:尽可能方便其他开发人员在此平台之上构建。
我们相信这种方法将导致适用于现代 Minecraft 服务器的更稳定、更高效、更通用的工具。