package org.buckit.commands.warp;
import java.util.Arrays;
import org.buckit.Config;
import org.buckit.datasource.type.WarpsDataSource;
import org.bukkit.Server;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class SetWarpCommand extends Command {
private final WarpsDataSource datasource;
public SetWarpCommand(String name, Server server){
super(name);
this.datasource = server.getDataSourceManager().getWarpsDataSource();
this.description = "Specifies a new warp or replaces a existing one( if name was already used).";
if(Config.WARPS_GROUPS_ENABLED)
this.usageMessage = "Usage: /setwarp [warp name] <group name> <min accesslevel>";
else
this.usageMessage = "Usage: /setwarp [warp name] <min accesslevel>";
this.accessname = "buckit.admin.setwarp";
this.setAliases(Arrays.asList("addwarp"));
}
@Override
public boolean execute(CommandSender sender, String currentAlias, String[] args) {
if(!(sender instanceof Player))
return false;
if(args.length < 1){
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "No warp name specified.");
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + getUsage());
return true;
}
String group = Config.WARPS_DEFAULT_GROUP_NAME;
String name = args[0].toLowerCase();
int accesslevel = Config.DEFAULT_ACCESS_LEVEL;
if(args.length > 1){
if(Config.WARPS_GROUPS_ENABLED){
group = args[1].toLowerCase();
}else{
try{
accesslevel = Integer.parseInt(args[1]);
}catch(NumberFormatException e){
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Invalid accesslevel.");
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + getUsage());
return true;
}
}
}
if(args.length > 2 && Config.WARPS_GROUPS_ENABLED){
try{
accesslevel = Integer.parseInt(args[2]);
}catch(NumberFormatException e){
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Invalid accesslevel.");
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + getUsage());
return true;
}
}
if(datasource.addWarp(group, name, ((Player)sender).getLocation(), accesslevel)){
sender.sendMessage(Config.DEFAULT_INFO_COLOR + "Succesfully added warp '" + name + "' "+(Config.WARPS_GROUPS_ENABLED ? "in group '" + group + "'" : "" )+" !");
} else {
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Error while setting warp, please report this to Buck - It(with the error message in the console).");
}
return true;
}
}