package org.buckit.commands.admin;
import java.util.Arrays;
import org.buckit.Config;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class TimeCommand extends Command {
public TimeCommand(String name, Server server) {
super(name);
this.description = "Changes the the time.";
this.usageMessage = "Usage: /time [day|night|check|raw|time to set] <raw time>";
this.accessname = "buckit.admin.time";
this.setAliases(Arrays.asList("settime"));
}
@Override
public boolean execute(CommandSender sender, String currentAlias, String[] args) {
if (!(sender instanceof Player))
return false;
if(args.length == 0) {
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Insufficient arguments specified.");
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + getUsage());
return true;
}
World world = ((Player)sender).getWorld();
if(args.length == 1){
String param = args[0].toLowerCase();
if(param.equals("day")){
world.setTime(0);
sender.sendMessage(Config.DEFAULT_INFO_COLOR + "It is now day!");
} else if(param.equals("night")) {
world.setTime(13000);
sender.sendMessage(Config.DEFAULT_INFO_COLOR + "It is now night!");
} else if(param.equals("check")) {
sender.sendMessage(Config.DEFAULT_INFO_COLOR + "Current time " + world.getTime() + " [RAW:" + world.getFullTime() + "]");
} else if(param.equals("raw")) {
sender.sendMessage(Config.DEFAULT_INFO_COLOR + "Raw time:" + world.getFullTime());
} else {
long time = 0L;
try {
time = Long.parseLong(param);
} catch (NumberFormatException e) {
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Invalid time amount, you don't put any letters did you?");
return true;
}
world.setTime(time);
sender.sendMessage(Config.DEFAULT_INFO_COLOR + "Time has been changed to " + world.getTime());
}
} else if(args.length == 2 && args[0].equalsIgnoreCase("raw")) {
long time = 0L;
try {
time = Long.parseLong(args[1]);
} catch (NumberFormatException e) {
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Invalid time amount, you don't put any letters did you?");
return true;
}
world.setFullTime(time);
sender.sendMessage(Config.DEFAULT_INFO_COLOR + "Raw time changed to " + world.getFullTime());
} else {
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Too much arguments specified.");
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + getUsage());
return true;
}
return true;
}
}