【问题标题】:Zombies don't spawn with armor Minecraft僵尸不会带着盔甲 Minecraft 生成
【发布时间】:2020-12-04 17:04:46
【问题描述】:

我正在尝试在 Eclipse 上编写一个 Minecraft 插件,所有僵尸都以最大盔甲和最大剑生成。然而,它们生成时不会带着盔甲和剑。我看了youtube教程。服务器日志说插件已启用,没有显示错误。帮助?这是我的代码。

public class ChargedCreepersIrZombiaiSuArmor extends JavaPlugin implements Listener {
        @Override
        public void onEnable() {
            this.getServer().getPluginManager().registerEvents(this, this);
        }
        @EventHandler
        public void lol(CreatureSpawnEvent e) {
            if(e.getEntityType() == EntityType.CREEPER) {
                
            
            Creeper creeper = (Creeper) e.getEntity();
            creeper.setPowered(true);
        }
            Zombie zombie = (Zombie) e.getEntity();
        if(e.getEntityType() == EntityType.ZOMBIE) {
            ItemStack maxkardas = new ItemStack(Material.DIAMOND_SWORD);
            ItemStack maxcap = new ItemStack(Material.DIAMOND_HELMET);
            ItemStack maxleg = new ItemStack(Material.DIAMOND_LEGGINGS);
            ItemStack maxboots = new ItemStack(Material.DIAMOND_BOOTS);
            ItemStack maxchest = new  ItemStack(Material.DIAMOND_CHESTPLATE);
            maxkardas.addEnchantment(Enchantment.FIRE_ASPECT, 3); 
            maxkardas.addEnchantment(Enchantment.DAMAGE_ALL, 3); 
            maxkardas.addEnchantment(Enchantment.DURABILITY, 3);
            maxchest.addEnchantment(Enchantment.PROTECTION_FALL, 3);
            maxchest.addEnchantment(Enchantment.PROTECTION_EXPLOSIONS, 3);
            maxchest.addEnchantment(Enchantment.PROTECTION_FIRE, 3);
            maxchest.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
            maxchest.addEnchantment(Enchantment.DURABILITY, 3);
            maxchest.addEnchantment(Enchantment.THORNS, 3);
            maxchest.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 3);
            maxcap.addEnchantment(Enchantment.PROTECTION_FALL, 3);
            maxcap.addEnchantment(Enchantment.PROTECTION_EXPLOSIONS, 3);
            maxcap.addEnchantment(Enchantment.DURABILITY, 3);
            maxcap.addEnchantment(Enchantment.THORNS, 3);
            maxcap.addEnchantment(Enchantment.PROTECTION_FIRE, 3);
            maxcap.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
            maxcap.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 3);
            maxleg.addEnchantment(Enchantment.PROTECTION_FALL, 3);
            maxleg.addEnchantment(Enchantment.PROTECTION_EXPLOSIONS, 3);
            maxleg.addEnchantment(Enchantment.THORNS, 3);
            maxleg.addEnchantment(Enchantment.DURABILITY, 3);
            maxleg.addEnchantment(Enchantment.PROTECTION_FIRE, 3);
            maxleg.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
            maxleg.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2);
            maxboots.addEnchantment(Enchantment.PROTECTION_FALL, 3);
            maxboots.addEnchantment(Enchantment.DURABILITY, 3);
            maxboots.addEnchantment(Enchantment.PROTECTION_EXPLOSIONS, 3);
            maxboots.addEnchantment(Enchantment.PROTECTION_FIRE, 3);
            maxboots.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
            maxboots.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 3);
            maxboots.addEnchantment(Enchantment.THORNS, 3);
            zombie.getEquipment().setItemInHand(maxkardas);
            zombie.getEquipment().setHelmet(maxcap);
            zombie.getEquipment().setChestplate(maxchest);
            zombie.getEquipment().setLeggings(maxleg);
            zombie.getEquipment().setBoots(maxboots);
        
    }
    }
    }

【问题讨论】:

  • 请提供一个可重现的最小示例
  • 目前生成的僵尸是什么?他们只是香草僵尸吗?
  • @lime 是的,他们是香草僵尸。我的意思是,他们没有任何设备

标签: java minecraft bukkit


【解决方案1】:

我认为问题可能出在您初始化Zombie zombie = (Zombie) e.getEntity();的顺序上

因为你正在做的它比僵尸的if 大,你可能会强迫一个暴徒成为Zombie 类型,这可能会导致一些问题。

我已将 Zombie zombie = (Zombie) e.getEntity(); 移动到僵尸的 if 中。类似于你的 if 爬行者。

尝试以下方法:

public class ChargedCreepersIrZombiaiSuArmor extends JavaPlugin implements Listener {
    @Override
    public void onEnable() {
        this.getServer().getPluginManager().registerEvents(this, this);
    }
    @EventHandler
    public void lol(CreatureSpawnEvent e) {
        System.out.println(e.getEntityType());
        if(e.getEntityType() == EntityType.CREEPER) {
            Creeper creeper = (Creeper) e.getEntity();
            creeper.setPowered(true);
        }

        if(e.getEntityType() == EntityType.ZOMBIE) {
            Zombie zombie = (Zombie) e.getEntity();
            ItemStack maxkardas = new ItemStack(Material.DIAMOND_SWORD);
            ItemStack maxcap = new ItemStack(Material.DIAMOND_HELMET);
            ItemStack maxleg = new ItemStack(Material.DIAMOND_LEGGINGS);
            ItemStack maxboots = new ItemStack(Material.DIAMOND_BOOTS);
            ItemStack maxchest = new  ItemStack(Material.DIAMOND_CHESTPLATE);
            maxkardas.addEnchantment(Enchantment.FIRE_ASPECT, 3); 
            maxkardas.addEnchantment(Enchantment.DAMAGE_ALL, 3); 
            maxkardas.addEnchantment(Enchantment.DURABILITY, 3);
            maxchest.addEnchantment(Enchantment.PROTECTION_FALL, 3);
            maxchest.addEnchantment(Enchantment.PROTECTION_EXPLOSIONS, 3);
            maxchest.addEnchantment(Enchantment.PROTECTION_FIRE, 3);
            maxchest.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
            maxchest.addEnchantment(Enchantment.DURABILITY, 3);
            maxchest.addEnchantment(Enchantment.THORNS, 3);
            maxchest.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 3);
            maxcap.addEnchantment(Enchantment.PROTECTION_FALL, 3);
            maxcap.addEnchantment(Enchantment.PROTECTION_EXPLOSIONS, 3);
            maxcap.addEnchantment(Enchantment.DURABILITY, 3);
            maxcap.addEnchantment(Enchantment.THORNS, 3);
            maxcap.addEnchantment(Enchantment.PROTECTION_FIRE, 3);
            maxcap.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
            maxcap.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 3);
            maxleg.addEnchantment(Enchantment.PROTECTION_FALL, 3);
            maxleg.addEnchantment(Enchantment.PROTECTION_EXPLOSIONS, 3);
            maxleg.addEnchantment(Enchantment.THORNS, 3);
            maxleg.addEnchantment(Enchantment.DURABILITY, 3);
            maxleg.addEnchantment(Enchantment.PROTECTION_FIRE, 3);
            maxleg.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
            maxleg.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 2);
            maxboots.addEnchantment(Enchantment.PROTECTION_FALL, 3);
            maxboots.addEnchantment(Enchantment.DURABILITY, 3);
            maxboots.addEnchantment(Enchantment.PROTECTION_EXPLOSIONS, 3);
            maxboots.addEnchantment(Enchantment.PROTECTION_FIRE, 3);
            maxboots.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 3);
            maxboots.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 3);
            maxboots.addEnchantment(Enchantment.THORNS, 3);
            zombie.getEquipment().setItemInHand(maxkardas);
            zombie.getEquipment().setHelmet(maxcap);
            zombie.getEquipment().setChestplate(maxchest);
            zombie.getEquipment().setLeggings(maxleg);
            zombie.getEquipment().setBoots(maxboots);
        }
    }
}

如果这能解决您的问题,请告诉我。如果没有,请告诉我发生了什么,我可以再次尝试提供帮助。

【讨论】:

  • 嘿我试过你的代码,但它也没有工作:(。
  • @prigadiri 是否可以在输入lol() 事件处理程序时正确放置System.out.println(e.getEntityType());?我想看看输出是什么
  • @prigadiri 不用担心,我们都从某个地方开始!我只是要更新这个答案,以便您可以复制和粘贴它。让我知道控制台说什么
  • @prigadiri 当我在家的时候,我会好好看看这个。现在,您可以将 youtube 视频链接添加到您的说明中吗?
  • 嗨,没关系。我解决了我的问题。原来我的附魔等级太高了。无论如何谢谢你!别担心,你还是帮了我:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-14
  • 2013-07-05
  • 1970-01-01
相关资源
最近更新 更多