package net.t7seven7t.swornguard.commands;
import net.dmulloy2.util.Util;
import net.t7seven7t.swornguard.SwornGuard;
import net.t7seven7t.swornguard.types.PlayerData;
import org.bukkit.OfflinePlayer;
/**
* Represents a command that can have pages
*
* @author dmulloy2
*/
public abstract class PaginatedCommand extends net.dmulloy2.commands.PaginatedCommand {
protected final SwornGuard plugin;
public PaginatedCommand(SwornGuard plugin) {
super(plugin);
this.plugin = plugin;
}
protected OfflinePlayer getTarget(int argIndex) {
return getTarget(argIndex, true);
}
protected OfflinePlayer getTarget(int argIndex, boolean others) {
OfflinePlayer target = null;
if (! isPlayer()) {
if (args.length > argIndex) {
target = getTarget(args[argIndex], false);
}
} else {
if (args.length > argIndex && others) {
target = getTarget(args[argIndex], false);
} else {
target = player;
}
}
if (target == null) {
err(plugin.getMessage("error_player_not_found"));
return null;
}
// Make sure they have data
if (getPlayerData(target) == null) {
err(plugin.getMessage("error_player_not_found"));
return null;
}
return target;
}
protected OfflinePlayer getTarget(String identifier, boolean msg) {
OfflinePlayer target = Util.matchOfflinePlayer(identifier);
if (target == null && msg)
err(plugin.getMessage("error_player_not_found"), identifier);
return target;
}
protected PlayerData getPlayerData(OfflinePlayer target) {
return plugin.getPlayerDataCache().getData(target);
}
protected PlayerData getPlayerData(OfflinePlayer target, boolean create) {
PlayerData data = getPlayerData(target);
if (data == null && create)
data = plugin.getPlayerDataCache().newData(target);
return data;
}
}