Overview

Namespaces

  • aliuly
    • common
      • selectors
    • loader
  • xPaw

Classes

  • aliuly\common\ArmorItems
  • aliuly\common\BasicCli
  • aliuly\common\BasicHelp
  • aliuly\common\BasicPlugin
  • aliuly\common\ChatSession
  • aliuly\common\Cmd
  • aliuly\common\CmdSelector
  • aliuly\common\ExpandVars
  • aliuly\common\FastTransfer
  • aliuly\common\FileUtils
  • aliuly\common\FreezeSession
  • aliuly\common\GetMotd
  • aliuly\common\GetMotdAsyncTask
  • aliuly\common\InvisibleSession
  • aliuly\common\InvUtils
  • aliuly\common\ItemName
  • aliuly\common\mc
  • aliuly\common\mc2
  • aliuly\common\MoneyAPI
  • aliuly\common\MPMU
  • aliuly\common\Npc
  • aliuly\common\PermUtils
  • aliuly\common\PluginAsyncTask
  • aliuly\common\PluginCallbackTask
  • aliuly\common\PMScript
  • aliuly\common\QueryAsyncTask
  • aliuly\common\Rcon
  • aliuly\common\RconTask
  • aliuly\common\selectors\All
  • aliuly\common\selectors\AllEntity
  • aliuly\common\selectors\BaseSelector
  • aliuly\common\selectors\Random
  • aliuly\common\Session
  • aliuly\common\ShieldSession
  • aliuly\common\ShoppingCart
  • aliuly\common\SignUtils
  • aliuly\common\SkinUtils
  • aliuly\common\SpySession
  • aliuly\common\SubCommandMap
  • aliuly\common\TPUtils
  • aliuly\loader\Main
  • xPaw\MinecraftQuery

Exceptions

  • xPaw\MinecraftQueryException
  • Overview
  • Namespace
  • Class
 1: <?php
 2: namespace aliuly\common;
 3: 
 4: use pocketmine\command\CommandSender;
 5: use pocketmine\command\Command;
 6: use aliuly\common\mc;
 7: 
 8: /**
 9:  * Sub Command dispatcher
10:  */
11: class SubCommandMap {
12:   public function __construct() {
13:     $this->executors = [];
14:     $this->help = [];
15:     $this->usage = [];
16:     $this->aliases = [];
17:     $this->permission = [];
18:   }
19:   /**
20:    * Returns the number of commands configured
21:    */
22:   public function getCommandCount() {
23:     return count($this->executors);
24:   }
25:   /**
26:    * Dispatch commands using sub command table
27:    */
28:   public function dispatchSCmd(CommandSender $sender,Command $cmd,array $args,$data=null) {
29:     if (count($args) == 0) {
30:       $sender->sendMessage(mc::_("No sub-command specified"));
31:       return false;
32:     }
33:     $scmd = strtolower(array_shift($args));
34:     if (isset($this->aliases[$scmd])) {
35:       $scmd = $this->aliases[$scmd];
36:     }
37:     if (!isset($this->executors[$scmd])) {
38:       $sender->sendMessage(mc::_("Unknown sub-command %2% (try /%1% help)",$cmd->getName(),$scmd));
39:       return false;
40:     }
41:     if (isset($this->permission[$scmd])) {
42:       if (!$sender->hasPermission($this->permission[$scmd])) {
43:         $sender->sendMessage(mc::_("You are not allowed to do this"));
44:         return true;
45:       }
46:     }
47:     $callback = $this->executors[$scmd];
48:     if ($callback($sender,$cmd,$scmd,$data,$args)) return true;
49:     if (isset($this->executors["help"])) {
50:       $callback = $this->executors["help"];
51:       return $callback($sender,$cmd,$scmd,$data,["usage"]);
52:     }
53:     return false;
54:   }
55:   /**
56:      * Register a sub command
57:      * @param str $cmd - sub command
58:      * @param callable $callable - callable to execute
59:      * @param array $opts - additional options
60:      */
61:     public function registerSCmd($cmd,$callable,$opts) {
62:         $cmd = strtolower($cmd);
63:         $this->executors[$cmd] = $callable;
64: 
65:     if (isset($opts["help"])) {
66:       $this->help[$cmd] = $opts["help"];
67:       ksort($this->help);
68:     }
69:     if (isset($opts["usage"])) $this->usage[$cmd] = $opts["usage"];
70:     if (isset($opts["permission"])) $this->permission[$cmd] = $opts["permission"];
71:         if (isset($opts["aliases"])) {
72:             foreach ($opts["aliases"] as $alias) {
73:                 $this->aliases[$alias] = $cmd;
74:             }
75:         }
76:     }
77: 
78:   public function getUsage($scmd) {
79:     return isset($this->usage[$scmd]) ? $this->usage[$scmd] : null;
80:   }
81:   public function getAlias($scmd) {
82:     return isset($this->aliases[$scmd]) ? $this->aliases[$scmd] : null;
83:   }
84:   public function getHelpMsg($scmd) {
85:     return isset($this->help[$scmd]) ? $this->help[$scmd] : null;
86:   }
87:   public function getHelp() {
88:     return $this->help;
89:   }
90:   public function getAliases() {
91:     return $this->aliases;
92:   }
93: }
94: 
API documentation generated by ApiGen