001package fr.aumgn.dac2.commands;
002
003import java.util.List;
004
005import org.bukkit.World;
006import org.bukkit.command.CommandSender;
007import org.bukkit.entity.Player;
008
009import fr.aumgn.bukkitutils.command.Command;
010import fr.aumgn.bukkitutils.command.NestedCommands;
011import fr.aumgn.bukkitutils.command.args.CommandArgs;
012import fr.aumgn.dac2.DAC;
013import fr.aumgn.dac2.arena.Arena;
014import fr.aumgn.dac2.arena.Arenas;
015
016@NestedCommands("dac2")
017public class ArenasCommands extends DACCommands {
018
019    public ArenasCommands(DAC dac) {
020        super(dac);
021    }
022
023    @Command(name = "define", min = 1, max = 2)
024    public void define(CommandSender sender, CommandArgs args) {
025        String name = args.get(0);
026        World world = args.getWorld(1).valueOr(sender);
027
028        dac.getArenas().create(dac, name, world);
029        sender.sendMessage(msg("define.success", name));
030    }
031
032    @Command(name = "delete", min = 1, max = 1)
033    public void delete(CommandSender sender, CommandArgs args) {
034        Arenas arenas = dac.getArenas();
035        List<Arena> arenasList = args.getList(0, Arena).value();
036
037        for (Arena arena : arenasList) {
038            arenas.delete(dac, arena);
039            sender.sendMessage(msg("delete.success", arena.getName()));
040        }
041    }
042
043    @Command(name = "arenas")
044    public void arenas(CommandSender sender) {
045        sender.sendMessage(msg("arenas.header"));
046        for (Arena arena : dac.getArenas().all()) {
047            sender.sendMessage(msg("arenas.arena", arena.getName(),
048                    arena.getWorld().getName()));
049        }
050    }
051
052    @Command(name = "tparena", min = 1, max = 1)
053    public void tparena(Player sender, CommandArgs args) {
054        Arena arena = args.get(0, Arena).value();
055        sender.teleport(arena.safeGetDiving(dac).toLocation(arena.getWorld()));
056        sender.sendMessage(msg("tparena.success"));
057    }
058}