Doc ID:
SIRC-043
AdvancedEnchantments API 知识库
AdvancedEnchantments(AE) 插件在二次开发中常用的 API、事件以及典型用法示例,适用于 Spigot / Paper 服务端插件开发者。
Overview
AdvancedEnchantments API 知识库
本文档用于整理 AdvancedEnchantments(AE) 插件在二次开发中常用的 API、事件以及典型用法示例,适用于 Spigot / Paper 服务端插件开发者。
⚠️ 注意
- AE 为闭源商业插件,不同版本之间 API 可能存在差异。
- 本文仅基于常见稳定版本的 API 行为总结,实际开发时请 以你当前版本的源码 / Javadoc 为准。
一、核心包结构说明
1️⃣ 公共 API 包
net.advancedplugins.ae.api
该包下通常包含:
- 对外暴露的 API 接口
- 静态工具类(如 AEAPI)
- 附魔相关的数据结构
不同版本中类名可能略有变化,请在 IDE 中直接查看该包内容。
2️⃣ 附魔效果 / 事件相关包
net.advancedplugins.ae.impl.effects.api
该包主要用于:
- 监听附魔效果触发
- 获取触发原因、附魔等级、来源实体等信息
二、常用 API 用法
✅ 为物品应用 AE 附魔
最常见的需求是 在代码中给 ItemStack 添加 AE 自定义附魔。
示例代码
import net.advancedplugins.ae.api.AEAPI;
import org.bukkit.inventory.ItemStack;
ItemStack item = ...;
String enchantName = "lifesteal"; // AE 附魔配置名
int level = 3;
ItemStack enchantedItem = AEAPI.applyEnchant(item, enchantName, level);
说明
enchantName使用的是 AE 配置中的附魔 key,不是展示名- 如果附魔不存在,通常不会抛异常,但也不会生效
- 建议在调用前自行校验附魔是否存在(不同版本校验方式不同)
✅ 判断物品是否包含 AE 附魔
不同版本实现不同,常见思路包括:
- 通过 AEAPI 提供的方法
- 或读取物品 Lore / NBT(不推荐,不稳定)
⚠️ 若 API 中未暴露直接判断方法,建议查看
AEAPI或相关 Manager 类。
三、事件系统
🎯 EffectsActivateEvent(附魔效果触发事件)
这是 AE 开发中 最核心的事件之一,用于监听自定义附魔何时被触发。
监听示例
import net.advancedplugins.ae.impl.effects.api.EffectsActivateEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class AEListener implements Listener {
@EventHandler
public void onEnchantActivate(EffectsActivateEvent e) {
// 附魔名称
String enchantName = e.getEnchantName();
// 附魔等级
int level = e.getLevel();
// 触发该附魔的玩家(如果存在)
if (e.getPlayer() != null) {
// do something
}
// 触发原因(攻击、受伤、挖掘等)
// e.getTrigger(); // 不同版本方法名可能不同
}
}
常见可获取信息(依版本而定)
- 附魔名称(String)
- 附魔等级(int)
- 触发实体 / 玩家
- 受影响实体
- 触发类型(ATTACK / DEFENSE / MINING 等)
⚠️ 方法名在不同 AE 版本中可能变化,例如:
getEnchantName()getEnchant().getName()
请务必以 IDE 自动补全为准。
四、开发注意事项
⚠️ 版本差异说明
- 不要假设 API 稳定,AE 更新可能直接修改方法签名
- 某些类位于
impl包下,理论上 不是稳定 API - 若升级 AE 后编译报错,优先对比新旧版本源码
⚠️ 不要编造类或方法
如果在 net.advancedplugins.ae.api 中:
- 找不到你预期的方法
- 或示例代码无法编译
那么说明:
- 该方法在你当前版本中不存在
- 或被重命名 / 移除
👉 正确做法:
直接在 IDE 中展开 net.advancedplugins.ae.api 包查看真实类结构。
五、推荐开发流程
- 将 AE 插件加入
plugins目录并启动一次服务器 - 使用反编译工具或 IDE Attach Sources 查看 AE Jar
- 优先使用
api包下的类 - 对
impl包下内容保持谨慎
六、总结
- AE 提供了较为完整但不完全稳定的 API
AEAPI.applyEnchant是最常用的附魔应用方式EffectsActivateEvent是监听附魔行为的核心事件- 一切以 当前版本源码 为最终标准