用Java写一个Bukkit1122 基于Mythicmobs 怪物名字为 特定的名字时 禁止跟随玩家离开出生的地图
在Bukkit 1.12.2中,你可以使用MythicMobs API来实现禁止特定怪物跟随玩家离开出生的地图。以下是一个示例代码:
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChangedWorldEvent;
import io.lumine.xikage.mythicmobs.api.bukkit.events.MythicMobDeathEvent;
import io.lumine.xikage.mythicmobs.api.bukkit.events.MythicMobSpawnEvent;
import io.lumine.xikage.mythicmobs.drops.DropTable;
public class MythicMobsListener implements Listener {
@EventHandler
public void onMythicMobSpawn(MythicMobSpawnEvent event) {
LivingEntity entity = event.getEntity();
String mobName = event.getMobType().getInternalName();
if (mobName.equals("特定的名字")) {
// 禁止怪物跟随玩家离开出生的地图
entity.setRemoveWhenFarAway(true);
}
}
@EventHandler
public void onMythicMobDeath(MythicMobDeathEvent event) {
Entity entity = event.getEntity();
String mobName = event.getMobType().getInternalName();
if (mobName.equals("特定的名字")) {
// 在怪物死亡时移除禁止跟随的设置
entity.setRemoveWhenFarAway(false);
}
}
@EventHandler
public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
for (Entity entity : event.getPlayer().getWorld().getEntities()) {
if (entity instanceof LivingEntity && entity.isCustomNameVisible()) {
String customName = entity.getCustomName();
if (customName != null && customName.equals("特定的名字")) {
// 当玩家切换地图时,检查是否有禁止跟随的怪物存在,如果存在则移除它
entity.remove();
}
}
}
}
}
要使用这个监听器,你需要在你的插件主类中注册它:
import org.bukkit.plugin.java.JavaPlugin;
public class YourPlugin extends JavaPlugin {
@Override
public void onEnable() {
// 注册监听器
getServer().getPluginManager().registerEvents(new MythicMobsListener(), this);
}
@Override
public void onDisable() {
// 插件禁用时的操作
}
}
请注意,这只是一个基本示例代码,你可能需要根据你的需求进行一些修改和调整。确保正确导入MythicMobs的API以及其他必要的Bukkit和Java类
原文地址: http://www.cveoy.top/t/topic/ivra 著作权归作者所有。请勿转载和采集!