1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Не работает цикл

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

  1. Автор темы
    jusik

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

    Баллы:
    76
    Skype:
    louky94096
    Имя в Minecraft:
    Jusik
    Код:
     public void onEnable()
      {
        new Thread(){
            public void run(){
                try{
                    while(true){
                        Thread.sleep(2000);
                        logs();
                    }
                }catch(Exception ex){}
            }
        }.start();
    }
    Код:
     public void logs(){
          Location l = new Location(Bukkit.getServer().getWorld("world_sp"), 1, 251,1);
          LivingEntity spawnedmob = (LivingEntity) Bukkit.getWorld("world_sp").spawnEntity(l, EntityType.WITHER_SKELETON);
              spawnedmob.setCustomNameVisible(true);
              spawnedmob.setCustomName("SKELETON");
                spawnedmob.setCanPickupItems(false);
              spawnedmob.setHealth(40);
              spawnedmob.getEquipment().setBoots(new ItemStack(Material.IRON_BOOTS));
              spawnedmob.getEquipment().setBootsDropChance(0);
              System.out.println("SpAWN WITCHER_SKELETON!");
      }
    Даже ошибки в консоле нет.
     
  2. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooo
  3. gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Чтобы ошибка выводилась в консоль, нужно добавить это:
    Код:
    ex.printStackTrace();
    Смысл? Компилятор сам подставит long.
     
  4. Автор темы
    jusik

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

    Баллы:
    76
    Skype:
    louky94096
    Имя в Minecraft:
    Jusik
    Не помогло
    [16:22:28 WARN]: java.lang.IllegalStateException: Asynchronous entity add!
    [16:22:28 WARN]: at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:1
    4)
    [16:22:28 WARN]: at net.minecraft.server.v1_11_R1.World.addEntity(World.j
    ava:1013)
    [16:22:28 WARN]: at net.minecraft.server.v1_11_R1.WorldServer.addEntity(W
    orldServer.java:1082)
    [16:22:28 WARN]: at org.bukkit.craftbukkit.v1_11_R1.CraftWorld.addEntity(
    CraftWorld.java:1178)
    [16:22:28 WARN]: at org.bukkit.craftbukkit.v1_11_R1.CraftWorld.spawn(Craf
    tWorld.java:1185)
    [16:22:28 WARN]: at org.bukkit.craftbukkit.v1_11_R1.CraftWorld.spawn(Craf
    tWorld.java:850)
    [16:22:28 WARN]: at org.bukkit.craftbukkit.v1_11_R1.CraftWorld.spawnEntit
    y(CraftWorld.java:354)
    [16:22:28 WARN]: at main.Main.logs(Main.java:42)
    [16:22:28 WARN]: at main.Main$1.run(Main.java:24)
    >
     
  5. gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Спавнить моба (да и вообще проводить любые манипуляции с игровым миром) из другого потока - плохая идея. Перенеси спавн моба в обычный Bukkit шедулер.
     
  6. Автор темы
    jusik

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

    Баллы:
    76
    Skype:
    louky94096
    Имя в Minecraft:
    Jusik
    Спасибо хотябы ошибку видно.
    Хорошо.
     
  7. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooo
    Ну хз. Сегодня плагин делал, сделал точно также. 2000. Нифига не работало. Добавил l и заробило. Значит эклипс не слишком умный компилятор.
     
  8. AtomicInteger

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

    Баллы:
    76
    Эклипс это не компилятор :D
     
  9. gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Да, но Eclipse использует свой собственный компилятор.
     
  10. AtomicInteger

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

    Баллы:
    76
    Никогда его не любил.
     
  11. Sonicxd2

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

    Баллы:
    76
    Он работает с баккитом в другом потоке, не не всё нормально...
    Извиняюсь не увидел сообщения выше:3
     
  12. alexandrage

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

    Баллы:
    173
    Тут нужна небольшая хитрость.

    Код:
         public void logs(){
            this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                @Override
                public void run() {
                      Location l = new Location(Bukkit.getServer().getWorld("world_sp"), 1, 251,1);
                      LivingEntity spawnedmob = (LivingEntity) Bukkit.getWorld("world_sp").spawnEntity(l, EntityType.WITHER_SKELETON);
                          spawnedmob.setCustomNameVisible(true);
                          spawnedmob.setCustomName("SKELETON");
                          spawnedmob.setCanPickupItems(false);
                          spawnedmob.setHealth(40);
                          spawnedmob.getEquipment().setBoots(new ItemStack(Material.IRON_BOOTS));
                          spawnedmob.getEquipment().setBootsDropChance(0);
                          System.out.println("SpAWN WITCHER_SKELETON!");
                }
            
            }, 0);
          }
     
    Последнее редактирование: 22 дек 2016
  13. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooo
    Чьябы корова мычала...
    К чему это, я не скажу, и так скоро возможно поймёшь.
     

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