package org.buckit.commands.warp;
import org.buckit.Config;
import org.buckit.datasource.type.WarpsDataSource;
import org.buckit.model.Warp;
import org.bukkit.ChatColor;
import org.bukkit.Server;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class WarpCommand extends Command{
private final WarpsDataSource datasource;
public WarpCommand(String name, Server server){
super(name);
this.datasource = server.getDataSourceManager().getWarpsDataSource();
this.description = "Warps you to the location of the specified warp.";
if(Config.WARPS_GROUPS_ENABLED)
this.usageMessage = "Usage: /warp [warp name] <group name>";
else
this.usageMessage = "Usage: /warp [warp name]";
this.accessname = "buckit.warps.warp";
}
@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());
} else if(args.length == 1) {
Warp warp = datasource.getWarp(Config.WARPS_DEFAULT_GROUP_NAME, args[0].toLowerCase());
if(warp == null)
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "No warp found with name " + args[0].toLowerCase() + ".");
else {
sender.sendMessage(ChatColor.AQUA + "Woosh!");
((Player)sender).teleportTo(warp.getLocation());
}
} else if(args.length == 2) {
if(Config.WARPS_GROUPS_ENABLED){
Warp warp = datasource.getWarp(args[1].toLowerCase(), args[0].toLowerCase());
if(warp == null)
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "No warp found with name '" + args[0].toLowerCase() + "' in group '" + args[1].toLowerCase() + "'.");
else {
sender.sendMessage(ChatColor.AQUA + "Woosh!");
((Player)sender).teleportTo(warp.getLocation());
}
} else {
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + getUsage());
}
} else {
sender.sendMessage(Config.DEFAULT_ERROR_COLOR + getUsage());
}
return true;
}
}