001package fr.aumgn.dac2.commands;
002
003import java.util.List;
004
005import org.bukkit.entity.Player;
006
007import fr.aumgn.bukkitutils.command.Command;
008import fr.aumgn.bukkitutils.command.NestedCommands;
009import fr.aumgn.bukkitutils.command.args.CommandArgs;
010import fr.aumgn.dac2.DAC;
011import fr.aumgn.dac2.stage.Stage;
012
013@NestedCommands("dac2")
014public class SpectatorCommands extends DACCommands {
015
016    public SpectatorCommands(DAC dac) {
017        super(dac);
018    }
019
020    @Command(name = "watch", min = 1, max = 1)
021    public void watch(Player sender, CommandArgs args) {
022        List<Stage> stages = args.getList(0, Stage).value();
023
024        for (Stage stage : stages) {
025            String arenaName = stage.getArena().getName();
026            if (stage.isSpectator(sender)) {
027                sender.sendMessage(msg("watch.alreadywatching", arenaName));
028                continue;
029            }
030            if (stage.contains(sender)) {
031                sender.sendMessage(msg("watch.playing", arenaName));
032                continue;
033            }
034
035            stage.addSpectator(sender);
036            sender.sendMessage(msg("watch.success", arenaName));
037        }
038    }
039
040    @Command(name = "unwatch", min = 1, max = 1)
041    public void unwatch(Player sender, CommandArgs args) {
042        List<Stage> stages = args.getList(0, Stage).value();
043
044        for (Stage stage : stages) {
045            String arenaName = stage.getArena().getName();
046            if (!stage.isSpectator(sender)) {
047                sender.sendMessage(msg("unwatch.notwatching", arenaName));
048                continue;
049            }
050
051            stage.removeSpectator(sender);
052            sender.sendMessage(msg("unwatch.success", arenaName));
053        }
054    }
055}