Hello, I made this code about the tittle, but not working, what's my error?
JavaScript:
package services;
import l2.gameserver.Announcements;
import l2.gameserver.listener.actor.OnAttackListener;
import l2.gameserver.listener.actor.OnDeathListener;
import l2.gameserver.model.Creature;
import l2.gameserver.model.Player;
import l2.gameserver.model.instances.RaidBossInstance;
import l2.gameserver.model.actor.listener.CharListenerList;
import java.util.HashSet;
import java.util.Set;
public class RaidBossHpAnnouncer implements OnAttackListener, OnDeathListener, ScriptFile {
private static final RaidBossHpAnnouncer INSTANCE = new RaidBossHpAnnouncer();
// Conjunto para rastrear los porcentajes ya anunciados por cada Raid Boss
private final Set<Integer> notifiedPercentages = new HashSet<>();
@Override
public void onAttack(Creature attacker, Creature target) {
if (attacker instanceof Player player && target instanceof RaidBossInstance raidBoss) {
double currentHp = raidBoss.getCurrentHp();
double maxHp = raidBoss.getMaxHp();
int hpPercentage = (int) ((currentHp / maxHp) * 100);
// Verifica si el porcentaje ya ha sido anunciado
if (!notifiedPercentages.contains(hpPercentage)) {
notifiedPercentages.add(hpPercentage);
};
if (message != null) {
announceToAll(message);
}
}
}
}
// Limpia los porcentajes notificados para este Raid Boss
notifiedPercentages.clear();
}
}
private void announceToAll(String message) {
Say2 announcement = new Say2(0, ChatType.ANNOUNCEMENT, "", message);
Announcements.getInstance().announceToAll(announcement);
}
@Override
public void onLoad() {
CharListenerList.addGlobal(INSTANCE);
}
@Override
public void onReload() {
onShutdown();
onLoad();
}
@Override
public void onShutdown() {
CharListenerList.removeGlobal(INSTANCE);
}
}
Last edited: