You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Minecraft特定生物生成?代码实现失效求助

解决Minecraft插件阻止Vex生成无效的问题

问题分析

你当前的代码仅监听了CreatureSpawnEvent,但Vex存在两种核心生成途径:自然生成与被唤魔者召唤。其中唤魔者召唤Vex的操作不会触发CreatureSpawnEvent,这是代码失效的关键原因。另外,你提供的代码末尾存在多余的}*/语法错误,可能导致整个监听器类无法正常加载生效。

修复方案

1. 先修正代码语法错误

移除代码末尾多余的}*/,确保代码可以正常编译。

2. 改用EntitySpawnEvent监听所有实体生成

EntitySpawnEvent会捕获所有类型的实体生成事件,包括被唤魔者召唤的Vex,覆盖范围远大于CreatureSpawnEvent。修改后的代码如下:

@EventHandler(priority = EventPriority.HIGH)
public void onEntitySpawn(EntitySpawnEvent event) {
    EntityType[] blacklist = {EntityType.VEX};
    for (EntityType type : blacklist) {
        if (event.getEntityType() == type) {
            event.setCancelled(true);
            return; // 匹配到目标后直接退出循环,提升运行效率
        }
    }
}

3. 确保监听器类正确注册

  • 你的监听器类必须添加@org.bukkit.event.Listener注解
  • 在插件主类的onEnable()方法中完成监听器注册:
    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(new YourListenerClass(), this);
    }
    

内容的提问来源于stack exchange,提问作者Aqua_Not

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:50:26