LTDV10/packet/kubejs/server_scripts/Ice and Fire/collect_dragon_blood.js
2026-04-14 18:20:56 +08:00

36 lines
1.5 KiB
JavaScript

const $EntityDragonBase = Java.loadClass("com.github.alexthe666.iceandfire.entity.EntityDragonBase")
ItemEvents.entityInteracted("createdelight:blood_collection_device", e => {
if (e.player.cooldowns.isOnCooldown("createdelight:blood_collection_device"))
return
let entity = e.target
if (!entity || !entity.living)
return
//限制主手使用
if (!(e.player.mainHandItem == "createdelight:blood_collection_device" && e.player.offHandItem == "minecraft:glass_bottle"))
return
if (entity instanceof $EntityDragonBase) {
/**
* @type {Internal.EntityDragonBase}
*/
let dragon = entity
if (dragon.isTame() && dragon.isAlive() && !dragon.isDeadOrDying()) {
let maxhp = dragon.maxHealth
let damage = Math.max(50, maxhp * 0.1)
dragon.attack(e.player.damageSources().genericKill(), damage)
if (dragon.type == "iceandfire:fire_dragon") {
e.player.give("iceandfire:fire_dragon_blood")
}
else if (dragon.type == "iceandfire:ice_dragon") {
e.player.give("iceandfire:ice_dragon_blood")
}
else if (dragon.type == "iceandfire:lightning_dragon") {
e.player.give("iceandfire:lightning_dragon_blood")
}
e.player.cooldowns.addCooldown(e.player.mainHandItem.item, 60)
e.player.mainHandItem.shrink(1)
e.player.offHandItem.shrink(1)
player.swing()
}
}
})