Package com.sijobe.spc.command

Source Code of com.sijobe.spc.command.Explode

package com.sijobe.spc.command;

import com.sijobe.spc.validation.Parameter;
import com.sijobe.spc.validation.ParameterDouble;
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;

/**
* Creates an explosion of the specified size
*
* @author simo_415
* @version 1.0
*/
@Command (
   name = "explode",
   description = "Sets off an explosion in your current location.",
   example = "10",
   videoURL = "http://www.youtube.com/watch?v=rWOpPWYjjxY"
)
public class Explode extends StandardCommand {
  
   /**
    * The default size of the explosion if no explosion size is specified
    */
   public static final int DEFAULT_SIZE = 4;
  
   /**
    * The parameters of the command
    */
   private static final Parameters PARAMETERS = new Parameters (
      new Parameter[] {
         new ParameterInteger("[SIZE]",true),
         new ParameterDouble("[X Y Z]",true),
         new ParameterDouble("",true),
         new ParameterDouble("",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 {
      Player player = getSenderAsPlayer(sender);
      if (params.size() == 0) {
         player.getWorld().createExplosion(player, player.getPosition(), DEFAULT_SIZE);
      } else if (params.size() == 1) {
         player.getWorld().createExplosion(player, player.getPosition(), (Integer)params.get(0));
      } else if (params.size() > 3) {
         Coordinate location = new Coordinate((Double)params.get(1), (Double)params.get(2), (Double)params.get(3));
         player.getWorld().createExplosion(player, location, (Integer)params.get(0));
      }
      sender.sendMessageToPlayer("Boom!");
   }

   /**
    * @see com.sijobe.spc.wrapper.CommandBase#getParameters()
    */
   @Override
   public Parameters getParameters() {
      return PARAMETERS;
   }
}
TOP

Related Classes of com.sijobe.spc.command.Explode

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.