浏览代码

Fishing will no longer cancel the exp dropped for ice fishing and will no longer bring xp values below zero with the xp multiplier
Not sure if this fixes the XP bug though!

nossr50 6 年之前
父节点
当前提交
017e32c30a
共有 1 个文件被更改,包括 13 次插入2 次删除
  1. 13 2
      src/main/java/com/gmail/nossr50/listeners/PlayerListener.java

+ 13 - 2
src/main/java/com/gmail/nossr50/listeners/PlayerListener.java

@@ -264,7 +264,9 @@ public class PlayerListener implements Listener {
                 }
 
                 if (Permissions.vanillaXpBoost(player, PrimarySkillType.FISHING)) {
-                    event.setExpToDrop(fishingManager.handleVanillaXpBoost(event.getExpToDrop()));
+                    //Don't modify XP below vanilla values
+                    if(fishingManager.handleVanillaXpBoost(event.getExpToDrop()) > 1)
+                        event.setExpToDrop(fishingManager.handleVanillaXpBoost(event.getExpToDrop()));
                 }
                 return;
 
@@ -272,7 +274,9 @@ public class PlayerListener implements Listener {
                 Block block = player.getTargetBlock(null, 100);
 
                 if (fishingManager.canIceFish(block)) {
-                    event.setCancelled(true);
+
+                    cancelFishingEventAndDropXp(event, player);
+
                     fishingManager.iceFishing(event.getHook(), block);
                 }
                 return;
@@ -282,6 +286,12 @@ public class PlayerListener implements Listener {
         }
     }
 
+    private void cancelFishingEventAndDropXp(PlayerFishEvent event, Player player) {
+        event.setCancelled(true);
+        ExperienceOrb experienceOrb = (ExperienceOrb) player.getWorld().spawnEntity(player.getEyeLocation(), EntityType.EXPERIENCE_ORB);
+        experienceOrb.setExperience(event.getExpToDrop());
+    }
+
     /**
      * Monitor PlayerFishEvents.
      * <p>
@@ -312,6 +322,7 @@ public class PlayerListener implements Listener {
         FishingManager fishingManager = UserManager.getPlayer(player).getFishingManager();
 
         Entity caught = event.getCaught();
+        //event.setExpToDrop(event.getExpToDrop()); //Redundant?
 
         switch (event.getState()) {
             case FISHING: