package com.sijobe.spc.command; import com.sijobe.spc.util.FontColour; import com.sijobe.spc.validation.Parameter; import com.sijobe.spc.validation.ParameterInteger; import com.sijobe.spc.validation.Parameters; import com.sijobe.spc.wrapper.CommandException; import com.sijobe.spc.wrapper.CommandSender; import com.sijobe.spc.wrapper.Coordinate; import com.sijobe.spc.wrapper.Player; import java.util.List; /** * Sets the players spawn based on the player position or the arguments * provided * * @author simo_415 * @version 1.0 */ @Command ( name = "setspawn", description = "Sets the spawn point of the world the player is in", videoURL = "http://www.youtube.com/watch?v=2ZTAiIPpL3U" ) public class SetSpawn extends StandardCommand { /** * The parameters of the command */ private static final Parameters PARAMETERS = new Parameters ( new Parameter[] { new ParameterInteger("[X Y Z]",true), new ParameterInteger("",true), new ParameterInteger("",true), } ); /** * @see com.sijobe.spc.wrapper.CommandBase#execute(com.sijobe.spc.wrapper.CommandSender, java.util.List) */ @Override public void execute(CommandSender sender, List<?> params) throws CommandException { if (params.size() != 0 && params.size() < 3) { throw new CommandException("Usage: " + getUsage(sender)); } Player player = getSenderAsPlayer(sender); if (params.size() == 0) { player.getWorld().setSpawn(player.getPosition()); } else { player.getWorld().setSpawn(new Coordinate((Integer)params.get(0),(Integer)params.get(1),(Integer)params.get(2))); } Coordinate spawn = player.getWorld().getSpawn(); player.sendChatMessage("Spawn point set to " + FontColour.AQUA + spawn.getBlockX() + FontColour.WHITE + "," + FontColour.AQUA + spawn.getBlockY() + FontColour.WHITE + "," + FontColour.AQUA + spawn.getBlockZ() ); } /** * @see com.sijobe.spc.wrapper.CommandBase#getParameters() */ @Override public Parameters getParameters() { return PARAMETERS; } }