| EnchantmentAPI提供了一个简单方便的API,让你创建自己的自定义附魔。 
 
  创建一个附魔: 创建一个新的附魔需要做的第一件事是创建一个自定义附魔的新类。
 别忘了"构建路径"导入插件本体。
 新的附魔类需要继承CustomEnchantment类,你可以像这样写:
 
 构造函数需要以下参数:复制代码public class LifestealEnchantment extends CustomEnchantment
 | String参数 | 附魔的名字。(对于其他自定义附魔必须是唯一的名称,否则它可能不会被注册) |  | String参数 | 附魔的详细介绍。 | 
 
  其他的设置: CustomEnchantment类提供了许多Setter来设置你的自定义附魔,你可以在你的构造函数中调用以下任何一个方法:
 
 | 普通物品 | addNaturalItems(Material...) | 哪些类型的物品可以得到这个附魔。 |  | 附魔难度 | setWeight(double) setWeight(Material, double)
 | 你可以设置物品能够得到这个附魔的难度。 方法一默认所有物品,方法二可指定物品。
 
 |  | 附魔组别 | setGroup(String) | 设置附魔的组别,同一个组别的附魔在同一 个物品上无法同时存在多个。
 
 |  | 叠加使用 | setCanStack(Boolean) | 拥有多个附魔效果的物品的附魔效果是否能 同时发动。
 
 |  | 附魔台使用 | setTableEnabled(Boolean) | 是否可以通过附魔台进行附魔获得。 |  | 最大等级 | setMaxLevel(int) setMaxLevel(int, int)
 | 可以通过附魔台或铁毡附魔到的最高等级。 方法一同时设置两者,方法二分别是附魔台、铁毡。
 
 |  | 铁毡耗费 | setCombineCostPerLevel(int) | 设置附魔等级每一级的铁毡经验耗费。 |  | 最低等级 | setMinEnchantingLevel(double) | 设置通过附魔台附魔的最低等级需求。 |  | 增长因子 | setEnchantLevelScaleFactor(double) | 每增加一个附魔等级额外需要的附魔等级。 |  | 最大延展数 | setEnchantLevelBuffer(double) | 最大附魔因子增长数。 | 
 
  附魔效果设置: 接下来,您可以通过重写一个或多个方法来为你的自定义附魔创建任何效果。
 
 每种方法都是可选的,但您可以根据需要使用尽可能多的方法(例如,胸甲在攻击时会召唤闪电,在受到攻击时会反弹伤害,并且会使你破坏的每一个方块都掉落钻石,这些都可以通过一个附魔实现)。 我们使用其中的一个,只需重写它并抛出所需的任何效果,下面是详细示例:复制代码//攻击实体
applyOnHit(LivingEntity, LivingEntity, int, EntityDamageByEntityEvent)
//被实体攻击
applyDefense(LivingEntity, LivingEntity, int, EntityDamageEvent)
//破坏方块
applyBreak(Player, Block, int BlockEvent)
//方块交互
applyInteractBlock(Player, int, PlayerInteractEvent)
//装备物品
applyEquip(Player, int)
//卸下物品
applyUnequip(Player, int)
//实体交互
applyInteractEntity(Player, int, PlayerInteractEntityEvent)
//弹射物发射
applyProjectile(LivingEntity, int, ProjectileLaunchEvent)
 每种类型的附魔都带有激活附魔的事件,所以你可以改变事件的结果,比如造成的伤害或者立即破坏一个方块。复制代码//一个攻击时的附魔效果示例
    @Override
    public void applyOnHit(LivingEntity user, LivingEntity target, int enchantLevel, EntityDamageByEntityEvent, event) {
      //根据附魔等级,偷取生命值
      user.setHealth(Math.max(user.getMaxHealth(), user.getHealth() + enchantLevel));
    }
更多的示例,请参考基于本API所写的插件:EnchantmentPack
 
 |