GenisysPro  for Minecraft PE/Windows 10 v1.1.x
Feature-rich server software for Minecraft PE and Windows 10 Edition
Command Class Reference

Public Member Functions

 __construct ($name, $description="", $usageMessage=null, array $aliases=[])
 
 getDefaultCommandData ()
 
 generateCustomCommandData (Player $player)
 
 getOverloads ()
 
 execute (CommandSender $sender, $commandLabel, array $args)
 
 getName ()
 
 getPermission ()
 
 setPermission ($permission)
 
 testPermission (CommandSender $target)
 
 testPermissionSilent (CommandSender $target)
 
 getLabel ()
 
 setLabel ($name)
 
 register (CommandMap $commandMap)
 
 unregister (CommandMap $commandMap)
 
 isRegistered ()
 
 getAliases ()
 
 getPermissionMessage ()
 
 getDescription ()
 
 getUsage ()
 
 setAliases (array $aliases)
 
 setDescription ($description)
 
 setPermissionMessage ($permissionMessage)
 
 setUsage ($usage)
 
 __toString ()
 

Static Public Member Functions

static generateDefaultData ()
 
static broadcastCommandMessage (CommandSender $source, $message, $sendToSource=true)
 

Data Fields

 $timings
 

Protected Attributes

 $commandData = null
 
 $description = ""
 
 $usageMessage
 

Constructor & Destructor Documentation

◆ __construct()

__construct (   $name,
  $description = "",
  $usageMessage = null,
array  $aliases = [] 
)
Parameters
string$name
string$description
string$usageMessage
string[]$aliases
81  {
82  $this->commandData = self::generateDefaultData();
83  $this->name = $this->nextLabel = $this->label = $name;
85  $this->usageMessage = $usageMessage === null ? "/" . $name : $usageMessage;
86  $this->setAliases($aliases);
87  $this->timings = new TimingsHandler("** Command: " . $name);
88  }

Member Function Documentation

◆ __toString()

__toString ( )
Returns
string
386  {
387  return $this->name;
388  }

◆ broadcastCommandMessage()

static broadcastCommandMessage ( CommandSender  $source,
  $message,
  $sendToSource = true 
)
static
Parameters
CommandSender$source
string$message
bool$sendToSource
350  {
351  if($message instanceof TextContainer){
352  $m = clone $message;
353  $result = "[" . $source->getName() . ": " . ($source->getServer()->getLanguage()->get($m->getText()) !== $m->getText() ? "%" : "") . $m->getText() . "]";
354 
355  $users = $source->getServer()->getPluginManager()->getPermissionSubscriptions(Server::BROADCAST_CHANNEL_ADMINISTRATIVE);
356  $colored = TextFormat::GRAY . TextFormat::ITALIC . $result;
357 
358  $m->setText($result);
359  $result = clone $m;
360  $m->setText($colored);
361  $colored = clone $m;
362  }else{
363  $users = $source->getServer()->getPluginManager()->getPermissionSubscriptions(Server::BROADCAST_CHANNEL_ADMINISTRATIVE);
364  $result = new TranslationContainer("chat.type.admin", [$source->getName(), $message]);
365  $colored = new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . "%chat.type.admin", [$source->getName(), $message]);
366  }
367 
368  if($sendToSource === true and !($source instanceof ConsoleCommandSender)){
369  $source->sendMessage($message);
370  }
371 
372  foreach($users as $user){
373  if($user instanceof CommandSender){
374  if($user instanceof ConsoleCommandSender){
375  $user->sendMessage($result);
376  }elseif($user !== $source){
377  $user->sendMessage($colored);
378  }
379  }
380  }
381  }

◆ execute()

execute ( CommandSender  $sender,
  $commandLabel,
array  $args 
)
abstract
Parameters
CommandSender$sender
string$commandLabel
string[]$args
Returns
mixed

◆ generateCustomCommandData()

generateCustomCommandData ( Player  $player)

Generates modified command data for the specified player for AvailableCommandsPacket.

Parameters
Player$player
Returns
|null
107  {
108  //TODO: fix command permission filtering on join
109  /*if(!$this->testPermissionSilent($player)){
110  return null;
111  }*/
112  $customData = clone $this->commandData;
113  $customData->aliases = $this->getAliases();
114  /*foreach($customData->overloads as &$overload){
115  if(isset($overload->pocketminePermission) and !$player->hasPermission($overload->pocketminePermission)){
116  unset($overload);
117  }
118  }*/
119  return $customData;
120  }

◆ generateDefaultData()

static generateDefaultData ( )
staticfinal
Returns
338  : \stdClass{
339  if(self::$defaultDataTemplate === null){
340  self::$defaultDataTemplate = json_decode(file_get_contents(Server::getInstance()->getFilePath() . "src/pocketmine/resources/command_default.json"));
341  }
342  return clone self::$defaultDataTemplate;
343  }

◆ getAliases()

getAliases ( )
Returns
string[]
279  {
280  return $this->activeAliases;
281  }

◆ getDefaultCommandData()

getDefaultCommandData ( )

Returns an containing command data

Returns
95  : \stdClass{
96  return $this->commandData;
97  }

◆ getDescription()

getDescription ( )
Returns
string
293  {
294  return $this->commandData->description;
295  }

◆ getLabel()

getLabel ( )
Returns
string
205  {
206  return $this->label;
207  }

◆ getName()

getName ( )
Returns
string
141  : string{
142  return $this->name;
143  }

◆ getOverloads()

getOverloads ( )
Returns
125  : \stdClass{
126  return $this->commandData->overloads;
127  }

◆ getPermission()

getPermission ( )
Returns
string
148  {
149  return $this->commandData->pocketminePermission ?? null;
150  }

◆ getPermissionMessage()

getPermissionMessage ( )
Returns
string
286  {
287  return $this->permissionMessage;
288  }

◆ getUsage()

getUsage ( )
Returns
string
300  {
301  return $this->usageMessage;
302  }

◆ isRegistered()

isRegistered ( )
Returns
bool
272  {
273  return $this->commandMap !== null;
274  }

◆ register()

register ( CommandMap  $commandMap)

Registers the command into a Command map

Parameters
CommandMap$commandMap
Returns
bool
233  {
234  if($this->allowChangesFrom($commandMap)){
235  $this->commandMap = $commandMap;
236 
237  return true;
238  }
239 
240  return false;
241  }

◆ setAliases()

setAliases ( array  $aliases)
Parameters
string[]$aliases
307  {
308  $this->commandData->aliases = $aliases;
309  if(!$this->isRegistered()){
310  $this->activeAliases = (array) $aliases;
311  }
312  }

◆ setDescription()

setDescription (   $description)
Parameters
string$description
317  {
318  $this->commandData->description = $description;
319  }

◆ setLabel()

setLabel (   $name)
Parameters
$name
Returns
bool
214  {
215  $this->nextLabel = $name;
216  if(!$this->isRegistered()){
217  $this->timings = new TimingsHandler("** Command: " . $name);
218  $this->label = $name;
219 
220  return true;
221  }
222 
223  return false;
224  }

◆ setPermission()

setPermission (   $permission)
Parameters
string | null$permission
156  {
157  if($permission !== null){
158  $this->commandData->pocketminePermission = $permission;
159  }else{
160  unset($this->commandData->pocketminePermission);
161  }
162  }

◆ setPermissionMessage()

setPermissionMessage (   $permissionMessage)
Parameters
string$permissionMessage
324  {
325  $this->permissionMessage = $permissionMessage;
326  }

◆ setUsage()

setUsage (   $usage)
Parameters
string$usage
331  {
332  $this->usageMessage = $usage;
333  }

◆ testPermission()

testPermission ( CommandSender  $target)
Parameters
CommandSender$target
Returns
bool
169  {
170  if($this->testPermissionSilent($target)){
171  return true;
172  }
173 
174  if($this->permissionMessage === null){
175  $target->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
176  }elseif($this->permissionMessage !== ""){
177  $target->sendMessage(str_replace("<permission>", $this->getPermission(), $this->permissionMessage));
178  }
179 
180  return false;
181  }

◆ testPermissionSilent()

testPermissionSilent ( CommandSender  $target)
Parameters
CommandSender$target
Returns
bool
188  {
189  if(($perm = $this->getPermission()) === null or $perm === ""){
190  return true;
191  }
192 
193  foreach(explode(";", $perm) as $permission){
194  if($target->hasPermission($permission)){
195  return true;
196  }
197  }
198 
199  return false;
200  }

◆ unregister()

unregister ( CommandMap  $commandMap)
Parameters
CommandMap$commandMap
Returns
bool
248  {
249  if($this->allowChangesFrom($commandMap)){
250  $this->commandMap = null;
251  $this->activeAliases = $this->commandData->aliases;
252  $this->label = $this->nextLabel;
253 
254  return true;
255  }
256 
257  return false;
258  }

Field Documentation

◆ $commandData

$commandData = null
protected

◆ $description

$description = ""
protected

◆ $timings

$timings

◆ $usageMessage

$usageMessage
protected

The documentation for this class was generated from the following file: