Skip to content

禁止实体穿越到指定维度

本章主要涉及内容:ForgeEvents、forge事件里的EntityTravelToDimensionEvent,本章所有代码部分都在startup_scripts

完整代码

js
const $EntityTravelToDimensionEvent = Java.loadClass("net.minecraftforge.event.entity.EntityTravelToDimensionEvent")

ForgeEvents.onEvent($EntityTravelToDimensionEvent, event => {
    let resourceKey = event.dimension;
    if (resourceKey.getPath() == "the_nether") {
        event.setCanceled(true)
    }
})

以上代码判断了准备穿越维度的实体是否穿越过去的维度为地狱(下界),如果是就取消该事件,让实体无法穿越维度

阶段限制

阶段限制主要是限制玩家,因为只有玩家才有阶段

js
const $EntityTravelToDimensionEvent = Java.loadClass("net.minecraftforge.event.entity.EntityTravelToDimensionEvent")
const $ServerPlayer = Java.loadClass("net.minecraft.server.level.ServerPlayer")

ForgeEvents.onEvent($EntityTravelToDimensionEvent, event => {
    let resourceKey = event.dimension;
    /**
     * @type {Internal.ServerPlayer}
     */
    let player = event.entity;
    if (resourceKey.getPath() == "the_nether") {
        if (player instanceof $ServerPlayer){
            if (!player.stages.has("nether")){
                event.setCanceled(true)
            }
        }
    }
})

贡献者

页面历史