如何阻止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
相关产品推荐
相关产品推荐

