Solved Bukkit Runnable not running

Discussion in 'Spigot Plugin Development' started by JakeQuin0113, Apr 17, 2017.

  1. Any ideas why?

    Code (Text):
      public void checkArmor(){
          Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){
              public void run(){
                    for (Player p : Bukkit.getOnlinePlayers()) {
                        if(p.getInventory().getBoots() != null && p.getInventory().getLeggings() != null && p.getInventory().getChestplate() != null && p.getInventory().getHelmet() != null)
                        {
                            Material HeadType = p.getInventory().getHelmet().getType();
                            Material LeggingsType = p.getInventory().getLeggings().getType();
                            Material ChestplateType = p.getInventory().getChestplate().getType();
                            Material BootsType = p.getInventory().getBoots().getType();
                           
                            if(BootsType == Material.CHAINMAIL_BOOTS &&
                                LeggingsType == Material.CHAINMAIL_LEGGINGS &&
                                ChestplateType == Material.CHAINMAIL_CHESTPLATE &&
                                HeadType == Material.CHAINMAIL_HELMET){
                                    p.addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING, 40, 1), true);
                                    p.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 40, 1), true);
                                    p.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 40, 1), true);
                            }

                            if ((p.getInventory().getHelmet().getItemMeta().hasDisplayName() && p.getInventory().getHelmet().getItemMeta().getDisplayName().equals("Hide of Werewolf Helmet")) &&
                                    (p.getInventory().getChestplate().getItemMeta().hasDisplayName() && p.getInventory().getChestplate().getItemMeta().getDisplayName().equals("Hide of Werewolf Jack")) &&
                                    (p.getInventory().getLeggings().getItemMeta().hasDisplayName() && p.getInventory().getLeggings().getItemMeta().getDisplayName().equals("Hide of Werewolf Guards")) &&
                                    (p.getInventory().getBoots().getItemMeta().hasDisplayName() && p.getInventory().getBoots().getItemMeta().getDisplayName().equals("Hide of Werewolf Boots")))
                                {
                             
                                    p.addPotionEffect(new PotionEffect(PotionEffectType.HEALTH_BOOST, 40, 0), true);
                            }
                        }
                    }
              }
          }, 0, 1);
      }
     
  2. Why not do new BukkitRunnable
    Then public void run
    Then run task timer too.
     
  3. Code (Text):
      public void checkArmor(){
          new BukkitRunnable() {

            @Override
            public void run() {
                for (Player p : Bukkit.getOnlinePlayers()) {
                    if(p.getInventory().getBoots() != null && p.getInventory().getLeggings() != null && p.getInventory().getChestplate() != null && p.getInventory().getHelmet() != null)
                    {
                        Material HeadType = p.getInventory().getHelmet().getType();
                        Material LeggingsType = p.getInventory().getLeggings().getType();
                        Material ChestplateType = p.getInventory().getChestplate().getType();
                        Material BootsType = p.getInventory().getBoots().getType();
                       
                        if(BootsType == Material.CHAINMAIL_BOOTS &&
                            LeggingsType == Material.CHAINMAIL_LEGGINGS &&
                            ChestplateType == Material.CHAINMAIL_CHESTPLATE &&
                            HeadType == Material.CHAINMAIL_HELMET){
                                p.addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING, 40, 1), true);
                                p.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 40, 1), true);
                                p.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 40, 1), true);
                        }

                        if ((p.getInventory().getHelmet().getItemMeta().hasDisplayName() && p.getInventory().getHelmet().getItemMeta().getDisplayName().equals("Hide of Werewolf Helmet")) &&
                                (p.getInventory().getChestplate().getItemMeta().hasDisplayName() && p.getInventory().getChestplate().getItemMeta().getDisplayName().equals("Hide of Werewolf Jack")) &&
                                (p.getInventory().getLeggings().getItemMeta().hasDisplayName() && p.getInventory().getLeggings().getItemMeta().getDisplayName().equals("Hide of Werewolf Guards")) &&
                                (p.getInventory().getBoots().getItemMeta().hasDisplayName() && p.getInventory().getBoots().getItemMeta().getDisplayName().equals("Hide of Werewolf Boots")))
                            {
                         
                                p.addPotionEffect(new PotionEffect(PotionEffectType.HEALTH_BOOST, 40, 0), true);
                        }
                    }
                   
               
            }
             
          }
      }.runTaskTimer(this, 0L, 20L);
      }
    I am not sure why this isn't running as well.
     
  4. Are you calling checkArmor in your onEnable?

    Also,are you sure it isn't running? How do you know that it's just a certain part that isn't working? What are you trying to test it?
     
    • Like Like x 1
    • Winner Winner x 1
  5. Holy crap, I totally missed the call. fml. Thanks!
     
  6. Everyone makes mistakes; as long as you learn from them, it's all good :)