Skip to content

Commit

Permalink
Fix Fishing Rod exp gain while fishing
Browse files Browse the repository at this point in the history
  • Loading branch information
Flo56958 committed Jun 22, 2024
1 parent 36b6480 commit 4ba767e
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,12 @@ public void onGrind(@NotNull final InventoryClickEvent event) {

// Remove spawned exp orbs
Bukkit.getScheduler().runTaskLater(MineTinker.getPlugin(),
() -> {
player.getWorld().getEntitiesByClass(org.bukkit.entity.ExperienceOrb.class)
.forEach(orb -> {
if (orb.getLocation().distance(player.getLocation()) < 6.5) {
orb.setExperience(0);
}
});
}, 1);
() -> player.getWorld().getEntitiesByClass(org.bukkit.entity.ExperienceOrb.class)
.forEach(orb -> {
if (orb.getLocation().distance(player.getLocation()) < 6.5) {
orb.setExperience(0);
}
}), 1);

return;
}
Expand Down
45 changes: 22 additions & 23 deletions src/main/java/de/flo56958/minetinker/utils/PlayerInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,37 +50,36 @@ public static long getCombatTagTime(@NotNull final Player player) {

@EventHandler(ignoreCancelled = true)
private void onFish(@NotNull final PlayerFishEvent event) {
final Player player = event.getPlayer();
if (Lists.WORLDS.contains(player.getWorld().getName())) return;

switch (event.getState()) {
case FISHING:
case FISHING -> {
if (event.getHand() == null) return;
fishingRodTracker.put(event.getPlayer().getUniqueId(),
event.getPlayer().getInventory().getItem(event.getHand()));
break;
case CAUGHT_FISH:
final Player player = event.getPlayer();
if (Lists.WORLDS.contains(player.getWorld().getName())) return;

final ItemStack rod = player.getInventory().getItem(event.getHand());
if (!modManager.isToolViable(rod)) return;
fishingRodTracker.put(player.getUniqueId(), rod);
}
case CAUGHT_FISH -> {
// event.getHand() is null in State.CAUGHT_FISH
// looking for fishing rod
ItemStack rod = fishingRodTracker.get(player.getUniqueId());
if (!modManager.isToolViable(rod)) return;
// rod needs to be updated if the slot changed because of a hand swap
for (final ItemStack item : new ItemStack[]{player.getInventory().getItemInMainHand(),
player.getInventory().getItemInOffHand()}) {
if (rod.equals(item)) {
rod = item;
break;
ItemStack rod = fishingRodTracker.remove(player.getUniqueId());
if (event.getHand() == null) {
// rod needs to be updated if the slot changed because of a hand swap
for (final ItemStack item : new ItemStack[]{player.getInventory().getItemInMainHand(),
player.getInventory().getItemInOffHand()}) {
if (rod.equals(item)) {
rod = item;
break;
}
}
} else {
rod = player.getInventory().getItem(event.getHand());
}
if (!modManager.isToolViable(rod)) return;

modManager.addExp(player, rod, event.getExpToDrop(), true);
case CAUGHT_ENTITY:
case IN_GROUND:
case FAILED_ATTEMPT:
case REEL_IN:
default:
fishingRodTracker.remove(event.getPlayer().getUniqueId());
break;
}
}
}

Expand Down

0 comments on commit 4ba767e

Please sign in to comment.