/*
* CraftZ
* Copyright (C) JangoBrick <http://jangobrick.de/>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package craftZ.cmd;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import craftZ.CraftZ;
public class CMD_Help extends CraftZCommand {
public CMD_Help(CraftZ craftZ) {
super(craftZ, "");
}
@Override
public int execute() {
if (hasPerm("craftz.help")) {
send("");
send("" + ChatColor.GOLD + ChatColor.BOLD + getMsg("Messages.help.title"));
CraftZCommandManager cmdm = getCraftZ().getCommandManager();
Set<String> cmds = cmdm.getCommands(false);
printCommand("help", this);
for (String label : cmds) {
printCommand(label, cmdm.getCommandExecutor(label));
}
send("");
} else {
return NO_PERMISSION;
}
return SUCCESS;
}
private void printCommand(String label, CraftZCommand cmd) {
int exec = cmd.canExecute(sender).result();
if (exec == MUST_BE_PLAYER) {
send(ChatColor.GRAY + cmd.getUsage(label));
send(" " + ChatColor.DARK_GRAY + ChatColor.ITALIC + getMsg("Messages.help.commands." + label));
} else if (exec == SUCCESS) {
send(ChatColor.YELLOW + cmd.getUsage(label));
send(" " + ChatColor.GOLD + ChatColor.ITALIC + getMsg("Messages.help.commands." + label));
}
}
@Override
public CanExecute canExecute(CommandSender sender) {
return CanExecute.on(sender).permission("craftz.help");
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
return new ArrayList<String>();
}
}