PocketMine-MP  1.4 - API 1.10.0
 All Classes Namespaces Functions Variables Pages
PluginCommand.php
1 <?php
2 
3 /*
4  *
5  * ____ _ _ __ __ _ __ __ ____
6  * | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
7  * | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
8  * | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
9  * |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
10  *
11  * This program is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License as published by
13  * the Free Software Foundation, either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * @author PocketMine Team
17  * @link http://www.pocketmine.net/
18  *
19  *
20 */
21 
22 namespace pocketmine\command;
23 
26 
28 
30  private $owningPlugin;
31 
33  private $executor;
34 
39  public function __construct($name, Plugin $owner){
40  parent::__construct($name);
41  $this->owningPlugin = $owner;
42  $this->executor = $owner;
43  $this->usageMessage = "";
44  }
45 
46  public function execute(CommandSender $sender, $commandLabel, array $args){
47 
48  if(!$this->owningPlugin->isEnabled()){
49  return false;
50  }
51 
52  if(!$this->testPermission($sender)){
53  return false;
54  }
55 
56  $success = $this->executor->onCommand($sender, $this, $commandLabel, $args);
57 
58  if(!$success and $this->usageMessage !== ""){
59  $sender->sendMessage(TextFormat::RED . "Usage: " . $this->usageMessage);
60  }
61 
62  return $success;
63  }
64 
65  public function getExecutor(){
66  return $this->executor;
67  }
68 
72  public function setExecutor(CommandExecutor $executor){
73  $this->executor = ($executor != null) ? $executor : $this->owningPlugin;
74  }
75 
79  public function getPlugin(){
80  return $this->owningPlugin;
81  }
82 }
onCommand(CommandSender $sender, Command $command, $label, array $args)
setExecutor(CommandExecutor $executor)
__construct($name, Plugin $owner)
testPermission(CommandSender $target)
Definition: Command.php:121