package org.buckit.commands.warp;
import java.util.Arrays;
import org.buckit.Config;
import org.buckit.datasource.type.WarpsDataSource;
import org.buckit.model.Warp;
import org.bukkit.Server;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
public class RemoveWarpCommand extends Command {
private final WarpsDataSource datasource;
public RemoveWarpCommand(String name, Server server){
super(name);
this.datasource = server.getDataSourceManager().getWarpsDataSource();
this.description = "Removes an existing warp.";
if(Config.WARPS_GROUPS_ENABLED)
this.usageMessage = "Usage: /removewarp [warp name] <group name>";
else
this.usageMessage = "Usage: /removewarp [warp name]";
this.accessname = "buckit.admin.removewarp";
this.setAliases(Arrays.asList("delwarp"));
}
@Override
public boolean execute(CommandSender sender, String currentAlias, String[] args) {
if(args.length < 1){
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "No warp name specified.");
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + getUsage());
return true;
}
String name = args[0].toLowerCase();
String group = Config.WARPS_DEFAULT_GROUP_NAME;
if(args.length > 1){
group = args[1].toLowerCase();
}
Warp warp = datasource.getWarp(group, name);
if(warp == null){
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "No warp found with name '" + name + "' " + (Config.WARPS_GROUPS_ENABLED ? "in group '" + group + "'" : "") + " !");
return true;
}
if(datasource.removeWarp(warp)){
sender.sendMessage(Config.DEFAULT_INFO_COLOR + "Succefully removed warp '" + name + "' " + (Config.WARPS_GROUPS_ENABLED ? "from group '" + group + "'" : "") + " !");
} else {
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Unable to remove warp, please report the error in the console to Buck - It!");
}
return true;
}
}