浏览代码

Move break event to the initial check.

GJ 12 年之前
父节点
当前提交
09e77c8c94

+ 0 - 7
src/main/java/com/gmail/nossr50/listeners/PlayerListener.java

@@ -222,13 +222,6 @@ public class PlayerListener implements Listener {
                 Block block = player.getTargetBlock(null, 100);
 
                 if (fishingManager.canIceFish(block)) {
-                    FakeBlockBreakEvent blockBreakEvent = new FakeBlockBreakEvent(block, player);
-                    plugin.getServer().getPluginManager().callEvent(blockBreakEvent);
-
-                    if (blockBreakEvent.isCancelled()) {
-                        return;
-                    }
-
                     event.setCancelled(true);
                     fishingManager.iceFishing(event.getHook(), block);
                 }

+ 11 - 1
src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java

@@ -38,6 +38,7 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.datatypes.skills.SkillType;
 import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
 import com.gmail.nossr50.datatypes.treasure.ShakeTreasure;
+import com.gmail.nossr50.events.fake.FakeBlockBreakEvent;
 import com.gmail.nossr50.events.fake.FakePlayerFishEvent;
 import com.gmail.nossr50.events.skills.fishing.McMMOPlayerFishingTreasureEvent;
 import com.gmail.nossr50.events.skills.fishing.McMMOPlayerMagicHunterEvent;
@@ -188,7 +189,16 @@ public class FishingManager extends SkillManager {
             return false;
         }
 
-        return Permissions.iceFishing(getPlayer());
+        Player player = getPlayer();
+
+        if (!Permissions.iceFishing(player)) {
+            return false;
+        }
+
+        FakeBlockBreakEvent blockBreakEvent = new FakeBlockBreakEvent(block, player);
+        mcMMO.p.getServer().getPluginManager().callEvent(blockBreakEvent);
+
+        return !blockBreakEvent.isCancelled();
     }
 
     /**