From 7919e591cbce67a6ae6c91be83236dcb1f1e0b5d Mon Sep 17 00:00:00 2001 From: GJ Date: Wed, 23 Jan 2013 12:53:12 -0500 Subject: [PATCH] Move Hylian Luck into a separate listener since it actually cancels the event. Priority when cancelling events should not be MONITOR. --- Changelog.txt | 1 + .../gmail/nossr50/listeners/BlockListener.java | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 06e044820..eb3042c4d 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -15,6 +15,7 @@ Version 1.4.00-dev = Fixed bug where Impact improperly determined the defender's armor = Fixed ArrayIndexOutOfBoundsException resulting from being unranked in a skill when using FlatFile = Fixed Woodcutting accidentally using Mining double drop values. + ! Moved Hylian Luck into a separate listener since it actually cancels the event and shouldn't just be on MONITOR. ! Changed how Tree Feller is handled, it should now put less stress on the CPU ! Changed Fisherman's Diet and Farmer's Diet to use two seperate config values ! Major refactoring - please take note, this WILL break any mcMMO-related plugin not properly hooking into the API. diff --git a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java index 6df3fe1ca..630907886 100644 --- a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java @@ -38,6 +38,7 @@ import com.gmail.nossr50.skills.woodcutting.Woodcutting; import com.gmail.nossr50.spout.SpoutSounds; import com.gmail.nossr50.util.BlockChecks; import com.gmail.nossr50.util.ItemChecks; +import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.ModChecks; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.Users; @@ -204,16 +205,25 @@ public class BlockListener implements Listener { } } - if (Permissions.hylianLuck(player) && ItemChecks.isSword(player.getItemInHand())) { - Herbalism.hylianLuck(block, player, event); - } - //Remove metadata when broken if (BlockChecks.shouldBeWatched(block)) { mcMMO.placeStore.setFalse(block); } } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onBlockBreakHigher(BlockBreakEvent event) { + Player player = event.getPlayer(); + + if (Misc.isNPC(player)) { + return; + } + + if (Permissions.hylianLuck(player) && ItemChecks.isSword(player.getItemInHand())) { + Herbalism.hylianLuck(event.getBlock(), player, event); + } + } + /** * Monitor BlockDamage events. *