소스 검색

Fixed plugin incompatibility and exploits regarding buffed tools remaining buffed
Fixes #4616

nossr50 3 년 전
부모
커밋
f91a2217c8
3개의 변경된 파일13개의 추가작업 그리고 13개의 파일을 삭제
  1. 1 0
      Changelog.txt
  2. 1 0
      src/main/java/com/gmail/nossr50/listeners/InventoryListener.java
  3. 11 13
      src/main/java/com/gmail/nossr50/listeners/PlayerListener.java

+ 1 - 0
Changelog.txt

@@ -1,4 +1,5 @@
 Version 2.1.201
+    Fixed an exploit related to Ability Buffs remaining on tools
     Blast Mining no longer drops Budding Amethyst since its not legal to obtain this item through normal gameplay
     Added mcinspect and mmoinspect aliases to inspect command
     Portuguese translation of Woodcutting changed back to Lenhador

+ 1 - 0
src/main/java/com/gmail/nossr50/listeners/InventoryListener.java

@@ -402,6 +402,7 @@ public class InventoryListener implements Listener {
         }
 
         SkillUtils.removeAbilityBuff(event.getCurrentItem());
+
         if (event.getAction() == InventoryAction.HOTBAR_SWAP) {
             if(isOutsideWindowClick(event))
                 return;

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

@@ -6,6 +6,7 @@ import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 import com.gmail.nossr50.datatypes.skills.SubSkillType;
+import com.gmail.nossr50.datatypes.skills.interfaces.Skill;
 import com.gmail.nossr50.datatypes.skills.subskills.taming.CallOfTheWildType;
 import com.gmail.nossr50.events.McMMOReplaceVanillaTreasureEvent;
 import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
@@ -212,6 +213,11 @@ public class PlayerListener implements Listener {
         }
     }
 
+    @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = false)
+    public void onPlayerDeathNormal(PlayerDeathEvent playerDeathEvent) {
+        SkillUtils.removeAbilityBoostsFromInventory(playerDeathEvent.getEntity());
+    }
+
     /**
      * Monitor PlayerChangedWorldEvents.
      * <p>
@@ -1031,17 +1037,9 @@ public class PlayerListener implements Listener {
         }
     }
 
-//
-//    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
-//    public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent event) {
-//        /* WORLD BLACKLIST CHECK */
-//        if(WorldBlacklist.isWorldBlacklisted(event.getPlayer().getWorld()))
-//            return;
-//
-//        if (!mcMMO.getHolidayManager().isAprilFirst()) {
-//            return;
-//        }
-//
-//        mcMMO.getHolidayManager().handleStatisticEvent(event);
-//    }
+    @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
+    public void onPlayerSwapHandItems(PlayerSwapHandItemsEvent event) {
+        SkillUtils.removeAbilityBuff(event.getMainHandItem());
+        SkillUtils.removeAbilityBuff(event.getOffHandItem());
+    }
 }