在Bukkit 1.12.1上使用MythicMobs插件,可以通过编写一个监听器来实现禁止特定怪物跟随玩家离开出生地图的功能。

首先,你需要创建一个监听器类,例如MythicMobsListener,并让它继承org.bukkit.event.Listener接口。然后,你需要在该类中注册一个事件处理方法,用于监听玩家移动事件。

import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;

public class MythicMobsListener implements Listener {

    @EventHandler
    public void onPlayerMove(PlayerMoveEvent event) {
        // 获取玩家
        Player player = event.getPlayer();
        
        // 获取玩家当前位置所在的地图
        String currentWorld = player.getWorld().getName();
        // 获取怪物的实体ID
        int entityId = event.getEntity().getEntityId();
        
        // 检查怪物是否为特定名字
        if (MythicMobs.inst().getMobManager().getActiveMob(entityId).getDisplayName().equals("特定的名字")) {
            // 检查玩家是否离开出生的地图
            if (!currentWorld.equals("出生的地图名称")) {
                // 如果怪物离开了出生的地图,则取消它对玩家的跟随
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "mm mob " + entityId + " canceltarget");
            }
        }
    }
}

在上面的代码中,我们使用了PlayerMoveEvent事件来监听玩家移动事件。在事件处理方法中,我们首先获取了玩家和怪物的相关信息。然后,我们检查怪物是否为特定名字,并且玩家是否离开了出生的地图。如果满足这两个条件,我们使用命令mm mob <实体ID> canceltarget来取消怪物对玩家的跟随。

最后,在你的主类中注册监听器:

import org.bukkit.plugin.java.JavaPlugin;

public class YourPlugin extends JavaPlugin {

    @Override
    public void onEnable() {
        // 注册监听器
        getServer().getPluginManager().registerEvents(new MythicMobsListener(), this);
    }
}

这样,当特定的怪物名字出现并且玩家离开出生地图时,怪物将不再跟随玩家。请记得替换代码中的"特定的名字"和"出生的地图名称"为你实际使用的名字和地图名称


原文地址: http://www.cveoy.top/t/topic/ivq8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录