Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

[Решено] Не работает метод SpawnEntity

Тема в разделе "Разработка плагинов для новичков", создана пользователем Lucatjuh, 16 сен 2015.

Статус темы:
Закрыта.
  1. Автор темы
    Lucatjuh

    Lucatjuh Активный участник Пользователь

    Баллы:
    76
    Skype:
    lucatjuhcraft
    Имя в Minecraft:
    Lucatjuh
    При создание арены не спавнятся мобы. Класс "Arena" (Ошибок в данном случае нет)
    Код:
    package ru.lucatjuh.mobsminigame;
    
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.entity.EntityType;
    import org.bukkit.entity.Zombie;
    import org.bukkit.inventory.ItemStack;
    
    public class Arena {
    
        private Location minLocation, maxLocation, spawnLocation;
       
        public Arena(Location minLocation, Location maxLocation, Location spawnLocation) {
            this.setMinLocation(minLocation);
            this.setMaxLocation(maxLocation);
            this.setSpawnLocation(spawnLocation);
        }
       
        public void spawnMobs() {
            Location randomLocation = new Location(minLocation.getWorld(),
                                                  minLocation.getX() + (int) (Math.random() * (maxLocation.getX() - minLocation.getX() + 1)),
                                                  minLocation.getY() + (int) (Math.random() * (maxLocation.getY() - minLocation.getY() + 1)),
                                                  minLocation.getZ() + (int) (Math.random() * (maxLocation.getZ() - minLocation.getZ() + 1)));
            Zombie zombie = (Zombie) randomLocation.getWorld().spawnEntity(randomLocation, EntityType.ZOMBIE);
            zombie.setCustomName("Arena zombie");
            zombie.getEquipment().setItemInHand(new ItemStack(Material.BEDROCK));
        }
    
        public Location getMinLocation() {
            return minLocation;
        }
    
        public void setMinLocation(Location minLocation) {
            this.minLocation = minLocation;
        }
    
        public Location getMaxLocation() {
            return maxLocation;
        }
    
        public void setMaxLocation(Location maxLocation) {
            this.maxLocation = maxLocation;
        }
    
        public Location getSpawnLocation() {
            return spawnLocation;
        }
    
        public void setSpawnLocation(Location spawnLocation) {
            this.spawnLocation = spawnLocation;
        }
    }
    
    
     
  2. Хостинг MineCraft
    <
  3. Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    так вы его и не спавнили.
     
  4. Автор темы
    Lucatjuh

    Lucatjuh Активный участник Пользователь

    Баллы:
    76
    Skype:
    lucatjuhcraft
    Имя в Minecraft:
    Lucatjuh
    Класс "RunMobSpawner"
    Код:
    package ru.lucatjuh.mobsminigame;
    
    import org.bukkit.scheduler.BukkitRunnable;
    
    public class RunMobSpawner extends BukkitRunnable {
       
        private Main plugin;
        public RunMobSpawner(Main plugin) {
            this.plugin = plugin;
        }
        @Override
        public void run() {
            for(String name : plugin.getArenas().keySet()) {
                plugin.getArenas().get(name).spawnMobs();
            }
        }
    }
    
     
  5. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Идём дальше по цепочке. А этот раннабл где-то выполняется?
     
  6. Автор темы
    Lucatjuh

    Lucatjuh Активный участник Пользователь

    Баллы:
    76
    Skype:
    lucatjuhcraft
    Имя в Minecraft:
    Lucatjuh
    По крайне мере должен
     
  7. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    с чего это вдруг?
     
  8. Автор темы
    Lucatjuh

    Lucatjuh Активный участник Пользователь

    Баллы:
    76
    Skype:
    lucatjuhcraft
    Имя в Minecraft:
    Lucatjuh
    Не знаю :([DOUBLEPOST=1442425600,1442425428][/DOUBLEPOST]Крч, при создание арены они должны спауниться, но они этого не делают
     
  9. Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Завтра код скину, сейчас спать нужно.
    P.S. Ты моба не спанишь, ты только объект Zombie создаешь.
    P.S.S. Спать иду не из да того что завтра школа и тд, просто спать нужно много.
     
  10. Автор темы
    Lucatjuh

    Lucatjuh Активный участник Пользователь

    Баллы:
    76
    Skype:
    lucatjuhcraft
    Имя в Minecraft:
    Lucatjuh
    Спокойной ночи
     
  11. Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    И вам добрых снов.
     
  12. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Что значит должен? Ты код запуска шедулера с этим таском написал? Покажи
     
  13. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Как раз-таки спаунит. И с кодом в шапке вроде бы нормально всё.
    Вот как раз-таки Den_Abr решил узнать, выполняется ли он или нет.
     
  14. Автор темы
    Lucatjuh

    Lucatjuh Активный участник Пользователь

    Баллы:
    76
    Skype:
    lucatjuhcraft
    Имя в Minecraft:
    Lucatjuh
    Ну да он должен спаунить, но не спаунится
     
  15. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Ты код спавна не вызываешь...
     
  16. TisbanGooD

    TisbanGooD Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Tisban
    Согласен
     
  17. Автор темы
    Lucatjuh

    Lucatjuh Активный участник Пользователь

    Баллы:
    76
    Skype:
    lucatjuhcraft
    Имя в Minecraft:
    Lucatjuh
    Вызываю в рандомной локации
    Код:
        public void spawnMobs() {
            Location randomLocation = new Location(minLocation.getWorld(),
                                                  minLocation.getX() + (int) (Math.random() * (maxLocation.getX() - minLocation.getX() + 1)),
                                                  minLocation.getY() + (int) (Math.random() * (maxLocation.getY() - minLocation.getY() + 1)),
                                                  minLocation.getZ() + (int) (Math.random() * (maxLocation.getZ() - minLocation.getZ() + 1)));
            Zombie zombie = (Zombie) randomLocation.getWorld().spawnEntity(randomLocation, EntityType.ZOMBIE);
            zombie.setCustomName(ChatColor.RED + "Зомби убийца");
            zombie.getEquipment().setItemInHand(new ItemStack(Material.DIAMOND_SWORD));
        }
    
     
  18. Agravaine

    Agravaine Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Agravaine25
    Так, а где ты запускаешь шедулер?
     
  19. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Да, код я вижу, но ты его НЕ ВЫЗЫВАЕШЬ.....
     
  20. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    @Lucatjuh, CraftCoder имеет ввиду, что ты должен показать нам то место в твоём коде, где ты используешь RunMobSpawner.
     
  21. Автор темы
    Lucatjuh

    Lucatjuh Активный участник Пользователь

    Баллы:
    76
    Skype:
    lucatjuhcraft
    Имя в Minecraft:
    Lucatjuh
    Мне уже @Rider3217 скинул код, только надо про тестить[DOUBLEPOST=1442552288,1442552256][/DOUBLEPOST]Потом если что отпишусь
     
Статус темы:
Закрыта.

Поделиться этой страницей