Помогите Не спавнятся все необходимые мобы

Статус
Закрыто для дальнейших ответов.

Den_Blade

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Den_Blade
Всем привет, проблема заключается в том, что после вызова метода должно спавнится ровно 25 зомби
но почему то они спавнятся всегда по разному, то 9, то 15, то 20 (иногда спавнятся все)
Хелп, в чем проблема?
Код:
    public void start(Player p) {
        Location loc = getSafeLocation(p.getWorld());
        for (int i = 0; i < 10 && (
          loc.getBlock().getType() == Material.STATIONARY_WATER || loc.getBlock().getType() == Material.WATER || loc.getBlock().getType() == Material.STATIONARY_LAVA); i++)
          loc = getSafeLocation(p.getWorld());
        if (loc.getBlockX() == 0) {
        
        } else {
          loc.setY(loc.getY() + 1.0D);
          World nmsworld =((CraftWorld) loc.getWorld()).getHandle();
          EntityAlien alien1 =  new EntityAlien(nmsworld);
          EntityAlien alien2 =  new EntityAlien(nmsworld);
          EntityAlien alien3 =  new EntityAlien(nmsworld);
          EntityAlien alien4 =  new EntityAlien(nmsworld);
          EntityAlien alien5 =  new EntityAlien(nmsworld);
          EntityAlien alien6 =  new EntityAlien(nmsworld);
          EntityAlien alien7 =  new EntityAlien(nmsworld);
          EntityAlien alien8 =  new EntityAlien(nmsworld);
          EntityAlien alien9 =  new EntityAlien(nmsworld);
          EntityAlien alien10 =  new EntityAlien(nmsworld);
          EntityAlien alien11 =  new EntityAlien(nmsworld);
          EntityAlien alien12 =  new EntityAlien(nmsworld);
          EntityAlien alien13 =  new EntityAlien(nmsworld);
          EntityAlien alien14 =  new EntityAlien(nmsworld);
          EntityAlien alien15 =  new EntityAlien(nmsworld);
          EntityAlien alien16 =  new EntityAlien(nmsworld);
          EntityAlien alien17 =  new EntityAlien(nmsworld);
          EntityAlien alien18 =  new EntityAlien(nmsworld);
          EntityAlien alien19 =  new EntityAlien(nmsworld);
          EntityAlien alien20 =  new EntityAlien(nmsworld);
          EntityAlien alien21 =  new EntityAlien(nmsworld);
          EntityAlien alien22 =  new EntityAlien(nmsworld);
          EntityAlien alien23 =  new EntityAlien(nmsworld);
          EntityAlien alien24 =  new EntityAlien(nmsworld);
          EntityAlien alien25 =  new EntityAlien(nmsworld);
          
          alien1.setPosition(loc.getX(), loc.getY(), loc.getZ());
          alien2.setPosition(loc.getX() + 2, loc.getY() + 50, loc.getZ());
          alien3.setPosition(loc.getX() + 4, loc.getY() + 50, loc.getZ());
          alien4.setPosition(loc.getX() - 2, loc.getY() + 50, loc.getZ());
          alien5.setPosition(loc.getX() - 4, loc.getY() + 50, loc.getZ());
          alien6.setPosition(loc.getX(), loc.getY() + 50, loc.getZ() + 2);
          alien7.setPosition(loc.getX(), loc.getY() + 50, loc.getZ() + 4);
          alien8.setPosition(loc.getX() - 2, loc.getY() + 50, loc.getZ() + 2);
          alien9.setPosition(loc.getX() - 2, loc.getY() + 50, loc.getZ() + 4);
          alien10.setPosition(loc.getX() - 4, loc.getY() + 50, loc.getZ() + 2);
          alien11.setPosition(loc.getX() - 4, loc.getY() + 50, loc.getZ() + 4);
          alien12.setPosition(loc.getX() + 2, loc.getY() + 50, loc.getZ() + 2);
          alien13.setPosition(loc.getX() + 2, loc.getY() + 50, loc.getZ() + 4);
          alien14.setPosition(loc.getX() + 4, loc.getY() + 50, loc.getZ() + 2);
          alien15.setPosition(loc.getX() + 4, loc.getY() + 50, loc.getZ() + 4);
          alien16.setPosition(loc.getX(), loc.getY() + 50, loc.getZ() - 2);
          alien17.setPosition(loc.getX(), loc.getY() + 50, loc.getZ() - 4);
          alien18.setPosition(loc.getX() - 2, loc.getY() + 50, loc.getZ() - 2);
          alien19.setPosition(loc.getX() - 2, loc.getY() + 50, loc.getZ() - 4);
          alien20.setPosition(loc.getX() - 4, loc.getY() + 50, loc.getZ() - 2);
          alien21.setPosition(loc.getX() - 4, loc.getY() + 50, loc.getZ() - 4);
          alien22.setPosition(loc.getX() + 2, loc.getY() + 50, loc.getZ() - 2);
          alien23.setPosition(loc.getX() + 2, loc.getY() + 50, loc.getZ() - 4);
          alien24.setPosition(loc.getX() + 4, loc.getY() + 50, loc.getZ() - 2);
          alien25.setPosition(loc.getX() + 4, loc.getY() + 50, loc.getZ() - 4);
           nmsworld.addEntity(alien1);
           nmsworld.addEntity(alien2);
           nmsworld.addEntity(alien3);
           nmsworld.addEntity(alien4);
           nmsworld.addEntity(alien5);
           nmsworld.addEntity(alien6);
           nmsworld.addEntity(alien7);
           nmsworld.addEntity(alien8);
           nmsworld.addEntity(alien9);
           nmsworld.addEntity(alien10);
           nmsworld.addEntity(alien11);
           nmsworld.addEntity(alien12);
           nmsworld.addEntity(alien13);
           nmsworld.addEntity(alien14);
           nmsworld.addEntity(alien15);
           nmsworld.addEntity(alien16);
           nmsworld.addEntity(alien17);
           nmsworld.addEntity(alien18);
           nmsworld.addEntity(alien19);
           nmsworld.addEntity(alien20);
           nmsworld.addEntity(alien21);
           nmsworld.addEntity(alien22);
           nmsworld.addEntity(alien23);
           nmsworld.addEntity(alien24);
           nmsworld.addEntity(alien25);
          
          
           p.sendMessage(ChatColor.translateAlternateColorCodes('&', Main.instance.getConfig().getString("world.message").replace("%X%", loc.getX() + "").replace("%Y%", loc.getY() + "").replace("%Z%", loc.getZ() + "")));
    }
    }
 
Почему ты спаунишь при помощи NMS, а не через баккит? Скорее всего, в этом и проблема.

И используй цикл вместо копипаста кода - меньше шанс наделать ошибок
 
Почему ты спаунишь при помощи NMS, а не через баккит? Скорее всего, в этом и проблема.

И используй цикл вместо копипаста кода - меньше шанс наделать ошибок
Попробовал, тоже самое, как ты имел ввиду через bukkit? можно набросок, возможно я сделал не так
 
Попробовал, тоже самое, как ты имел ввиду через bukkit? можно набросок, возможно я сделал не так
Ну как-как. Так, как это обычно делают в бакките )

loc.getWorld().spawn(loc, Zombie.class);
или же
loc.getWorld().spawnEntity(loc, EntityType.ZOMBIE);

Правда судя по тому, что у тебя какой-то EntityAlien, я так понимаю, что у тебя кастомный моб на NMS, а не обычный зомби. Это так?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх