用Java写一个Bukkit1121 基于Mythicmobs 禁止怪物跟随玩家离开出生地图
以下是一个示例代码,用于在Bukkit 1.12.1中使用MythicMobs禁止怪物跟随玩家离开出生地图:
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChangedWorldEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class NoMobFollow extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
disableMobFollow(event.getPlayer().getWorld());
}
@EventHandler
public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
disableMobFollow(event.getPlayer().getWorld());
}
private void disableMobFollow(World world) {
for (Entity entity : world.getEntities()) {
// 检查实体是否为MythicMobs的怪物实体
if (entity.hasMetadata("MM_CustomName")) {
// 在这里可以添加更多的判断条件,比如怪物的类型、名称等
// 禁止怪物跟随
entity.setAI(false);
}
}
}
}
在这个示例代码中,我们创建了一个名为NoMobFollow的插件,并实现了Listener接口来监听玩家加入服务器和切换世界的事件。在这两个事件中,我们调用了disableMobFollow()方法来禁止怪物跟随玩家离开出生地图。在disableMobFollow()方法中,我们遍历了当前世界中的所有实体,通过检查实体是否有MythicMobs的自定义名称元数据来判断是否为怪物实体。如果是,我们可以根据需要添加更多的判断条件,比如怪物的类型、名称等,然后禁止怪物跟随玩家离开出生地图。
请注意,这只是一个简单的示例代码,你可能需要根据自己的需求进行修改和扩展。另外,你还需要在插件的主类中注册监听器,即在onEnable()方法中调用Bukkit.getPluginManager().registerEvents(this, this)来注册NoMobFollow插件的事件监听器
原文地址: http://www.cveoy.top/t/topic/ivqb 著作权归作者所有。请勿转载和采集!