Auto despawn fish that players don't pick up after 60 seconds

This commit is contained in:
Teriuihi 2023-10-01 21:45:25 +02:00
parent 67bd8ce8d0
commit dc93ba6e7e

View File

@ -162,7 +162,17 @@ public class CatchFish implements Listener {
return;
CaughtFishData caughtFishData = optionalFishData.get();
player.getInventory().addItem(caughtFishData.fishItem()).values()
.forEach(item -> player.getWorld().dropItem(player.getLocation(), item).setOwner(player.getUniqueId()));
.forEach(item -> {
Item dropItem = player.getWorld().dropItem(player.getLocation(), item);
dropItem.setOwner(player.getUniqueId());
new BukkitRunnable() {
@Override
public void run() {
if (!dropItem.isDead())
dropItem.remove();
}
}.runTaskLater(fishingEvent, 60 * 20);
});
player.updateInventory();
player.getWorld().spawn(player.getLocation(), ExperienceOrb.class).setExperience(10);
ScoreboardManager.getInstance().updateScoreboard(player, caughtFishData.length(), caughtFishData.fish());
@ -194,6 +204,13 @@ public class CatchFish implements Listener {
CaughtFishData caughtFishData = optionalFishData.get();
item.setItemStack(caughtFishData.fishItem());
item.setOwner(player.getUniqueId());
new BukkitRunnable() {
@Override
public void run() {
if (!item.isDead())
item.remove();
}
}.runTaskLater(fishingEvent, 60 * 20);
ScoreboardManager.getInstance().updateScoreboard(player, caughtFishData.length(), caughtFishData.fish());
player.sendActionBar(MiniMessage.miniMessage().deserialize("<green>You caught a <rarity> <name> <gold><length> cm</gold></green>", //TODO move to config
TagResolver.resolver(