//package com.gmail.nossr50.runnables.skills; // //import com.gmail.nossr50.datatypes.skills.PrimarySkillType; //import com.gmail.nossr50.datatypes.skills.SubSkillType; //import com.gmail.nossr50.events.skills.alchemy.McMMOPlayerBrewEvent; //import com.gmail.nossr50.events.skills.alchemy.McMMOPlayerCatalysisEvent; //import com.gmail.nossr50.mcMMO; //import com.gmail.nossr50.skills.alchemy.Alchemy; //import com.gmail.nossr50.skills.alchemy.AlchemyPotionBrewer; //import com.gmail.nossr50.util.Misc; //import com.gmail.nossr50.util.Permissions; //import com.gmail.nossr50.util.player.UserManager; //import org.bukkit.Location; //import org.bukkit.Material; //import org.bukkit.block.BlockState; //import org.bukkit.block.BrewingStand; //import org.bukkit.entity.Player; //import org.bukkit.scheduler.BukkitRunnable; // //public class AlchemyBrewTask extends BukkitRunnable { // // private BlockState brewingStand; // private Location location; // private double brewSpeed; // private double brewTimer; // private Player player; // private int fuel; // private boolean firstRun = true; // // public AlchemyBrewTask(BlockState brewingStand, Player player) { // this.brewingStand = brewingStand; // this.location = brewingStand.getLocation(); // this.player = player; // // brewSpeed = 1.0; // brewTimer = 400; // // if (player != null // && !Misc.isNPCEntity(player) // && Permissions.isSubSkillEnabled(player, SubSkillType.ALCHEMY_CATALYSIS) // && pluginRef.getUserManager().getPlayer(player) != null) { // // double catalysis = pluginRef.getUserManager().getPlayer(player).getAlchemyManager().calculateBrewSpeed(Permissions.lucky(player, PrimarySkillType.ALCHEMY)); // // McMMOPlayerCatalysisEvent event = new McMMOPlayerCatalysisEvent(player, catalysis); // mcMMO.p.getServer().getPluginManager().callEvent(event); // // if (!event.isCancelled()) { // brewSpeed = catalysis; // } // } // // if (Alchemy.brewingStandMap.containsKey(location)) { // Alchemy.brewingStandMap.get(location).cancel(); // } // // fuel = ((BrewingStand) brewingStand).getFuelLevel(); // // if (((BrewingStand) brewingStand).getBrewingTime() == -1) // Only decrement on our end if it isn't a vanilla ingredient. // fuel--; // // Alchemy.brewingStandMap.put(location, this); // this.runTaskTimer(mcMMO.p, 1, 1); // } // // @Override // public void run() { // if (player == null || !player.isValid() || brewingStand == null || brewingStand.getType() != Material.BREWING_STAND || !AlchemyPotionBrewer.isValidIngredient(player, ((BrewingStand) brewingStand).getInventory().getContents()[Alchemy.INGREDIENT_SLOT])) { // if (Alchemy.brewingStandMap.containsKey(location)) { // Alchemy.brewingStandMap.remove(location); // } // // this.cancel(); // // return; // } // // if (firstRun) { // firstRun = false; // ((BrewingStand) brewingStand).setFuelLevel(fuel); // } // // brewTimer -= brewSpeed; // // // Vanilla potion brewing completes when BrewingTime == 1 // if (brewTimer < Math.max(brewSpeed, 2)) { // this.cancel(); // finish(); // } else { // ((BrewingStand) brewingStand).setBrewingTime((int) brewTimer); // } // } // // private void finish() { // McMMOPlayerBrewEvent event = new McMMOPlayerBrewEvent(player, brewingStand); // mcMMO.p.getServer().getPluginManager().callEvent(event); // // if (!event.isCancelled()) { // AlchemyPotionBrewer.finishBrewing(brewingStand, player, false); // } // // Alchemy.brewingStandMap.remove(location); // } // // public void finishImmediately() { // this.cancel(); // // AlchemyPotionBrewer.finishBrewing(brewingStand, player, true); // Alchemy.brewingStandMap.remove(location); // } // // public void cancelBrew() { // this.cancel(); // // ((BrewingStand) brewingStand).setBrewingTime(-1); // Alchemy.brewingStandMap.remove(location); // } //}