package tc.oc.pgm.controlpoint;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import tc.oc.commons.core.chat.Component;
import tc.oc.pgm.controlpoint.events.ControllerChangeEvent;
import tc.oc.pgm.events.ListenerScope;
import tc.oc.pgm.match.Competitor;
import tc.oc.pgm.match.Match;
import tc.oc.pgm.match.MatchScope;
@ListenerScope(MatchScope.LOADED)
public class ControlPointAnnouncer implements Listener {
private final Match match;
public ControlPointAnnouncer(Match match) {
this.match = match;
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onOwnerChange(ControllerChangeEvent event) {
if(event.getControlPoint().isVisible()) {
final Component point = new Component(event.getControlPoint().getComponentName(), ChatColor.WHITE);
final Component message = new Component(ChatColor.GRAY);
final Competitor before = event.getOldController();
final Competitor after = event.getNewController();
if(after == null) {
message.translate("objective.lose",
before.getComponentName(),
point);
} else if(before == null) {
message.translate("objective.capture",
after.getComponentName(),
point);
} else {
message.translate("objective.take",
after.getComponentName(),
point,
before.getComponentName());
}
match.sendMessage(message);
}
}
}