package net.scapeemulator.game.model.mob.combat;
import java.util.ArrayList;
import java.util.List;
import net.scapeemulator.game.model.mob.Mob;
import net.scapeemulator.game.model.npc.NPC;
import net.scapeemulator.game.model.player.Player;
public class MobKillListeners {
private static List<MobKillListener> listeners = new ArrayList<>();
static {
listeners.add(new MobKillListener<NPC, Player>() {
@Override
public void mobKilled(NPC killer, Player killed) {
System.out.println("NPC killed player");
}
});
listeners.add(new MobKillListener<Player, NPC>() {
@Override
public void mobKilled(Player killer, NPC killed) {
System.out.println("Player " + killer.getDisplayName() + " killed " + killed.getDefinition().getName());
}
});
}
public static void addListener(MobKillListener<?, ?> listener) {
listeners.add(listener);
}
public static void mobKilled(Mob killed, Mob killer) {
for (MobKillListener listener : listeners) {
try {
listener.mobKilled(killer, killed);
} catch (ClassCastException cce) {
}
}
}
}