用Java写一个Bukkit1122 基于Mythicmobs 玩家切换世界的时候 禁止将切换世界前地图内的怪物带入切换后的世界
你可以使用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插件才能使用此代码。
原文地址: http://www.cveoy.top/t/topic/ivrc 著作权归作者所有。请勿转载和采集!