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!
This commit is contained in:
nossr50 2019-02-06 12:46:12 -08:00
parent 8e048300e8
commit 017e32c30a

View File

@ -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: