以下是一个基于Mythicmobs的Bukkit插件,可以禁止怪物离开出生地图的示例代码:

import io.lumine.xikage.mythicmobs.MythicMobs;
import io.lumine.xikage.mythicmobs.api.bukkit.events.MythicMobDeathEvent;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class MonsterSpawnLimit extends JavaPlugin implements Listener {
    
    private World spawnWorld;
    private double spawnX, spawnY, spawnZ;
    private double spawnRadius;
    
    @Override
    public void onEnable() {
        // 获取出生地图的信息
        spawnWorld = Bukkit.getWorld("your_spawn_world_name");
        spawnX = 0; // 设置出生地图的X坐标
        spawnY = 0; // 设置出生地图的Y坐标
        spawnZ = 0; // 设置出生地图的Z坐标
        spawnRadius = 50; // 设置出生地图的半径
        
        Bukkit.getPluginManager().registerEvents(this, this);
        getLogger().info("MonsterSpawnLimit 已加载");
    }
    
    @EventHandler
    public void onMythicMobDeath(MythicMobDeathEvent event) {
        Entity entity = event.getEntity();
        Location entityLocation = entity.getLocation();
        
        // 检查怪物是否在出生地图范围内
        if (entity.getWorld().equals(spawnWorld) &&
                entityLocation.distance(new Location(spawnWorld, spawnX, spawnY, spawnZ)) > spawnRadius) {
            // 将怪物传送回出生地图
            entity.teleport(new Location(spawnWorld, spawnX, spawnY, spawnZ));
        }
    }
}

请注意,这只是一个示例代码,你需要根据你自己的需求进行修改和调整。你需要将代码中的your_spawn_world_name替换为你的出生地图的世界名称,并根据实际情况设置出生地图的坐标和半径。

你需要在插件的plugin.yml文件中添加以下内容:

name: MonsterSpawnLimit
version: 1.0
main: com.example.MonsterSpawnLimit
api-version: 1.12

编译并打包插件后,将生成的插件文件(通常是一个.jar文件)放入Bukkit服务器的插件目录中即可生效

用Java写一个Bukkit1121 基于Mythicmobs 禁止怪物离开出生的地图

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

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