Add some exploit prevention to fishing

This commit is contained in:
nossr50 2022-05-15 15:24:25 -07:00
parent d19cf1e260
commit 27854720f0
2 changed files with 11 additions and 5 deletions

View File

@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.gmail.nossr50.mcMMO</groupId> <groupId>com.gmail.nossr50.mcMMO</groupId>
<artifactId>mcMMO</artifactId> <artifactId>mcMMO</artifactId>
<version>2.1.212</version> <version>2.1.213-SNAPSHOT</version>
<name>mcMMO</name> <name>mcMMO</name>
<url>https://github.com/mcMMO-Dev/mcMMO</url> <url>https://github.com/mcMMO-Dev/mcMMO</url>
<scm> <scm>

View File

@ -428,7 +428,9 @@ public class PlayerListener implements Listener {
ItemStack inHand = player.getInventory().getItemInMainHand(); ItemStack inHand = player.getInventory().getItemInMainHand();
//Grab lure level //Grab lure level
if(inHand != null && inHand.getType().getKey().getKey().equalsIgnoreCase("fishing_rod")) { if(inHand != null
&& inHand.getItemMeta() != null
&& inHand.getType().getKey().getKey().equalsIgnoreCase("fishing_rod")) {
if(inHand.getItemMeta().hasEnchants()) { if(inHand.getItemMeta().hasEnchants()) {
for(Enchantment enchantment : inHand.getItemMeta().getEnchants().keySet()) { for(Enchantment enchantment : inHand.getItemMeta().getEnchants().keySet()) {
if(enchantment.toString().toLowerCase().contains("lure")) { if(enchantment.toString().toLowerCase().contains("lure")) {
@ -436,10 +438,14 @@ public class PlayerListener implements Listener {
} }
} }
} }
}
fishingManager.masterAngler(event.getHook(), lureLevel); // Prevent any potential odd behavior by only processing if no offhand fishing rod is present
fishingManager.setFishingTarget(); if(!player.getInventory().getItemInOffHand().getType().getKey().getKey().equalsIgnoreCase("fishing_rod")) {
// In case of offhand fishing rod, don't process anything
fishingManager.masterAngler(event.getHook(), lureLevel);
fishingManager.setFishingTarget();
}
}
} }
return; return;
case CAUGHT_FISH: case CAUGHT_FISH: