Merge pull request #2824 from DorCoMaNdO/master

Custom potion brewing now consume fuel from the brewing stand.
This commit is contained in:
t00thpick1 2016-03-16 18:07:45 -05:00
commit 6a7279ea05
2 changed files with 7 additions and 2 deletions

View File

@ -26,7 +26,7 @@ public class AlchemyBrewCheckTask extends BukkitRunnable {
public void run() { public void run() {
Location location = brewingStand.getLocation(); Location location = brewingStand.getLocation();
ItemStack[] newInventory = Arrays.copyOfRange(brewingStand.getInventory().getContents(), 0, 4); ItemStack[] newInventory = Arrays.copyOfRange(brewingStand.getInventory().getContents(), 0, 4);
boolean validBrew = AlchemyPotionBrewer.isValidBrew(player, newInventory); boolean validBrew = brewingStand.getFuelLevel() > 0 && AlchemyPotionBrewer.isValidBrew(player, newInventory);
if (Alchemy.brewingStandMap.containsKey(location)) { if (Alchemy.brewingStandMap.containsKey(location)) {
if (oldInventory[Alchemy.INGREDIENT_SLOT] == null || newInventory[Alchemy.INGREDIENT_SLOT] == null || !oldInventory[Alchemy.INGREDIENT_SLOT].isSimilar(newInventory[Alchemy.INGREDIENT_SLOT]) || !validBrew) { if (oldInventory[Alchemy.INGREDIENT_SLOT] == null || newInventory[Alchemy.INGREDIENT_SLOT] == null || !oldInventory[Alchemy.INGREDIENT_SLOT].isSimilar(newInventory[Alchemy.INGREDIENT_SLOT]) || !validBrew) {

View File

@ -27,6 +27,7 @@ public class AlchemyBrewTask extends BukkitRunnable {
private double brewSpeed; private double brewSpeed;
private double brewTimer; private double brewTimer;
private Player player; private Player player;
private int fuel;
public AlchemyBrewTask(BlockState brewingStand, Player player) { public AlchemyBrewTask(BlockState brewingStand, Player player) {
this.brewingStand = brewingStand; this.brewingStand = brewingStand;
@ -50,6 +51,8 @@ public class AlchemyBrewTask extends BukkitRunnable {
if (Alchemy.brewingStandMap.containsKey(location)) { if (Alchemy.brewingStandMap.containsKey(location)) {
Alchemy.brewingStandMap.get(location).cancel(); Alchemy.brewingStandMap.get(location).cancel();
} }
fuel = ((BrewingStand) brewingStand).getFuelLevel() - 1;
Alchemy.brewingStandMap.put(location, this); Alchemy.brewingStandMap.put(location, this);
this.runTaskTimer(mcMMO.p, 1, 1); this.runTaskTimer(mcMMO.p, 1, 1);
@ -57,7 +60,7 @@ public class AlchemyBrewTask extends BukkitRunnable {
@Override @Override
public void run() { public void run() {
if (player == null || !player.isValid() || brewingStand == null || brewingStand.getType() != Material.BREWING_STAND) { 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)) { if (Alchemy.brewingStandMap.containsKey(location)) {
Alchemy.brewingStandMap.remove(location); Alchemy.brewingStandMap.remove(location);
} }
@ -66,6 +69,8 @@ public class AlchemyBrewTask extends BukkitRunnable {
return; return;
} }
((BrewingStand) brewingStand).setFuelLevel(fuel);
brewTimer -= brewSpeed; brewTimer -= brewSpeed;