Custom command class
Since 1.0.0
The requirements
import net.codersky.mcutils.general.MCCommand;
import net.codersky.clans.ClanPlugin;
public abstract class ClanCommand extends MCPlugin<ClanPlugin> {
public ClanCommand(ClanPlugin plugin, String name) {
super(plugin, name);
// We are going to check for the sender class ourselves, for optimization.
}
// The two new methods that this command class will use, with the
// sender already casted to Player and a Clan instance.
public abstract boolean onCommand(Player sender, Clan clan, String[] args);
public abstract List<String> onTab(Player sender, Clan clan, String[] args);
// Override old methods to call the new ones with the new requirements.
@Override
public final boolean onCommand(CommandSender sender, String[] args) {
if (!(sender instanceof Player))
return getPlugin().getMessages().send(sender, "clan.noPlayer");
Player player = (Player) sender;
Clan clan = getPlugin().getClanManager().getClan(player);
if (clan == null)
return getPlugin().getMessages().send(player, "clan.noClan");
return onCommand(player, clan, args);
}
@Override
public final List<String> onTab(CommandSender sender, String[] args) {
if (!(sender instanceof Player))
return null;
Player player = (Player) sender;
Clan clan = getPlugin().getClanManager().getClan(player);
if (clan == null)
return null;
return onTab(player, clan, args);
}
}Last updated