/** * @param CommandSender $sender * @param string $label * @param string[] $args * @return bool */ public function execute(CommandSender $sender, $label, array $args) { if (!$this->testPermission($sender)) { return false; } if (isset($args[0])) { switch (strtolower($args[0])) { case "ac": case "addcmd": return true; case "cmd": return true; case "dc": case "delcmd": if (isset($args[1])) { if ($this->plugin->getCommandStorage()->removeCommand($args[1])) { $sender->sendMessage(TextFormat::GREEN . "Successfully disabled RCMD: " . strtolower($args[1]) . "."); } else { $sender->sendMessage(TextFormat::RED . "Failed to remove due to nonexistent command specified."); } } else { $sender->sendMessage(TextFormat::RED . "Please specify a command name."); } return true; case "help": $this->sendCommandHelp($sender); return true; case "list": $count = 0; $names = ""; foreach ($this->plugin->getCommandStorage()->getCommands() as $command) { $names .= $command->getName() . ", "; $count++; } $sender->sendMessage("RCMDs (" . $count . "): " . substr($names, 0, -2)); return true; default: $sender->sendMessage("Usage: /rapidcmd <sub-command> [parameters]"); return false; } } else { $this->sendCommandHelp($sender); return false; } }
/** * @param string $name * @return bool */ public function isCommandRegistered($name) { $rcmd = $this->plugin->getServer()->getCommandMap()->getCommand(strtolower($name)); return $rcmd instanceof RCMD and $rcmd->isRegistered(); }