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

  • Автор темы Автор темы jusik
  • Дата начала Дата начала

jusik

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Jusik
JavaScript:
 public void onEnable()
  {
    new Thread(){
        public void run(){
            try{
                while(true){
                    Thread.sleep(2000);
                    logs();
                }
            }catch(Exception ex){}
        }
    }.start();
}
JavaScript:
 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!");
  }
Даже ошибки в консоле нет.
 
Не помогло
[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)
>
 
Не помогло
[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)
>
Спавнить моба (да и вообще проводить любые манипуляции с игровым миром) из другого потока - плохая идея. Перенеси спавн моба в обычный Bukkit шедулер.
 
Спасибо хотябы ошибку видно.
Хорошо.
Спавнить моба (да и вообще проводить любые манипуляции с игровым миром) из другого потока - плохая идея. Перенеси спавн моба в обычный Bukkit шедулер.
 
Чтобы ошибка выводилась в консоль, нужно добавить это:
Java:
ex.printStackTrace();

Смысл? Компилятор сам подставит long.
Ну хз. Сегодня плагин делал, сделал точно также. 2000. Нифига не работало. Добавил l и заробило. Значит эклипс не слишком умный компилятор.
 
Он работает с баккитом в другом потоке, не не всё нормально...
Извиняюсь не увидел сообщения выше:3
 
Тут нужна небольшая хитрость.

Java:
     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);
      }
 
Последнее редактирование:
Назад
Верх