public Timer() { new BukkitRunnable() { @Override public void run() { for (Player player : Bukkit.getServer().getOnlinePlayers()) { Map enchantProc = new TreeMap<>(); for (ItemStack item : player.getInventory().getArmorContents()) { if (item == null || item.getType().isEmpty()) continue; NBTItem nItem = new NBTItem(item); List enchantList = EnchantmentUtils.getEnchantmentsFromNBT(nItem.getOrCreateCompound(CustomEnchants.getCompountName())); for (CustomEnchantment enchant : enchantList) { LuaValueMapper mapper = enchant.ENCHANTMENT_MAPPER; boolean stacks = mapper.STACKABLE; String script = mapper.SCRIPT; if (!stacks && enchantProc.containsKey(script)) continue; else enchantProc.put(script, true); LuaManager.runScript(script, player, enchant.LEVEL); } } } } }.runTaskTimerAsynchronously(CustomEnchants.getInstance(), 0, 50); }