//Если нужно отследить сердца выданные эффектом
@EventHandler(ignoreCancelled = true)
public void onEntityPotionEffect(EntityPotionEffectEvent event) {
if (event.getNewEffect().getType() != PotionEffectType.ABSORPTION) return;
if ((event.getEntity() instanceof Player player)) return;
//TODO Твои действия
}
/*
* Если нужно отследить сердца выданные не только через эффект
* Запускаешь через Bukkit.getScheduler().runTaskTimer(JavaPlugin, new GoldenHealthListener(), 10, 10);
*
* TODO будет вызывается для каждого игрока у которого есть золотые сердца раз в пол секунды
*/
public class GoldenHealthListener implements Runnable{
@Override
public void run() {
Bukkit.getOnlinePlayers()
.stream()
.filter(player -> player.getAbsorptionAmount() > 0f)
.forEach(player -> {
//TODO Твои действия
});
}
}