版本1.20.1
脚本位置:startup_scripts/
假如一个药水效果在移除的时候有bug,所以必须在获取的时候拦截,但是kubejs没有提供此事件,怎么办?输入这段代码:
import { $Event } from "packages/net/minecraftforge/eventbus/api/$Event";
const $ForgeRegistries =Java.loadClass('net.minecraftforge.registries.ForgeRegistries')
ForgeEvents.onEvent('net.minecraftforge.event.entity.living.MobEffectEvent', event => {
const effectId = $ForgeRegistries.MOB_EFFECTS.getKey(event.effectInstance.getEffect())
if (effectId == 'minecraft:speed' && !event.entity.isPlayer()) {
event.setResult($Event.Result.DENY)
}
})
然后就可以阻止实体获取药水效果啦!(entity是目标实体,演示效果为阻止所有非玩家实体获取原版速度效果)