Пример #1
0
 /**
  * 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);
 }
Пример #2
0
 /**
  * @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;
 }
Пример #3
0
 /**
  * @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;
 }