From ba04530b7e149ebe4d104873890e1f85092263aa Mon Sep 17 00:00:00 2001 From: Daniel Saukel Date: Sun, 15 May 2016 14:43:34 +0200 Subject: [PATCH 1/5] Fix DieReicheErethons/Brewery#119 I'm using an unofficial, but working repository. --- pom.xml | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index 329ffeb..08c4580 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ maven-compiler-plugin - 2.5.1 + 3.5.1 1.7 1.7 @@ -44,6 +44,10 @@ + + dre2n-rpo + http://feuerstern.bplaced.net/repo/ + spigot-repo https://hub.spigotmc.org/nexus/content/groups/public/ @@ -52,22 +56,14 @@ vault-repo http://nexus.theyeticave.net/content/repositories/pub_releases - + + mcstats-repo + http://repo.mcstats.org/content/repositories/public/ + sk89q-repo http://maven.sk89q.com/repo/ - - addstar-repo - http://maven.addstar.com.au/artifactory/ext-release-local/ - - true - always - - md_5-releases http://repo.md-5.net/content/repositories/releases/ @@ -94,12 +90,12 @@ com.griefcraft.lwc LWCPlugin - 1.7.2 + 4.5.0-SNAPSHOT me.ryanhamshire GriefPrevention - 14.5.1 + 14.5.4 compile From e015b29c1cb8db5c5def1498ff01b1b6a82ae2bd Mon Sep 17 00:00:00 2001 From: Sn0wStorm Date: Wed, 18 May 2016 14:12:36 +0200 Subject: [PATCH 2/5] Changed Repo priority The Maven Build succeeds now, even though there are still zip errors for the LogBlockQuestioner --- pom.xml | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 08c4580..dcc310b 100644 --- a/pom.xml +++ b/pom.xml @@ -44,9 +44,9 @@ - - dre2n-rpo - http://feuerstern.bplaced.net/repo/ + + md_5-releases + http://repo.md-5.net/content/repositories/releases/ spigot-repo @@ -65,8 +65,8 @@ http://maven.sk89q.com/repo/ - md_5-releases - http://repo.md-5.net/content/repositories/releases/ + dre2n-rpo + http://feuerstern.bplaced.net/repo/ @@ -74,7 +74,8 @@ org.bukkit bukkit - 1.9-R0.1-SNAPSHOT + 1.9.4-R0.1-SNAPSHOT + provided net.milkbowl.vault @@ -86,22 +87,31 @@ com.sk89q worldguard 6.1 + provided com.griefcraft.lwc LWCPlugin 4.5.0-SNAPSHOT + provided me.ryanhamshire GriefPrevention 14.5.4 - compile + provided de.diddiz logblock 1.94 + provided + + + de.diddiz + questioner + 1.94 + provided From 024c05b8174a9874e856071efa2ad72691079cf1 Mon Sep 17 00:00:00 2001 From: Sn0wStorm Date: Wed, 18 May 2016 20:28:28 +0200 Subject: [PATCH 3/5] Convert Potions for 1.9 Convert existing brews to show correct color and lore --- src/com/dre/brewery/Barrel.java | 12 ++-- src/com/dre/brewery/Brew.java | 15 ++++- src/com/dre/brewery/P.java | 2 +- .../dre/brewery/integration/WGBarrelOld.java | 2 +- .../brewery/listeners/DrinkListener1_9.java | 9 ++- .../brewery/listeners/InventoryListener.java | 60 ++++++++++++------- 6 files changed, 63 insertions(+), 37 deletions(-) diff --git a/src/com/dre/brewery/Barrel.java b/src/com/dre/brewery/Barrel.java index 689b0a9..a247ea6 100644 --- a/src/com/dre/brewery/Barrel.java +++ b/src/com/dre/brewery/Barrel.java @@ -146,7 +146,7 @@ public class Barrel implements InventoryHolder { } } catch (Throwable e) { P.p.errorLog("Failed to Check GriefPrevention for Barrel Open Permissions!"); - P.p.errorLog("Brewery was tested with GriefPrevention 14.5.1"); + P.p.errorLog("Brewery was tested with GriefPrevention 14.5.4"); P.p.errorLog("Disable the GriefPrevention support in the config and do /brew reload"); e.printStackTrace(); P.p.msg(player, "&cError opening Barrel, please report to an Admin!"); @@ -168,7 +168,7 @@ public class Barrel implements InventoryHolder { return LWCBarrel.checkAccess(player, sign, event, plugin); } catch (Throwable e) { P.p.errorLog("Failed to Check LWC for Barrel Open Permissions!"); - P.p.errorLog("Brewery was tested with version 4.3.1 of LWC!"); + P.p.errorLog("Brewery was tested with version 4.5.0 of LWC!"); P.p.errorLog("Disable the LWC support in the config and do /brew reload"); e.printStackTrace(); P.p.msg(player, "&cError opening Barrel, please report to an Admin!"); @@ -193,7 +193,7 @@ public class Barrel implements InventoryHolder { return LWCBarrel.checkDestroy(player, this); } catch (Throwable e) { P.p.errorLog("Failed to Check LWC for Barrel Break Permissions!"); - P.p.errorLog("Brewery was tested with version 4.3.1 of LWC!"); + P.p.errorLog("Brewery was tested with version 4.5.0 of LWC!"); P.p.errorLog("Disable the LWC support in the config and do /brew reload"); e.printStackTrace(); P.p.msg(player, "&cError breaking Barrel, please report to an Admin!"); @@ -211,7 +211,7 @@ public class Barrel implements InventoryHolder { LWCBarrel.remove(this); } catch (Throwable e) { P.p.errorLog("Failed to Remove LWC Lock from Barrel!"); - P.p.errorLog("Brewery was tested with version 4.3.1 of LWC!"); + P.p.errorLog("Brewery was tested with version 4.5.0 of LWC!"); e.printStackTrace(); } } @@ -256,7 +256,7 @@ public class Barrel implements InventoryHolder { LogBlockBarrel.openBarrel(player, inventory, spigot.getLocation()); } catch (Throwable e) { P.p.errorLog("Failed to Log Barrel to LogBlock!"); - P.p.errorLog("Brewery was tested with version 1.80 of LogBlock!"); + P.p.errorLog("Brewery was tested with version 1.94 of LogBlock!"); e.printStackTrace(); } } @@ -461,7 +461,7 @@ public class Barrel implements InventoryHolder { LogBlockBarrel.breakBarrel(breaker.getName(), items, spigot.getLocation()); } catch (Throwable e) { P.p.errorLog("Failed to Log Barrel-break to LogBlock!"); - P.p.errorLog("Brewery was tested with version 1.80 of LogBlock!"); + P.p.errorLog("Brewery was tested with version 1.94 of LogBlock!"); e.printStackTrace(); } } diff --git a/src/com/dre/brewery/Brew.java b/src/com/dre/brewery/Brew.java index 263e096..2b3f228 100644 --- a/src/com/dre/brewery/Brew.java +++ b/src/com/dre/brewery/Brew.java @@ -83,8 +83,7 @@ public class Brew { public static Brew get(ItemStack item) { if (item.getType() == Material.POTION) { if (item.hasItemMeta()) { - PotionMeta potionMeta = (PotionMeta) item.getItemMeta(); - return get(potionMeta); + return get((PotionMeta) item.getItemMeta()); } } return null; @@ -274,6 +273,18 @@ public class Brew { unlabeled = true; } + public int getDistillRuns() { + return distillRuns; + } + + public float getAgeTime() { + return ageTime; + } + + public BRecipe getCurrentRecipe() { + return currentRecipe; + } + public boolean isPersistent() { return persistent; } diff --git a/src/com/dre/brewery/P.java b/src/com/dre/brewery/P.java index 499a636..d6725c9 100644 --- a/src/com/dre/brewery/P.java +++ b/src/com/dre/brewery/P.java @@ -262,7 +262,7 @@ public class P extends JavaPlugin { } catch (Throwable e) { wg = null; P.p.errorLog("Failed loading WorldGuard Integration! Opening Barrels will NOT work!"); - 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"); e.printStackTrace(); } diff --git a/src/com/dre/brewery/integration/WGBarrelOld.java b/src/com/dre/brewery/integration/WGBarrelOld.java index ed5ccf9..a0f403d 100644 --- a/src/com/dre/brewery/integration/WGBarrelOld.java +++ b/src/com/dre/brewery/integration/WGBarrelOld.java @@ -26,7 +26,7 @@ public class WGBarrelOld implements WGBarrel { canBuild = ApplicableRegionSet.class.getMethod("canBuild", LocalPlayer.class); } catch (NoSuchMethodException e) { P.p.errorLog("Failed to Hook WorldGuard for Barrel Open Permissions! Opening Barrels will NOT work!"); - 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"); e.printStackTrace(); } diff --git a/src/com/dre/brewery/listeners/DrinkListener1_9.java b/src/com/dre/brewery/listeners/DrinkListener1_9.java index ddaf94e..2533455 100644 --- a/src/com/dre/brewery/listeners/DrinkListener1_9.java +++ b/src/com/dre/brewery/listeners/DrinkListener1_9.java @@ -17,13 +17,12 @@ public class DrinkListener1_9 implements Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void onPlayerDrink(PlayerItemConsumeEvent event) { ItemStack item = event.getItem(); - Brew brew = Brew.get(item); - if (brew == null) { - return; - } - if (item.getType() == Material.POTION) { PotionMeta meta = (PotionMeta) item.getItemMeta(); + Brew brew = Brew.get(meta); + if (brew == null) { + return; + } // Throw away former "base" effect and replace with MUNDANE. meta.setBasePotionData(new PotionData(PotionType.MUNDANE, false, false)); item.setItemMeta(meta); diff --git a/src/com/dre/brewery/listeners/InventoryListener.java b/src/com/dre/brewery/listeners/InventoryListener.java index 2437615..a45cf32 100644 --- a/src/com/dre/brewery/listeners/InventoryListener.java +++ b/src/com/dre/brewery/listeners/InventoryListener.java @@ -1,9 +1,12 @@ package com.dre.brewery.listeners; -import java.util.HashMap; -import java.util.HashSet; -import java.util.UUID; - +import com.dre.brewery.BRecipe; +import com.dre.brewery.Barrel; +import com.dre.brewery.Brew; +import com.dre.brewery.P; +import com.dre.brewery.integration.LogBlockBarrel; +import org.bukkit.Bukkit; +import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.block.BrewingStand; @@ -11,25 +14,17 @@ import org.bukkit.entity.HumanEntity; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.inventory.BrewEvent; -import org.bukkit.event.inventory.InventoryAction; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; -import org.bukkit.event.inventory.InventoryPickupItemEvent; -import org.bukkit.event.inventory.InventoryType; +import org.bukkit.event.inventory.*; import org.bukkit.inventory.BrewerInventory; import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.meta.PotionMeta; +import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.scheduler.BukkitRunnable; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import com.dre.brewery.Barrel; -import com.dre.brewery.Brew; -import com.dre.brewery.P; -import com.dre.brewery.integration.LogBlockBarrel; +import java.util.HashMap; +import java.util.HashSet; +import java.util.UUID; /** * Updated for 1.9 to replicate the "Brewing" process for distilling. @@ -152,16 +147,14 @@ public class InventoryListener implements Listener { P.p.debugLog("The block was replaced; not a brewing stand."); } } - }.runTaskTimer(P.p, 2l, 1l).getTaskId()); + }.runTaskTimer(P.p, 2L, 1L).getTaskId()); } private boolean isCustomAndDistill(BrewerInventory brewer) { ItemStack item = brewer.getItem(3); // ingredient if (item == null || Material.GLOWSTONE_DUST != item.getType()) return false; // need dust in the top slot. - Boolean[] contents = new Boolean[3]; for (int slot = 0; slot < 3; slot++) { item = brewer.getItem(slot); - contents[slot] = false; if (item != null) { if (item.getType() == Material.POTION) { if (item.hasItemMeta()) { @@ -216,6 +209,29 @@ public class InventoryListener implements Listener { return false; } + // convert potions from 1.8 for color and to remove effect descriptions in 1.9 + @EventHandler(priority = EventPriority.LOW, ignoreCancelled = false) + public void onInventoryClickLow(InventoryClickEvent event) { + if (!P.use1_9) return; + + if (event.getCurrentItem() != null && event.getCurrentItem().getType().equals(Material.POTION)) { + ItemStack item = event.getCurrentItem(); + if (item.hasItemMeta()) { + PotionMeta potion = ((PotionMeta) item.getItemMeta()); + if (!potion.hasItemFlag(ItemFlag.HIDE_POTION_EFFECTS)) { + Brew brew = Brew.get(potion); + if (brew != null) { + BRecipe recipe = brew.getCurrentRecipe(); + if (recipe != null) { + Brew.PotionColor.valueOf(recipe.getColor()).colorBrew(potion, item, brew.canDistill()); + item.setItemMeta(potion); + } + } + } + } + } + } + // convert to non colored Lore when taking out of Barrel/Brewer @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onInventoryClick(InventoryClickEvent event) { @@ -260,7 +276,7 @@ public class InventoryListener implements Listener { LogBlockBarrel.closeBarrel(event.getPlayer(), event.getInventory()); } catch (Exception e) { P.p.errorLog("Failed to Log Barrel to LogBlock!"); - P.p.errorLog("Brewery was tested with version 1.80 of LogBlock!"); + P.p.errorLog("Brewery was tested with version 1.94 of LogBlock!"); e.printStackTrace(); } } From bf573200574d3300a8f3e009f7e828b1012da4fa Mon Sep 17 00:00:00 2001 From: Sn0wStorm Date: Wed, 18 May 2016 22:31:32 +0200 Subject: [PATCH 4/5] Store last updated time for brews --- src/com/dre/brewery/BRecipe.java | 3 ++- src/com/dre/brewery/Brew.java | 21 ++++++++++++++++++- src/com/dre/brewery/P.java | 5 ++++- src/com/dre/brewery/filedata/DataSave.java | 2 ++ .../brewery/listeners/CommandListener.java | 3 +++ .../brewery/listeners/InventoryListener.java | 12 +++++------ 6 files changed, 37 insertions(+), 9 deletions(-) diff --git a/src/com/dre/brewery/BRecipe.java b/src/com/dre/brewery/BRecipe.java index 9a7c68d..ec2fc5d 100644 --- a/src/com/dre/brewery/BRecipe.java +++ b/src/com/dre/brewery/BRecipe.java @@ -203,7 +203,7 @@ public class BRecipe { BIngredients bIngredients = new BIngredients(list, cookingTime); - 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, 0); Brew.PotionColor.valueOf(getColor()).colorBrew(potionMeta, potion, false); potionMeta.setDisplayName(P.p.color("&f" + getName(quality))); @@ -212,6 +212,7 @@ public class BRecipe { brew.convertLore(potionMeta, false); Brew.addOrReplaceEffects(potionMeta, effects, quality); + brew.touch(); potion.setItemMeta(potionMeta); return potion; diff --git a/src/com/dre/brewery/Brew.java b/src/com/dre/brewery/Brew.java index 2b3f228..505c381 100644 --- a/src/com/dre/brewery/Brew.java +++ b/src/com/dre/brewery/Brew.java @@ -21,6 +21,7 @@ public class Brew { // represents the liquid in the brewed Potions public static Map potions = new HashMap(); + public static long installTime = System.currentTimeMillis(); // plugin install time in millis after epoch public static Boolean colorInBarrels; // color the Lore while in Barrels public static Boolean colorInBrewer; // color the Lore while in Brewer @@ -33,9 +34,11 @@ public class Brew { private boolean unlabeled; private boolean persistent; private boolean stat; // static potions should not be changed + private int lastUpdate; // last update in hours after install time public Brew(int uid, BIngredients ingredients) { this.ingredients = ingredients; + touch(); potions.put(uid, this); } @@ -44,11 +47,12 @@ public class Brew { this.ingredients = ingredients; this.quality = quality; this.currentRecipe = recipe; + touch(); potions.put(uid, this); } // loading from file - public Brew(int uid, BIngredients ingredients, int quality, int distillRuns, float ageTime, float wood, String recipe, boolean unlabeled, boolean persistent, boolean stat) { + public Brew(int uid, BIngredients ingredients, int quality, int distillRuns, float ageTime, float wood, String recipe, boolean unlabeled, boolean persistent, boolean stat, int lastUpdate) { potions.put(uid, this); this.ingredients = ingredients; this.quality = quality; @@ -58,6 +62,7 @@ public class Brew { this.unlabeled = unlabeled; this.persistent = persistent; this.stat = stat; + this.lastUpdate = lastUpdate; setRecipeFromString(recipe); } @@ -273,6 +278,11 @@ public class Brew { unlabeled = true; } + // Do some regular updates + public void touch() { + lastUpdate = (int) ((float) (System.currentTimeMillis() - installTime) / 3600000F); + } + public int getDistillRuns() { return distillRuns; } @@ -315,6 +325,10 @@ public class Brew { } } + public int getLastUpdate() { + return lastUpdate; + } + // Distilling section --------------- // distill all custom potions in the brewer @@ -366,6 +380,7 @@ public class Brew { prefix = getQualityColor(ingredients.getDistillQuality(recipe, distillRuns)); } updateDistillLore(prefix, potionMeta); + touch(); slotItem.setItemMeta(potionMeta); } @@ -421,6 +436,7 @@ public class Brew { updateWoodLore(potionMeta); } } + touch(); item.setItemMeta(potionMeta); } @@ -650,6 +666,9 @@ public class Brew { if (brew.stat) { idConfig.set("stat", true); } + if (brew.lastUpdate > 0) { + idConfig.set("lastUpdate", brew.lastUpdate); + } // save the ingredients idConfig.set("ingId", brew.ingredients.save(config.getParent())); } diff --git a/src/com/dre/brewery/P.java b/src/com/dre/brewery/P.java index d6725c9..2fd11c7 100644 --- a/src/com/dre/brewery/P.java +++ b/src/com/dre/brewery/P.java @@ -369,6 +369,8 @@ public class P extends JavaPlugin { FileConfiguration data = YamlConfiguration.loadConfiguration(file); + Brew.installTime = data.getLong("installTime", System.currentTimeMillis()); + // Check if data is the newest version String version = data.getString("Version", null); if (version != null) { @@ -410,8 +412,9 @@ public class P extends JavaPlugin { boolean unlabeled = section.getBoolean(uid + ".unlabeled", false); boolean persistent = section.getBoolean(uid + ".persist", false); boolean stat = section.getBoolean(uid + ".stat", false); + int lastUpdate = section.getInt("lastUpdate", 0); - new Brew(parseInt(uid), ingredients, quality, distillRuns, ageTime, wood, recipe, unlabeled, persistent, stat); + new Brew(parseInt(uid), ingredients, quality, distillRuns, ageTime, wood, recipe, unlabeled, persistent, stat, lastUpdate); } } diff --git a/src/com/dre/brewery/filedata/DataSave.java b/src/com/dre/brewery/filedata/DataSave.java index b80e5e8..ea7507f 100644 --- a/src/com/dre/brewery/filedata/DataSave.java +++ b/src/com/dre/brewery/filedata/DataSave.java @@ -59,6 +59,8 @@ public class DataSave extends BukkitRunnable { FileConfiguration configFile = new YamlConfiguration(); + configFile.set("installTime", Brew.installTime); + if (!Brew.potions.isEmpty()) { Brew.save(configFile.createSection("Brew")); } diff --git a/src/com/dre/brewery/listeners/CommandListener.java b/src/com/dre/brewery/listeners/CommandListener.java index 93ab388..12b7731 100644 --- a/src/com/dre/brewery/listeners/CommandListener.java +++ b/src/com/dre/brewery/listeners/CommandListener.java @@ -430,6 +430,7 @@ public class CommandListener implements CommandExecutor { brew.setStatic(true, hand); p.msg(sender, p.languageReader.get("CMD_Persistent")); } + brew.touch(); return; } } @@ -459,6 +460,7 @@ public class CommandListener implements CommandExecutor { brew.setStatic(true, hand); p.msg(sender, p.languageReader.get("CMD_Static")); } + brew.touch(); return; } } @@ -478,6 +480,7 @@ public class CommandListener implements CommandExecutor { Brew brew = Brew.get(hand); if (brew != null) { brew.unLabel(hand); + brew.touch(); p.msg(sender, p.languageReader.get("CMD_UnLabel")); return; } diff --git a/src/com/dre/brewery/listeners/InventoryListener.java b/src/com/dre/brewery/listeners/InventoryListener.java index a45cf32..bfb7482 100644 --- a/src/com/dre/brewery/listeners/InventoryListener.java +++ b/src/com/dre/brewery/listeners/InventoryListener.java @@ -209,24 +209,24 @@ public class InventoryListener implements Listener { return false; } - // convert potions from 1.8 for color and to remove effect descriptions in 1.9 + // Clicked a Brew somewhere, do some updating @EventHandler(priority = EventPriority.LOW, ignoreCancelled = false) public void onInventoryClickLow(InventoryClickEvent event) { - if (!P.use1_9) return; - if (event.getCurrentItem() != null && event.getCurrentItem().getType().equals(Material.POTION)) { ItemStack item = event.getCurrentItem(); if (item.hasItemMeta()) { PotionMeta potion = ((PotionMeta) item.getItemMeta()); - if (!potion.hasItemFlag(ItemFlag.HIDE_POTION_EFFECTS)) { - Brew brew = Brew.get(potion); - if (brew != null) { + Brew brew = Brew.get(potion); + if (brew != null) { + // convert potions from 1.8 to 1.9 for color and to remove effect descriptions + if (P.use1_9 && !potion.hasItemFlag(ItemFlag.HIDE_POTION_EFFECTS)) { BRecipe recipe = brew.getCurrentRecipe(); if (recipe != null) { Brew.PotionColor.valueOf(recipe.getColor()).colorBrew(potion, item, brew.canDistill()); item.setItemMeta(potion); } } + brew.touch(); } } } From 41660c9b4f701a28edd1aa0fb0c1720e99c48463 Mon Sep 17 00:00:00 2001 From: Sn0wStorm Date: Thu, 19 May 2016 01:05:48 +0200 Subject: [PATCH 5/5] Release 1.4.2 for 1.9.x Fixed the BrewEvent firing and double distilling sometimes in 1.9 --- pom.xml | 2 +- src/com/dre/brewery/P.java | 3 --- src/com/dre/brewery/listeners/InventoryListener.java | 12 +++++++++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index dcc310b..aa5be23 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.dre brewery - 1.4.1 + 1.4.2 Brewery diff --git a/src/com/dre/brewery/P.java b/src/com/dre/brewery/P.java index 2fd11c7..bc3c9e3 100644 --- a/src/com/dre/brewery/P.java +++ b/src/com/dre/brewery/P.java @@ -69,9 +69,6 @@ public class P extends JavaPlugin { String v = Bukkit.getBukkitVersion(); useUUID = !v.matches(".*1\\.[0-6].*") && !v.matches(".*1\\.7\\.[0-5].*"); use1_9 = !v.matches(".*1\\.[0-8].*"); - if (use1_9) { - log("&eExperimental support for Bukkit 1.9 enabled."); - } // load the Config try { diff --git a/src/com/dre/brewery/listeners/InventoryListener.java b/src/com/dre/brewery/listeners/InventoryListener.java index bfb7482..6092ee0 100644 --- a/src/com/dre/brewery/listeners/InventoryListener.java +++ b/src/com/dre/brewery/listeners/InventoryListener.java @@ -115,7 +115,7 @@ public class InventoryListener implements Listener { if (now instanceof BrewingStand) { BrewingStand stand = (BrewingStand) now; if (brewTime == DISTILLTIME) { // only check at the beginning (and end) for distillables - if (!isCustomAndDistill(stand.getInventory())) { + if (!isCustom(stand.getInventory(), true)) { this.cancel(); trackedBrewers.remove(brewery); P.p.debugLog("nothing to distill"); @@ -150,7 +150,7 @@ public class InventoryListener implements Listener { }.runTaskTimer(P.p, 2L, 1L).getTaskId()); } - private boolean isCustomAndDistill(BrewerInventory brewer) { + private boolean isCustom(BrewerInventory brewer, boolean distill) { ItemStack item = brewer.getItem(3); // ingredient if (item == null || Material.GLOWSTONE_DUST != item.getType()) return false; // need dust in the top slot. for (int slot = 0; slot < 3; slot++) { @@ -160,7 +160,7 @@ public class InventoryListener implements Listener { if (item.hasItemMeta()) { int uid = Brew.getUID(item); Brew pot = Brew.potions.get(uid); - if (pot != null && pot.canDistill()) { // need at least one distillable potion. + if (pot != null && (!distill || pot.canDistill())) { // need at least one distillable potion. return true; } } @@ -172,6 +172,12 @@ public class InventoryListener implements Listener { @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) public void onBrew(BrewEvent event) { + if (P.use1_9) { + if (isCustom(event.getContents(), false)) { + event.setCancelled(true); + } + return; + } if (runDistill(event.getContents())) { event.setCancelled(true); }