diff --git a/src/com/dre/brewery/P.java b/src/com/dre/brewery/P.java index 0f7a01d..d743dbb 100644 --- a/src/com/dre/brewery/P.java +++ b/src/com/dre/brewery/P.java @@ -55,7 +55,6 @@ public class P extends JavaPlugin { public EntityListener entityListener; public InventoryListener inventoryListener; public WorldListener worldListener; - public DrinkListener1_9 drinkListener1_9; // Language public String language; @@ -96,7 +95,6 @@ public class P extends JavaPlugin { entityListener = new EntityListener(); inventoryListener = new InventoryListener(); worldListener = new WorldListener(); - drinkListener1_9 = new DrinkListener1_9(); getCommand("Brewery").setExecutor(new CommandListener()); p.getServer().getPluginManager().registerEvents(blockListener, p); @@ -104,9 +102,6 @@ public class P extends JavaPlugin { p.getServer().getPluginManager().registerEvents(entityListener, p); p.getServer().getPluginManager().registerEvents(inventoryListener, p); p.getServer().getPluginManager().registerEvents(worldListener, p); - if (use1_9) { - p.getServer().getPluginManager().registerEvents(drinkListener1_9, p); - } // Heartbeat p.getServer().getScheduler().runTaskTimer(p, new BreweryRunnable(), 650, 1200); diff --git a/src/com/dre/brewery/listeners/DrinkListener1_9.java b/src/com/dre/brewery/listeners/DrinkListener1_9.java deleted file mode 100644 index 2533455..0000000 --- a/src/com/dre/brewery/listeners/DrinkListener1_9.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.dre.brewery.listeners; - -import com.dre.brewery.Brew; -import org.bukkit.Material; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerItemConsumeEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.PotionMeta; -import org.bukkit.potion.PotionData; -import org.bukkit.potion.PotionType; - -// Workaround to remove unwanted potion effects -public class DrinkListener1_9 implements Listener { - - @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) - public void onPlayerDrink(PlayerItemConsumeEvent event) { - ItemStack item = event.getItem(); - 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/PlayerListener.java b/src/com/dre/brewery/listeners/PlayerListener.java index d2d4db3..2f0a589 100644 --- a/src/com/dre/brewery/listeners/PlayerListener.java +++ b/src/com/dre/brewery/listeners/PlayerListener.java @@ -1,5 +1,6 @@ package com.dre.brewery.listeners; +import org.bukkit.GameMode; import org.bukkit.entity.Player; import org.bukkit.event.player.*; import org.bukkit.event.EventHandler; @@ -162,7 +163,7 @@ public class PlayerListener implements Listener { } // player drinks a custom potion - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onPlayerItemConsume(PlayerItemConsumeEvent event) { Player player = event.getPlayer(); ItemStack item = event.getItem(); @@ -171,9 +172,18 @@ public class PlayerListener implements Listener { Brew brew = Brew.get(item); if (brew != null) { BPlayer.drink(brew, player); - if (player.getGameMode() != org.bukkit.GameMode.CREATIVE) { + if (player.getGameMode() != GameMode.CREATIVE) { brew.remove(item); } + if (P.use1_9) { + if (player.getGameMode() != GameMode.CREATIVE) { + // replace the potion with an empty potion to avoid effects + event.setItem(new ItemStack(Material.POTION)); + } else { + // Dont replace the item when keeping the potion, just cancel the event + event.setCancelled(true); + } + } } } else if (BPlayer.drainItems.containsKey(item.getType())) { BPlayer bplayer = BPlayer.get(player);