Merge pull request #4 from DieReicheErethons/master

Pulling in SnowStorm's fixes
This commit is contained in:
Daniel Boston
2016-05-11 01:05:47 -04:00
9 changed files with 965 additions and 969 deletions
+6 -25
View File
@@ -1,16 +1,13 @@
package com.dre.brewery; package com.dre.brewery;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
import java.util.*;
public class BIngredients { public class BIngredients {
public static Set<Material> possibleIngredients = new HashSet<Material>(); public static Set<Material> possibleIngredients = new HashSet<Material>();
public static ArrayList<BRecipe> recipes = new ArrayList<BRecipe>(); public static ArrayList<BRecipe> recipes = new ArrayList<BRecipe>();
@@ -83,11 +80,7 @@ public class BIngredients {
Brew.addOrReplaceEffects(potionMeta, brew.getEffects(), brew.getQuality()); Brew.addOrReplaceEffects(potionMeta, brew.getEffects(), brew.getQuality());
cookedName = cookRecipe.getName(quality); cookedName = cookRecipe.getName(quality);
if (P.use1_9) { Brew.PotionColor.valueOf(cookRecipe.getColor()).colorBrew(potionMeta, potion, false);
potionMeta.setMainEffect(Brew.PotionColor.valueOf(cookRecipe.getColor()).getEffect());
} else {
potion.setDurability(Brew.PotionColor.valueOf(cookRecipe.getColor()).getColorId(false));
}
} else { } else {
// new base potion // new base potion
@@ -95,22 +88,14 @@ public class BIngredients {
if (state <= 1) { if (state <= 1) {
cookedName = P.p.languageReader.get("Brew_ThickBrew"); cookedName = P.p.languageReader.get("Brew_ThickBrew");
if (P.use1_9) { Brew.PotionColor.BLUE.colorBrew(potionMeta, potion, false);
potionMeta.setMainEffect(Brew.PotionColor.BLUE.getEffect());
} else {
potion.setDurability(Brew.PotionColor.BLUE.getColorId(false));
}
} else { } else {
for (Material ingredient : materials.keySet()) { for (Material ingredient : materials.keySet()) {
if (cookedNames.containsKey(ingredient)) { if (cookedNames.containsKey(ingredient)) {
// if more than half of the ingredients is of one kind // if more than half of the ingredients is of one kind
if (materials.get(ingredient) > (getIngredientsCount() / 2)) { if (materials.get(ingredient) > (getIngredientsCount() / 2)) {
cookedName = cookedNames.get(ingredient); cookedName = cookedNames.get(ingredient);
if (P.use1_9) { Brew.PotionColor.CYAN.colorBrew(potionMeta, potion, true);
potionMeta.setMainEffect(Brew.PotionColor.CYAN.getEffect());
} else {
potion.setDurability(Brew.PotionColor.CYAN.getColorId(true));
}
} }
} }
} }
@@ -119,11 +104,7 @@ public class BIngredients {
if (cookedName == null) { if (cookedName == null) {
// if no name could be found // if no name could be found
cookedName = P.p.languageReader.get("Brew_Undefined"); cookedName = P.p.languageReader.get("Brew_Undefined");
if (P.use1_9) { Brew.PotionColor.CYAN.colorBrew(potionMeta, potion, true);
potionMeta.setMainEffect(Brew.PotionColor.CYAN.getEffect());
} else {
potion.setDurability(Brew.PotionColor.CYAN.getColorId(true));
}
} }
potionMeta.setDisplayName(P.p.color("&f" + cookedName)); potionMeta.setDisplayName(P.p.color("&f" + cookedName));
+5
View File
@@ -229,8 +229,13 @@ public class BPlayer {
if (time == 0) { if (time == 0) {
// push him only to the side? or any direction // push him only to the side? or any direction
// like now // like now
if (P.use1_9) { // Pushing is way stronger in 1.9
push.setX((Math.random() - 0.5) / 2.0);
push.setZ((Math.random() - 0.5) / 2.0);
} else {
push.setX(Math.random() - 0.5); push.setX(Math.random() - 0.5);
push.setZ(Math.random() - 0.5); push.setZ(Math.random() - 0.5);
}
player.setVelocity(push); player.setVelocity(push);
} else if (time < 0 && time > -10) { } else if (time < 0 && time > -10) {
// push him some more in the same direction // push him some more in the same direction
+4 -7
View File
@@ -1,13 +1,14 @@
package com.dre.brewery; package com.dre.brewery;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
import java.util.ArrayList;
import java.util.List;
public class BRecipe { public class BRecipe {
private String[] name; private String[] name;
@@ -204,11 +205,7 @@ public class BRecipe {
Brew brew = new Brew(uid, bIngredients, quality, distillruns, getAge(), wood, getName(5), false, false, true); Brew brew = new Brew(uid, bIngredients, quality, distillruns, getAge(), wood, getName(5), false, false, true);
if (P.use1_9) { Brew.PotionColor.valueOf(getColor()).colorBrew(potionMeta, potion, false);
potionMeta.setMainEffect(Brew.PotionColor.valueOf(getColor()).getEffect());
} else {
potion.setDurability(Brew.PotionColor.valueOf(getColor()).getColorId(false));
}
potionMeta.setDisplayName(P.p.color("&f" + getName(quality))); potionMeta.setDisplayName(P.p.color("&f" + getName(quality)));
// This effect stores the UID in its Duration // This effect stores the UID in its Duration
potionMeta.addCustomEffect((PotionEffectType.REGENERATION).createEffect((uid * 4), 0), true); potionMeta.addCustomEffect((PotionEffectType.REGENERATION).createEffect((uid * 4), 0), true);
+2 -2
View File
@@ -129,7 +129,7 @@ public class Barrel implements InventoryHolder {
} }
} catch (Throwable e) { } catch (Throwable e) {
P.p.errorLog("Failed to Check WorldGuard for Barrel Open Permissions!"); P.p.errorLog("Failed to Check WorldGuard for Barrel Open Permissions!");
P.p.errorLog("Brewery was tested with version 5.8 to 6.0 of WorldGuard!"); P.p.errorLog("Brewery was tested with version 5.8 to 6.1 of WorldGuard!");
P.p.errorLog("Disable the WorldGuard support in the config and do /brew reload"); P.p.errorLog("Disable the WorldGuard support in the config and do /brew reload");
e.printStackTrace(); e.printStackTrace();
P.p.msg(player, "&cError opening Barrel, please report to an Admin!"); P.p.msg(player, "&cError opening Barrel, please report to an Admin!");
@@ -146,7 +146,7 @@ public class Barrel implements InventoryHolder {
} }
} catch (Throwable e) { } catch (Throwable e) {
P.p.errorLog("Failed to Check GriefPrevention for Barrel Open Permissions!"); P.p.errorLog("Failed to Check GriefPrevention for Barrel Open Permissions!");
P.p.errorLog("Brewery only works with the latest release of GriefPrevention (7.8)"); P.p.errorLog("Brewery was tested with GriefPrevention 14.5.1");
P.p.errorLog("Disable the GriefPrevention support in the config and do /brew reload"); P.p.errorLog("Disable the GriefPrevention support in the config and do /brew reload");
e.printStackTrace(); e.printStackTrace();
P.p.msg(player, "&cError opening Barrel, please report to an Admin!"); P.p.msg(player, "&cError opening Barrel, please report to an Admin!");
+48 -54
View File
@@ -1,20 +1,25 @@
package com.dre.brewery; package com.dre.brewery;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.BrewerInventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionData;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.potion.PotionType;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.BrewerInventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
public class Brew { public class Brew {
// represents the liquid in the brewed Potions // represents the liquid in the brewed Potions
public static Map<Integer, Brew> potions = new HashMap<Integer, Brew>(); public static Map<Integer, Brew> potions = new HashMap<Integer, Brew>();
public static Boolean colorInBarrels; // color the Lore while in Barrels public static Boolean colorInBarrels; // color the Lore while in Barrels
public static Boolean colorInBrewer; // color the Lore while in Brewer public static Boolean colorInBrewer; // color the Lore while in Brewer
@@ -237,6 +242,7 @@ public class Brew {
} }
public boolean canDistill() { public boolean canDistill() {
if (stat) return false;
if (currentRecipe != null) { if (currentRecipe != null) {
return currentRecipe.getDistillRuns() > distillRuns; return currentRecipe.getDistillRuns() > distillRuns;
} else if (distillRuns >= 6) { } else if (distillRuns >= 6) {
@@ -291,22 +297,15 @@ public class Brew {
this.stat = stat; this.stat = stat;
if (currentRecipe != null && canDistill()) { if (currentRecipe != null && canDistill()) {
if (stat) { if (stat) {
if (P.use1_9) { PotionColor.valueOf(currentRecipe.getColor()).colorBrew(((PotionMeta) potion.getItemMeta()), potion, false);
PotionMeta potionMeta = (PotionMeta) potion.getItemMeta();
potionMeta.setMainEffect(PotionColor.valueOf(currentRecipe.getColor()).getEffect());
} else { } else {
potion.setDurability(PotionColor.valueOf(currentRecipe.getColor()).getColorId(false)); PotionColor.valueOf(currentRecipe.getColor()).colorBrew(((PotionMeta) potion.getItemMeta()), potion, true);
}
} else if (P.use1_9) {
PotionMeta potionMeta = (PotionMeta) potion.getItemMeta();
potionMeta.setMainEffect(PotionColor.valueOf(currentRecipe.getColor()).getEffect());
} else {
potion.setDurability(PotionColor.valueOf(currentRecipe.getColor()).getColorId(true));
} }
} }
} }
// Distilling section --------------- // Distilling section ---------------
// distill all custom potions in the brewer // distill all custom potions in the brewer
public static void distillAll(BrewerInventory inv, Boolean[] contents) { public static void distillAll(BrewerInventory inv, Boolean[] contents) {
int slot = 0; int slot = 0;
@@ -336,21 +335,13 @@ public class Brew {
addOrReplaceEffects(potionMeta, getEffects(), quality); addOrReplaceEffects(potionMeta, getEffects(), quality);
potionMeta.setDisplayName(P.p.color("&f" + recipe.getName(quality))); potionMeta.setDisplayName(P.p.color("&f" + recipe.getName(quality)));
if (P.use1_9) { PotionColor.valueOf(recipe.getColor()).colorBrew(potionMeta, slotItem, canDistill());
potionMeta.setMainEffect(PotionColor.valueOf(recipe.getColor()).getEffect());
} else {
slotItem.setDurability(PotionColor.valueOf(recipe.getColor()).getColorId(canDistill()));
}
} else { } else {
quality = 0; quality = 0;
removeEffects(potionMeta); removeEffects(potionMeta);
potionMeta.setDisplayName(P.p.color("&f" + P.p.languageReader.get("Brew_DistillUndefined"))); potionMeta.setDisplayName(P.p.color("&f" + P.p.languageReader.get("Brew_DistillUndefined")));
if (P.use1_9) { PotionColor.GREY.colorBrew(potionMeta, slotItem, canDistill());
potionMeta.setMainEffect(PotionColor.GREY.getEffect());
} else {
slotItem.setDurability(PotionColor.GREY.getColorId(canDistill()));
}
} }
// Distill Lore // Distill Lore
@@ -369,6 +360,7 @@ public class Brew {
} }
// Ageing Section ------------------ // Ageing Section ------------------
public void age(ItemStack item, float time, byte woodType) { public void age(ItemStack item, float time, byte woodType) {
if (stat) { if (stat) {
return; return;
@@ -391,20 +383,12 @@ public class Brew {
addOrReplaceEffects(potionMeta, getEffects(), quality); addOrReplaceEffects(potionMeta, getEffects(), quality);
potionMeta.setDisplayName(P.p.color("&f" + recipe.getName(quality))); potionMeta.setDisplayName(P.p.color("&f" + recipe.getName(quality)));
if (P.use1_9) { PotionColor.valueOf(recipe.getColor()).colorBrew(potionMeta, item, canDistill());
potionMeta.setMainEffect(PotionColor.valueOf(recipe.getColor()).getEffect());
} else {
item.setDurability(PotionColor.valueOf(recipe.getColor()).getColorId(canDistill()));
}
} else { } else {
quality = 0; quality = 0;
removeEffects(potionMeta); removeEffects(potionMeta);
potionMeta.setDisplayName(P.p.color("&f" + P.p.languageReader.get("Brew_BadPotion"))); potionMeta.setDisplayName(P.p.color("&f" + P.p.languageReader.get("Brew_BadPotion")));
if (P.use1_9) { PotionColor.GREY.colorBrew(potionMeta, item, canDistill());
potionMeta.setMainEffect(PotionColor.GREY.getEffect());
} else {
item.setDurability(PotionColor.GREY.getColorId(canDistill()));
}
} }
} }
@@ -452,6 +436,7 @@ public class Brew {
} }
// Lore ----------- // Lore -----------
// Converts to/from qualitycolored Lore // Converts to/from qualitycolored Lore
public void convertLore(PotionMeta meta, Boolean toQuality) { public void convertLore(PotionMeta meta, Boolean toQuality) {
if (currentRecipe == null) { if (currentRecipe == null) {
@@ -660,25 +645,25 @@ public class Brew {
} }
public static enum PotionColor { public static enum PotionColor {
PINK(1, PotionEffectType.REGENERATION), PINK(1, PotionType.REGEN),
CYAN(2, PotionEffectType.SPEED), CYAN(2, PotionType.SPEED),
ORANGE(3, PotionEffectType.FIRE_RESISTANCE), ORANGE(3, PotionType.FIRE_RESISTANCE),
GREEN(4, PotionEffectType.POISON), GREEN(4, PotionType.POISON),
BRIGHT_RED(5, PotionEffectType.HEAL), BRIGHT_RED(5, PotionType.INSTANT_HEAL),
BLUE(6, PotionEffectType.NIGHT_VISION), BLUE(6, PotionType.NIGHT_VISION),
BLACK(8, PotionEffectType.WEAKNESS), BLACK(8, PotionType.WEAKNESS),
RED(9, PotionEffectType.INCREASE_DAMAGE), RED(9, PotionType.STRENGTH),
GREY(10, PotionEffectType.SLOW), GREY(10, PotionType.SLOWNESS),
WATER(11, PotionEffectType.WATER_BREATHING), WATER(11, PotionType.WATER_BREATHING),
DARK_RED(12, PotionEffectType.HARM), DARK_RED(12, PotionType.INSTANT_DAMAGE),
BRIGHT_GREY(14, PotionEffectType.INVISIBILITY); BRIGHT_GREY(14, PotionType.INVISIBILITY);
private final int colorId; private final int colorId;
private final PotionEffectType effect; private final PotionType type;
private PotionColor(int colorId, PotionEffectType effect) { private PotionColor(int colorId, PotionType type) {
this.colorId = colorId; this.colorId = colorId;
this.effect = effect; this.type = type;
} }
// gets the Damage Value, that sets a color on the potion // gets the Damage Value, that sets a color on the potion
@@ -690,8 +675,17 @@ public class Brew {
return (short) (colorId + 32); return (short) (colorId + 32);
} }
public PotionEffectType getEffect() { public PotionType getType() {
return effect; return type;
}
public void colorBrew(PotionMeta meta, ItemStack potion, boolean destillable) {
if (P.use1_9) {
meta.setBasePotionData(new PotionData(getType()));
meta.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS);
} else {
potion.setDurability(getColorId(destillable));
}
} }
} }
+5 -5
View File
@@ -35,7 +35,7 @@ import org.bukkit.plugin.java.JavaPlugin;
public class P extends JavaPlugin { public class P extends JavaPlugin {
public static P p; public static P p;
public static String configVersion = "1.3.1"; public static final String configVersion = "1.3.1";
public static boolean debug; public static boolean debug;
public static boolean useUUID; public static boolean useUUID;
public static boolean use1_9; public static boolean use1_9;
@@ -55,7 +55,7 @@ public class P extends JavaPlugin {
public EntityListener entityListener; public EntityListener entityListener;
public InventoryListener inventoryListener; public InventoryListener inventoryListener;
public WorldListener worldListener; public WorldListener worldListener;
public Compat1_9 compat1_9; public DrinkListener1_9 drinkListener1_9;
// Language // Language
public String language; public String language;
@@ -70,7 +70,7 @@ public class P extends JavaPlugin {
useUUID = !v.matches(".*1\\.[0-6].*") && !v.matches(".*1\\.7\\.[0-5].*"); useUUID = !v.matches(".*1\\.[0-6].*") && !v.matches(".*1\\.7\\.[0-5].*");
use1_9 = !v.matches(".*1\\.[0-8].*"); use1_9 = !v.matches(".*1\\.[0-8].*");
if (use1_9) { if (use1_9) {
log("&cExperimental support for Bukkit 1.9 enabled."); log("&eExperimental support for Bukkit 1.9 enabled.");
} }
// load the Config // load the Config
@@ -97,7 +97,7 @@ public class P extends JavaPlugin {
entityListener = new EntityListener(); entityListener = new EntityListener();
inventoryListener = new InventoryListener(); inventoryListener = new InventoryListener();
worldListener = new WorldListener(); worldListener = new WorldListener();
compat1_9 = new Compat1_9(); drinkListener1_9 = new DrinkListener1_9();
getCommand("Brewery").setExecutor(new CommandListener()); getCommand("Brewery").setExecutor(new CommandListener());
p.getServer().getPluginManager().registerEvents(blockListener, p); p.getServer().getPluginManager().registerEvents(blockListener, p);
@@ -106,7 +106,7 @@ public class P extends JavaPlugin {
p.getServer().getPluginManager().registerEvents(inventoryListener, p); p.getServer().getPluginManager().registerEvents(inventoryListener, p);
p.getServer().getPluginManager().registerEvents(worldListener, p); p.getServer().getPluginManager().registerEvents(worldListener, p);
if (use1_9) { if (use1_9) {
p.getServer().getPluginManager().registerEvents(compat1_9, p); p.getServer().getPluginManager().registerEvents(drinkListener1_9, p);
} }
// Heartbeat // Heartbeat
@@ -3,6 +3,7 @@ package com.dre.brewery.listeners;
import com.dre.brewery.Brew; import com.dre.brewery.Brew;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerItemConsumeEvent; import org.bukkit.event.player.PlayerItemConsumeEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -11,9 +12,9 @@ import org.bukkit.potion.PotionData;
import org.bukkit.potion.PotionType; import org.bukkit.potion.PotionType;
// Workaround to remove unwanted potion effects // Workaround to remove unwanted potion effects
public class Compat1_9 implements Listener { public class DrinkListener1_9 implements Listener {
@EventHandler @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlayerDrink(PlayerItemConsumeEvent event) { public void onPlayerDrink(PlayerItemConsumeEvent event) {
ItemStack item = event.getItem(); ItemStack item = event.getItem();
Brew brew = Brew.get(item); Brew brew = Brew.get(item);
@@ -12,6 +12,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.inventory.BrewEvent; import org.bukkit.event.inventory.BrewEvent;
import org.bukkit.event.inventory.InventoryAction;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryOpenEvent; import org.bukkit.event.inventory.InventoryOpenEvent;
@@ -49,6 +50,7 @@ public class InventoryListener implements Listener {
/* === Recreating manually the prior BrewEvent behavior. === */ /* === Recreating manually the prior BrewEvent behavior. === */
private HashSet<UUID> trackedBrewmen = new HashSet<UUID>(); private HashSet<UUID> trackedBrewmen = new HashSet<UUID>();
private HashMap<Block, Integer> trackedBrewers = new HashMap<Block, Integer>(); private HashMap<Block, Integer> trackedBrewers = new HashMap<Block, Integer>();
private static final int DISTILLTIME = 401;
/** /**
* Start tracking distillation for a person when they open the brewer window. * Start tracking distillation for a person when they open the brewer window.
@@ -98,6 +100,7 @@ public class InventoryListener implements Listener {
if (!trackedBrewmen.contains(puid)) return; if (!trackedBrewmen.contains(puid)) return;
if (InventoryType.BREWING != inv.getType()) return; if (InventoryType.BREWING != inv.getType()) return;
if (event.getAction() == InventoryAction.NOTHING) return; // Ignore clicks that do nothing
BrewerInventory brewer = (BrewerInventory) inv; BrewerInventory brewer = (BrewerInventory) inv;
final Block brewery = brewer.getHolder().getBlock(); final Block brewery = brewer.getHolder().getBlock();
@@ -110,37 +113,39 @@ public class InventoryListener implements Listener {
// Now check if we should bother to track it. // Now check if we should bother to track it.
trackedBrewers.put(brewery, new BukkitRunnable() { trackedBrewers.put(brewery, new BukkitRunnable() {
private int brewTime = 401; private int brewTime = DISTILLTIME;
@Override @Override
public void run() { public void run() {
BlockState now = brewery.getState(); BlockState now = brewery.getState();
if (now instanceof BrewingStand) { if (now instanceof BrewingStand) {
BrewingStand stand = (BrewingStand) now; BrewingStand stand = (BrewingStand) now;
// check if still custom if (brewTime == DISTILLTIME) { // only check at the beginning (and end) for distillables
BrewerInventory brewer = stand.getInventory(); if (!isCustomAndDistill(stand.getInventory())) {
if (isCustomAndDistill(brewer) ) { this.cancel();
trackedBrewers.remove(brewery);
P.p.debugLog("nothing to distill");
return;
}
}
// Still a valid brew distillation brewTime--; // count down.
brewTime = brewTime - 1; // count down.
stand.setBrewingTime(brewTime); // arbitrary for now stand.setBrewingTime(brewTime); // arbitrary for now
if (brewTime <= 1) { // Done! if (brewTime <= 1) { // Done!
BrewEvent doBrew = new BrewEvent(brewery, brewer); //BrewEvent doBrew = new BrewEvent(brewery, brewer);
Bukkit.getServer().getPluginManager().callEvent(doBrew); //Bukkit.getServer().getPluginManager().callEvent(doBrew);
if (!doBrew.isCancelled()) { // BrewEvent _wasn't_ cancelled.
BrewerInventory brewer = stand.getInventory();
if (!runDistill(brewer)) {
this.cancel(); this.cancel();
trackedBrewers.remove(brewery); trackedBrewers.remove(brewery);
stand.setBrewingTime(0); stand.setBrewingTime(0);
P.p.debugLog("All done distilling"); P.p.debugLog("All done distilling");
} else { } else {
brewTime = 401; // go again. brewTime = DISTILLTIME; // go again.
P.p.debugLog("Can distill more! Continuing."); P.p.debugLog("Can distill more! Continuing.");
} }
} }
} else {
this.cancel();
trackedBrewers.remove(brewery);
}
} else { } else {
this.cancel(); this.cancel();
trackedBrewers.remove(brewery); trackedBrewers.remove(brewery);
@@ -174,8 +179,13 @@ public class InventoryListener implements Listener {
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onBrew(BrewEvent event) { public void onBrew(BrewEvent event) {
if (runDistill(event.getContents())) {
event.setCancelled(true);
}
}
private boolean runDistill(BrewerInventory inv) {
int slot = 0; int slot = 0;
BrewerInventory inv = event.getContents();
ItemStack item; ItemStack item;
boolean custom = false; boolean custom = false;
Boolean[] contents = new Boolean[3]; Boolean[] contents = new Boolean[3];
@@ -200,10 +210,10 @@ public class InventoryListener implements Listener {
slot++; slot++;
} }
if (custom) { if (custom) {
event.setCancelled(true);
Brew.distillAll(inv, contents); Brew.distillAll(inv, contents);
return true;
} }
return false;
} }
// convert to non colored Lore when taking out of Barrel/Brewer // convert to non colored Lore when taking out of Barrel/Brewer
@@ -70,6 +70,14 @@ public class PlayerListener implements Listener {
BCauldron.remove(clickedBlock); BCauldron.remove(clickedBlock);
} }
return; return;
// Its possible to empty a Cauldron with a Bucket in 1.9
} else if (P.use1_9 && materialInHand == Material.BUCKET) {
if (BCauldron.getFillLevel(clickedBlock) == 2) {
// will only remove when existing
BCauldron.remove(clickedBlock);
}
return;
} }
// Check if fire alive below cauldron when adding ingredients // Check if fire alive below cauldron when adding ingredients