/* * CraftZ * Copyright (C) JangoBrick <http://jangobrick.de/> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package craftZ.cmd; import java.util.ArrayList; import java.util.List; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import craftZ.CraftZ; import craftZ.worldData.PlayerSpawnpoint; public class CMD_Spawn extends CraftZCommand { public CMD_Spawn(CraftZ craftZ) { super(craftZ, "{cmd} [spawnpoint]"); } @Override public int execute() { if (!isPlayer) { return MUST_BE_PLAYER; } if (hasPerm("craftz.spawn")) { if (getCraftZ().getPlayerManager().isInsideOfLobby(p)) { PlayerSpawnpoint spawn = null; if (args.length > 0) { if (p.hasPermission("craftz.spawn.choose")) { spawn = getCraftZ().getPlayerManager().matchSpawn(args[0]); if (spawn == null) { send(ChatColor.RED + getMsg("Messages.errors.player-spawn-not-found")); return SUCCESS; } } else { return NO_PERMISSION; } } int respawnCountdown = getCraftZ().getPlayerManager().getRespawnCountdown(p); if (respawnCountdown <= 0) { getCraftZ().getPlayerManager().loadPlayer(p, true, spawn); } else { send(ChatColor.RED + getMsg("Messages.errors.respawn-countdown").replace("%t", "" + Math.max(respawnCountdown/1000, 1))); } } else { send(ChatColor.RED + getMsg("Messages.errors.not-in-lobby")); } } else { return NO_PERMISSION; } return SUCCESS; } @Override public CanExecute canExecute(CommandSender sender) { return CanExecute.on(sender).player().permission("craftz.spawn"); } @Override public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) { List<String> options = new ArrayList<String>(); if (sender.hasPermission("craftz.spawn.choose")) { addCompletions(options, args.length == 0 ? "" : args[0], true, Stringifier.PLAYERSPAWN, getCraftZ().getPlayerManager().getSpawns()); } return options; } }