浏览代码

Alchemy should fire BrewEvents

Fixes #2041
TfT_02 11 年之前
父节点
当前提交
836877ff93

+ 1 - 0
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'

+ 11 - 0
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);
+    }
+}

+ 8 - 0
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);