package tv.mineinthebox.essentials.commands;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import tv.mineinthebox.essentials.xEssentials;
import tv.mineinthebox.essentials.enums.PermissionKey;
import tv.mineinthebox.essentials.instances.Modreq;
import tv.mineinthebox.essentials.interfaces.CommandTemplate;
import tv.mineinthebox.essentials.interfaces.XPlayer;
public class CmdClaim extends CommandTemplate {
private final xEssentials pl;
public CmdClaim(xEssentials pl, Command cmd, CommandSender sender) {
super(pl, cmd, sender);
this.pl = pl;
}
public boolean execute(CommandSender sender, Command cmd, String[] args) {
if(cmd.getName().equalsIgnoreCase("claim")) {
if(sender.hasPermission(PermissionKey.CMD_CLAIM.getPermission())) {
if(args.length == 0) {
showHelp();
} else if(args.length == 1) {
if(args[0].equalsIgnoreCase("help")) {
showHelp();
} else {
sendMessage("you forgot to use the tickets ID as second argument");
}
} else {
if(pl.getManagers().getPlayerManager().isOnline(args[0])) {
XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(args[0]);
if(xp.hasModreqsOpen()) {
try {
int id = Integer.parseInt(args[1]);
if(xp.isValidModreqId(id)) {
Modreq mod = xp.getModreq(id);
Player p = xp.getBukkitPlayer();
sendMessageTo(p, sender.getName() + " has claimed your modreq with id: "+ mod.getId());
sendMessage("successfully claimed modreq of player " + p.getName() + " with id: " + mod.getId());
} else {
sendMessage("this is a invalid modreq id");
}
} catch(NumberFormatException e) {
sendMessage("second argument need to be a number only!");
}
} else {
sendMessage("could not claim any modreq ticket");
}
} else {
sendMessage("could not claim a ticket when a player is offline!");
}
}
} else {
getWarning(WarningType.NO_PERMISSION);
}
}
return false;
}
@Override
public void showHelp() {
sender.sendMessage(ChatColor.GOLD + ".oO___[claim modreq help]___Oo.");
sender.sendMessage(ChatColor.RED + "Admin: " + ChatColor.GRAY + "/claim help " + ChatColor.WHITE + ": shows help");
sender.sendMessage(ChatColor.RED + "Admin: " + ChatColor.GRAY + "/claim <player> <id> " + ChatColor.WHITE + ": claim a modreq of a player!");
}
}