/** * Register this class as a command. * * @param str $cmd - command to register * @param mixed[] $yaml - options for command */ public function enableCmd($cmd, $yaml) { $newCmd = new PluginCommand($cmd, $this->owner); if (isset($yaml["description"])) { $newCmd->setDescription($yaml["description"]); } if (isset($yaml["usage"])) { $newCmd->setUsage($yaml["usage"]); } if (isset($yaml["aliases"]) and is_array($yaml["aliases"])) { $aliasList = []; foreach ($yaml["aliases"] as $alias) { if (strpos($alias, ":") !== false) { $this->owner->getLogger()->info("Unable to load alias {$alias}"); continue; } $aliasList[] = $alias; } $newCmd->setAliases($aliasList); } if (isset($yaml["permission"])) { $newCmd->setPermission($yaml["permission"]); } if (isset($yaml["permission-message"])) { $newCmd->setPermissionMessage($yaml["permission-message"]); } $newCmd->setExecutor($this); $cmdMap = $this->owner->getServer()->getCommandMap(); $cmdMap->register($this->owner->getDescription()->getName(), $newCmd); }
/** * @param Plugin $plugin * * @return PluginCommand[] */ protected function parseYamlCommands(Plugin $plugin) { $pluginCmds = []; foreach ($plugin->getDescription()->getCommands() as $key => $data) { if (strpos($key, ":") !== false) { $this->server->getLogger()->critical($this->server->getLanguage()->translateString("pocketmine.plugin.commandError", [$key, $plugin->getDescription()->getFullName()])); continue; } if (is_array($data)) { $newCmd = new PluginCommand($key, $plugin); if (isset($data["description"])) { $newCmd->setDescription($data["description"]); } if (isset($data["usage"])) { $newCmd->setUsage($data["usage"]); } if (isset($data["aliases"]) and is_array($data["aliases"])) { $aliasList = []; foreach ($data["aliases"] as $alias) { if (strpos($alias, ":") !== false) { $this->server->getLogger()->critical($this->server->getLanguage()->translateString("pocketmine.plugin.aliasError", [$alias, $plugin->getDescription()->getFullName()])); continue; } $aliasList[] = $alias; } $newCmd->setAliases($aliasList); } if (isset($data["permission"])) { $newCmd->setPermission($data["permission"]); } if (isset($data["permission-message"])) { $newCmd->setPermissionMessage($data["permission-message"]); } $pluginCmds[] = $newCmd; } } return $pluginCmds; }
/** * @param Plugin $plugin * * @return PluginCommand[] */ protected function parseYamlCommands(Plugin $plugin) { $pluginCmds = []; foreach ($plugin->getDescription()->getCommands() as $key => $data) { if (strpos($key, ":") !== false) { $this->server->getLogger()->critical("Could not load command " . $key . " for plugin " . $plugin->getDescription()->getName()); continue; } if (is_array($data)) { $newCmd = new PluginCommand($key, $plugin); if (isset($data["description"])) { $newCmd->setDescription($data["description"]); } if (isset($data["usage"])) { $newCmd->setUsage($data["usage"]); } if (isset($data["aliases"]) and is_array($data["aliases"])) { $aliasList = []; foreach ($data["aliases"] as $alias) { if (strpos($alias, ":") !== false) { $this->server->getLogger()->critical("Could not load alias " . $alias . " for plugin " . $plugin->getDescription()->getName()); continue; } $aliasList[] = $alias; } $newCmd->setAliases($aliasList); } if (isset($data["permission"])) { $newCmd->setPermission($data["permission"]); } if (isset($data["permission-message"])) { $newCmd->setPermissionMessage($data["permission-message"]); } $pluginCmds[] = $newCmd; } } return $pluginCmds; }