From 836877ff9310eca1436c324e29c8c7f7783f09a3 Mon Sep 17 00:00:00 2001 From: TfT_02 Date: Mon, 9 Jun 2014 01:43:50 +0200 Subject: [PATCH] Alchemy should fire BrewEvents Fixes #2041 --- Changelog.txt | 1 + .../com/gmail/nossr50/events/fake/FakeBrewEvent.java | 11 +++++++++++ .../nossr50/skills/alchemy/AlchemyPotionBrewer.java | 8 ++++++++ 3 files changed, 20 insertions(+) create mode 100644 src/main/java/com/gmail/nossr50/events/fake/FakeBrewEvent.java diff --git a/Changelog.txt b/Changelog.txt index eb89543ae..910c21bc3 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -21,6 +21,7 @@ Version 1.5.01-dev = Fixed bug where dodge would check the wrong player skill level = Fixed bug which causes /party teleport to stop working = Fixed bug where SaveTimerTask would produce an IndexOutOfBoundsException + = Fixed bug where Alchemy would not fire BrewEvents ! Changed player data saving. Save tasks are now asynchronous ! Vanished players no longer get hit by AoE effects ! Changed Alchemy config option 'Prevent_Hopper_Transfer' renamed to 'Prevent_Hopper_Transfer_Ingredients' diff --git a/src/main/java/com/gmail/nossr50/events/fake/FakeBrewEvent.java b/src/main/java/com/gmail/nossr50/events/fake/FakeBrewEvent.java new file mode 100644 index 000000000..4d5537a5d --- /dev/null +++ b/src/main/java/com/gmail/nossr50/events/fake/FakeBrewEvent.java @@ -0,0 +1,11 @@ +package com.gmail.nossr50.events.fake; + +import org.bukkit.block.Block; +import org.bukkit.event.inventory.BrewEvent; +import org.bukkit.inventory.BrewerInventory; + +public class FakeBrewEvent extends BrewEvent { + public FakeBrewEvent(Block brewer, BrewerInventory contents) { + super(brewer, contents); + } +} diff --git a/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewer.java b/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewer.java index 4f1fa8926..494f3c8bc 100644 --- a/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewer.java +++ b/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewer.java @@ -17,6 +17,7 @@ import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.config.skills.alchemy.PotionConfig; import com.gmail.nossr50.datatypes.skills.SecondaryAbility; import com.gmail.nossr50.datatypes.skills.alchemy.AlchemyPotion; +import com.gmail.nossr50.events.fake.FakeBrewEvent; import com.gmail.nossr50.runnables.player.PlayerUpdateInventoryTask; import com.gmail.nossr50.runnables.skills.AlchemyBrewCheckTask; import com.gmail.nossr50.util.Permissions; @@ -100,6 +101,13 @@ public final class AlchemyPotionBrewer { return; } + FakeBrewEvent event = new FakeBrewEvent(brewingStand.getBlock(), inventory); + mcMMO.p.getServer().getPluginManager().callEvent(event); + + if (event.isCancelled()) { + return; + } + for (int i = 0; i < 3; i++) { ItemStack item = inventory.getItem(i);