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.XOfflinePlayer;
import tv.mineinthebox.essentials.interfaces.XPlayer;
public class CmdCheck extends CommandTemplate {
private final xEssentials pl;
public CmdCheck(xEssentials pl, Command cmd, CommandSender sender) {
super(pl, cmd, sender);
this.pl = pl;
}
public boolean execute(CommandSender sender, Command cmd, String[] args) {
if(sender.hasPermission(PermissionKey.CMD_CHECK.getPermission())) {
if(args.length == 0) {
if(pl.getManagers().getPlayerManager().isOnline(sender.getName())) {
XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(sender.getName());
sender.sendMessage(ChatColor.GOLD + ".oO___[currently open Modreqs]___Oo.");
for(Modreq mod : xp.getModreqs()) {
sender.sendMessage(ChatColor.GRAY + "id: " + ChatColor.GREEN + mod.getId() + ChatColor.GRAY + " message: " + ChatColor.GREEN + mod.getMessage() + ChatColor.GRAY + " published: " + ChatColor.GREEN + mod.getDate());
}
} else {
sendMessage("something went wrong please reload xEssentials!");
}
} else if(args.length == 1) {
if(args[0].equalsIgnoreCase("list")) {
sender.sendMessage(ChatColor.GOLD + ".oO___[Modreq list]___Oo.");
if(sender.hasPermission(PermissionKey.IS_ADMIN.getPermission())) {
for(XOfflinePlayer off : pl.getManagers().getPlayerManager().getOfflinePlayers()) {
if(off.hasModreqsOpen()) {
for(Modreq mod : off.getModreqs()) {
sender.sendMessage(ChatColor.GRAY + "id: " + ChatColor.GREEN + mod.getId() + ChatColor.GRAY + " message: " + ChatColor.GREEN + mod.getMessage() + ChatColor.GRAY + " published: " + ChatColor.GREEN + mod.getDate() + ChatColor.GRAY + " by: " + ChatColor.GREEN + off.getName());
}
}
}
} else {
getWarning(WarningType.NO_PERMISSION);
}
} else {
if(pl.getManagers().getPlayerManager().isOnline(sender.getName())) {
XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(sender.getName());
try {
int id = Integer.parseInt(args[0]);
if(xp.isValidModreqId(id)) {
Modreq mod = xp.getModreq(id);
sender.sendMessage(ChatColor.GOLD + ".oO___[Modreq id: " + mod.getId() +"]___Oo.");
sender.sendMessage(ChatColor.GRAY + "id: " + ChatColor.GREEN + mod.getId() + ChatColor.GRAY + " message: " + ChatColor.GREEN + mod.getMessage() + ChatColor.GRAY + " published: " + ChatColor.GREEN + mod.getDate());
} else {
sendMessage("invalid modreq id!");
}
} catch(NumberFormatException e) {
sendMessage("this argument needs to be a number!");
}
} else {
sendMessage("something went wrong please reload xEssentials!");
}
}
} else if(args.length == 2) {
if(args[0].equalsIgnoreCase("list")) {
if(sender.hasPermission(PermissionKey.IS_ADMIN.getPermission())) {
Player victem = pl.getManagers().getPlayerManager().getOfflinePlayer(args[1]).getBukkitPlayer();
if(victem instanceof Player) {
if(pl.getManagers().getPlayerManager().isOnline(args[1])) {
XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(args[1]);
if(xp.hasModreqsOpen()) {
sender.sendMessage(ChatColor.GOLD + ".oO___[Modreq list of player " + args[1] + "]___Oo.");
for(Modreq mod : xp.getModreqs()) {
sender.sendMessage(ChatColor.GRAY + "id: " + ChatColor.GREEN + mod.getId() + ChatColor.GRAY + " message: " + ChatColor.GREEN + mod.getMessage() + ChatColor.GRAY + " published: " + ChatColor.GREEN + mod.getDate());
}
} else {
sendMessage("this player has no modreqs open!");
}
} else {
sendMessage("something went wrong please reload xEssentials!");
}
} else {
try {
XOfflinePlayer off = pl.getManagers().getPlayerManager().getOfflinePlayer(args[1]);
if(off.hasModreqsOpen()) {
sender.sendMessage(ChatColor.GOLD + ".oO___[Modreq list of player " + args[1] + "]___Oo.");
for(Modreq mod : off.getModreqs()) {
sender.sendMessage(ChatColor.GRAY + "id: " + ChatColor.GREEN + mod.getId() + ChatColor.GRAY + " message: " + ChatColor.GREEN + mod.getMessage() + ChatColor.GRAY + " published: " + ChatColor.GREEN + mod.getDate());
}
} else {
sendMessage("this player has no modreqs open!");
}
} catch(NullPointerException e) {
getWarning(WarningType.NEVER_PLAYED_BEFORE);
}
}
} else {
getWarning(WarningType.NO_PERMISSION);
}
} else {
if(sender.hasPermission(PermissionKey.IS_ADMIN.getPermission())) {
Player p = pl.getManagers().getPlayerManager().getOfflinePlayer(args[0]).getBukkitPlayer();
if(p instanceof Player) {
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);
sender.sendMessage(ChatColor.GOLD + ".oO___[Modreq info for player " + mod.getPlayersName() + " id: " + mod.getId() + "]___Oo.");
sender.sendMessage(ChatColor.GRAY + "id: " + ChatColor.GREEN + mod.getId() + ChatColor.GRAY + " message: " + ChatColor.GREEN + mod.getMessage() + ChatColor.GRAY + " published: " + ChatColor.GREEN + mod.getDate());
} else {
sendMessage("this is not a valid modreq id!");
}
} catch(NumberFormatException e) {
sendMessage("this argument needs to be a number!");
}
} else {
sendMessage("this player has no modreqs open!");
}
} else {
sendMessage("something went wrong please reload xEssentials!");
}
} else {
try {
XOfflinePlayer off = pl.getManagers().getPlayerManager().getOfflinePlayer(args[0]);
if(off.hasModreqsOpen()) {
try {
int id = Integer.parseInt(args[1]);
if(off.isValidModreqId(id)) {
Modreq mod = off.getModreq(id);
sender.sendMessage(ChatColor.GOLD + ".oO___[Modreq info for offline player " + mod.getPlayersName() + " id: " + mod.getId() + "]___Oo.");
sender.sendMessage(ChatColor.GRAY + "id: " + ChatColor.GREEN + mod.getId() + ChatColor.GRAY + " message: " + ChatColor.GREEN + mod.getMessage() + ChatColor.GRAY + " published: " + ChatColor.GREEN + mod.getDate());
} else {
sendMessage("this is not a valid modreq id!");
}
} catch(NumberFormatException e) {
sendMessage("this argument needs to be a number!");
}
} else {
sendMessage("this player has no modreqs open!");
}
} catch(NullPointerException e) {
getWarning(WarningType.NEVER_PLAYED_BEFORE);
}
}
} else {
getWarning(WarningType.NO_PERMISSION);
}
}
}
} else {
getWarning(WarningType.NO_PERMISSION);
}
return false;
}
}