版本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是目标实体,演示效果为阻止所有非玩家实体获取原版速度效果)