本帖最后由 mimimis 于 2018-2-17 21:11 编辑
EnchantmentAPI·插件Wiki
相关链接: |
|
|
铁毡
EnchantmentAPI的自定义附魔能够与铁砧完美兼容,将具有自定义附魔的物品放在铁砧上,同样可以像原版附魔一样合并两个物品的附魔。
规则:
合并两个相同等级的相同附魔 | 出现比合并的时的等级高出一级的附魔,直到最大。 | 合并两个不同等级的相同附魔 | 出现两者之间附魔等级还高等级的同种附魔。 | 与没有附魔的物品合并 | 保留原有附魔等级。 |
使用耗费:
附魔的使用耗费可以进行配置,配置好这个之后,就像原版附魔一样咯。
|
自定义附魔
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
|
附魔台附魔
在使用附魔台附魔时,不同材质的物品,附魔到更好的附魔效果的概率各不相同,下面是Minecraft原版机制:
材质 | 附魔能力 | 最大修改附魔等级 | 锁链盔甲 | 12 | 41 | 钻石盔甲 | 10 | 39 | 钻石工具 | 10 | 39 | 金盔甲 | 25 | 48 | 金工具 | 22 | 45 | 铁盔甲 | 9 | 39 | 铁工具 | 14 | 41 | 皮革盔甲 | 15 | 41 | 石制工具 | 5 | 36 | 木质工具 | 15 | 41 | 了解更多请前往:Minecraft中文Wiki
自定义:
您可以为物品设置新的附魔能力。
例如,你想让钻石剑具有100的附魔能力。
要自定义这些值,请打开“enchantability.yml”并进行适当的编辑。
您可以复制+粘贴默认的附魔组,然后给它一个唯一的名称并更改类型和附魔能力。
我们看看一组默认的可附魔木制工具的修改:
- # 附魔组的组名,不得重复出现
- wood-tool:
- # 填写物品材质枚举或是物品ID
- types:
- - 'WOOD_AXE'
- - 'WOOD_HOE'
- - 'WOOD_PICKAXE'
- - 'WOOD_SPADE'
- - 'WOOD_SWORD'
- # 附魔能力,这是除以4之后的结果
复制代码 |
附魔扩展包
EnchantmentPack可以说是一个附加组件,它提供了50种新的附魔来帮助你入门,所有的附魔下面已列出:
链接:
Spigot Page - 待更新
GitHub Source
Bukkit Page
附魔列表:
附魔名称 | 可附魔物品 | 最高等级 | 介绍 | 激动 | 所有护腿 | 5 | 攻击时造成额外伤害。 | 垂钓者 | 鱼竿 | 5 | 钓鱼时获得更多的鱼。 | 屏障阵地 | 所有锹类 | 5 | 右键生成一个法阵,推开所有接近它的敌人。 | 狂暴 | 所有斧类 | 5 | 攻击时获得力量效果。 | 盲目 | 所有镐类 | 5 | 攻击敌人并施加失明效果。 | 爆炸阵地 | 所有锹类 | 5 | 右键生成一个法阵,当有敌人进入时发生爆炸并造成伤害。 | 光亮 | 所有头盔 | 5 | 给攻击你的敌人施加失明效果。 | 诅咒 | 所有胸甲 | 5 | 给攻击你的敌人施加凋零效果。 | 冲撞 | 所有剑类 | 5 | 右键向前冲刺,对沿途的敌人造成伤害。 |
低落 | 所有胸甲 | 5 | 给攻击你的敌人施加虚弱效果 | 消失 | 所有锄类 | 5 | 攻击时,可以获得隐身效果。 | 热情 | 所有剑类 | 5 | 攻击时,获得速度效果。 | 火球 | 烈焰棒 | 10 | 右键发射火球。 | 火焰阵地 | 所有锹类 | 5 | 右键生成一个法阵,当敌人进入时引燃敌人。 | 强力 | 所有斧类 | 6 | 攻击时,给一定半径内的敌人造成额外伤害并推开敌人。 | 油炸 | 鱼竿 | 1 | 钓到鱼时,自动烹饪为熟鱼。 | 冻结 | 所有护腿 | 5 | 给攻击你的敌人施加缓慢效果。 | 抓钩 | 鱼竿 | 5 | 将你拉向浮标所处位置。 | 引力 | 所有剑类 | 6 | 攻击时,给一定半径内敌人造成额外伤害并推开敌人。 |
治愈 | 烈焰棒 | 5 | 右键为自己或他人恢复生命值。 | 寒冰阵地 | 所有锹类 | 5 | 生成一个魔法阵,阻止阵内的敌人离开阵地。 | 跳跃 | 所有靴子 | 2 | 获得跳跃提升效果。 | 敲击 | 所有剑类 | 4 | 攻击时,有概率把敌人打向空中。 | 发射阵地 | 所有铲子 | 5 | 右键生成一个法阵,当敌人进入后,立即将敌人弹射至空中。 | 生命 | 所有胸甲 | 6 | 装备时,获得额外生命值上限。 | 吸血 | 所有锄类 | 5 | 攻击时,恢复生命值。 | 闪电 | 所有斧类 | 5 | 攻击时有概率出现闪电。 | 闪电阵地 | 所有锹类 | 5 | 右键生成一个法阵,当敌人进入后,立即被闪电击中。 | 活跃 | 所有靴子 | 5 | 被敌人攻击时,获得速度效果。 |
夜视 | 所有头盔 | 2 | 穿戴后立即获得夜视效果。 | 幻影 | 所有靴子 | 5 | 被敌人攻击时,获得隐身效果。 | 剧毒 | 所有锄类 | 5 | 攻击敌人时,给敌人施加剧毒效果。 | 剧毒阵地 | 所有锹类 | 5 | 当敌人进入时,立即给敌人施加剧毒效果。 | 拉扯 | 所有镐类 | 5 | 把面朝你的敌人全部拉向你。 | 快速 | 所有弓 | 5 | 提高弓箭精准度。 | 反射 | 所有胸甲 | 10 | 有概率反射敌人对你造成的伤害。 | 重生 | 所有胸甲 | 3 | 每秒恢复生命值。 | 恢复 | 所有食物 | 5 | 吃下后直接恢复生命值。 | 击退 | 所有剑类 | 5 | 攻击时,直接将敌人向后推开较远的距离。 |
袭影 | 所有护腿 | 5 | 有概率在一定范围内进行随机传送,并给敌人施加失明效果。 | 缓慢 | 所有锄类 | 5 | 攻击时,给敌人施加缓慢效果。 | 缓慢阵地 | 所有锹类 | 5 | 右键生成一个法阵,进入法阵的所有敌人都会被施加缓慢效果。 | 吸收 | 所有剑类 | 5 | 右键将目标吸收,再次右键放出。 | 毒剂 | 所有胸甲 | 5 | 给攻击你的敌人施加剧毒效果。 | 涡流 | 所有镐类 | 5 | 把一定范围内的所有敌人拉向你。 | 软弱 | 所有锹类 | 5 | 攻击时,给敌人施加虚弱效果。 | 虚弱阵地 | 所有锹类 | 5 | 右键生成一个法阵,给进入的所有人造成虚弱效果。 | 蛛网阵地 | 所有锹类 | 5 | 右键生成一个法阵,给进入的第一个敌人周围放置蜘蛛网。 | 凋零 | 所有剑类 | 5 | 给敌人施加凋零效果。 |
|
钓鱼
钓鱼时,原版机制默认会钓上来书籍、钓鱼竿和装备。有了EnchantmentAPI,你可以在这些物品上加入自定义附魔并控制附魔的效果。
在配置文件中,你可以这样修改:
- # 是否开启钓鱼能够钓到自定义附魔物品
- # 填写true来开启此功能
- custom-fishing: true
- # 默认附魔的等级,在钓到自定义附魔时,物品
- # 默认由多少等级附魔而出。
- fishing-enchanting-level: 30
复制代码 |
附魔效果
技能附魔可以让你使用SkillAPI提供的技能编辑,并将这些技能转化为物品上的附魔效果。
创建附魔效果:
当你创建好了技能并通过SkillAPI的正常流程添加了附魔效果,你现在只需在plugins / EnchantmentAPI / enchant / skill中打开文件夹,创建一个新的yml文件,以你想要命名的附魔命名 ,并将这一行添加到文件中:
只需将“<your_skill_name>”替换为你的技能名称即可。 保存后,启动服务器,它现在应该被您的服务器加载了。现在再检查一下.yml文件,它现在应该具有您现在自定义的所有附魔效果。
触发附魔:
Cast | 右键时 | Initialize | 装备物品时 | Cleanup | 卸下物品时 | Other | 其他的触发条件 |
|
原版附魔修改
附魔API允许你修改原版附魔,改变它们的附魔难度,它们的最高等级,它们是否可以在附魔台中获得,等等。
可以设置的内容:
natural-items | 默认可以获得这个附魔的物品。 | weight | 得到这个附魔的难度。 | material-weights | 特定物品获得这个附魔的难度。 | group | 为附魔指定组别,相同组别的附魔无法同时存在。 | table-enabled | 是否能够在附魔台中附魔出。 | max-level | 附魔自然情况下能获得的最高等级。 | combine-cost | 锻造费用,使用铁毡所消耗的经验值。 | min-enchanting-level | 最低所需等级进行附魔,才可以得到这个附魔。 | enchant-level-scale-factor | 附魔等级增长因数。 | enchant-level-buffer | 最大增长数。 |
|
|
|
|
[groupid=1330]PluginsCDTribe[/groupid]