你可以使用Bukkit的事件监听器来实现这个功能。下面是一个示例代码,它会在玩家切换世界时检查玩家周围的实体(怪物),并将它们从切换后的世界中删除:

import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChangedWorldEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class WorldChangeListener extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onPlayerChangeWorld(PlayerChangedWorldEvent event) {
        // 获取切换前的世界和切换后的世界
        String fromWorld = event.getFrom().getName();
        String toWorld = event.getPlayer().getWorld().getName();

        // 检查是否是玩家切换世界
        if (!fromWorld.equals(toWorld)) {
            // 获取切换前世界内的所有实体
            for (Entity entity : event.getFrom().getEntities()) {
                // 检查实体是否为怪物
                if (entity.getType() == EntityType.ZOMBIE || entity.getType() == EntityType.SKELETON) {
                    // 从切换后的世界中删除怪物
                    entity.remove();
                }
            }
        }
    }
}

你需要将这个代码保存为一个Java类文件,并将其放入你的Bukkit插件的源代码文件夹中。然后,编译并将插件jar文件放入你的服务器的插件文件夹中。当玩家切换世界时,插件将自动检测并删除切换后世界中的怪物。请注意,你需要安装并启用MythicMobs插件才能使用此代码。

用Java写一个Bukkit1122 基于Mythicmobs 玩家切换世界的时候 禁止将切换世界前地图内的怪物带入切换后的世界

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

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