@EventHandler public void onSmelting(FurnaceExtractEvent event) { String playerID = PlayerConverter.getID((Player) event.getPlayer()); if (containsPlayer(playerID) && event.getItemType().equals(material) && checkConditions(playerID)) { SmeltData playerData = (SmeltData) dataMap.get(playerID); playerData.subtract(event.getItemAmount()); if (playerData.isZero()) { completeObjective(playerID); } } }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onFurnaceExtractEvent(FurnaceExtractEvent event) { /* WORLD BLACKLIST CHECK */ if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld())) return; Block furnaceBlock = event.getBlock(); if (!ItemUtils.isSmelted(new ItemStack(event.getItemType(), event.getItemAmount()))) { return; } Player player = getPlayerFromFurnace(furnaceBlock); /* WORLD GUARD MAIN FLAG CHECK */ if(WorldGuardUtils.isWorldGuardLoaded()) { if(!WorldGuardManager.getInstance().hasMainFlag(player)) return; } if (!UserManager.hasPlayerDataKey(player) || !Permissions.vanillaXpBoost(player, PrimarySkillType.SMELTING)) { return; } int exp = UserManager.getPlayer(player).getSmeltingManager().vanillaXPBoost(event.getExpToDrop()); event.setExpToDrop(exp); }