LTDV10/packet/kubejs/server_scripts/Tetra/effect/forestall.js
2026-04-14 18:20:56 +08:00

41 lines
1.5 KiB
JavaScript

PlayerEvents.tick(e => {
const { player } = e
let item = player.mainHandItem
if (!(item.item instanceof $ModularItem))
return
if (!TetraUtil.itemHasEffect(item, "createdelight:forstall"))
return
let efficiency = TetraUtil.getEffectEfficiency(item, "createdelight:forstall")
let name = "tetra_effect_forstall_countdown"
let count = player.persistentData.getInt(name)
if (count == null)
player.persistentData.putInt(name, efficiency * 20)
else if (count > 0) {
if (count == 1) {
player.sendData("kubejs_player_playsound", {soundEvent: "minecraft:block.chain.place"})
}
player.persistentData.putInt(name, --count)
}
})
/**
*
* @param {Internal.LivingHurtEvent} e
*/
global.TetraForstallAttackEffect = function (e) {
let player = e.getSource().getPlayer()
if (player == null || !player.isPlayer())
return
let item = player.mainHandItem
if (item.item instanceof $ModularItem) {
if (TetraUtil.itemHasEffect(item, "createdelight:forstall")) {
let efficiency = TetraUtil.getEffectEfficiency(item, "createdelight:forstall")
let level = TetraUtil.getEffectLevel(item, "createdelight:forstall")
let count = player.persistentData.get("tetra_effect_forstall_countdown")
if (count == 0) {
e.setAmount(e.amount * level)
}
player.persistentData.putInt("tetra_effect_forstall_countdown", efficiency * 20)
}
}
}