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

Public Member Functions

 __construct ($name)
 
 execute (CommandSender $sender, $currentAlias, array $args)
 
- Public Member Functions inherited from VanillaCommand
 __construct ($name, $description="", $usageMessage=null, array $aliases=[])
 
- Public Member Functions inherited from Command
 __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 ()
 

Additional Inherited Members

- Static Public Member Functions inherited from Command
static generateDefaultData ()
 
static broadcastCommandMessage (CommandSender $source, $message, $sendToSource=true)
 
- Data Fields inherited from VanillaCommand
const MAX_COORD = 30000000
 
const MIN_COORD = -30000000
 
- Data Fields inherited from Command
 $timings
 
- Protected Member Functions inherited from VanillaCommand
 getInteger (CommandSender $sender, $value, $min=self::MIN_COORD, $max=self::MAX_COORD)
 
 getRelativeDouble ($original, CommandSender $sender, $input, $min=self::MIN_COORD, $max=self::MAX_COORD)
 
 getDouble (CommandSender $sender, $value, $min=self::MIN_COORD, $max=self::MAX_COORD)
 
- Protected Attributes inherited from Command
 $commandData = null
 
 $description = ""
 
 $usageMessage
 

Constructor & Destructor Documentation

◆ __construct()

__construct (   $name)

GiveCommand constructor.

Parameters
$name
40  {
41  parent::__construct(
42  $name,
43  "%pocketmine.command.give.description",
44  "%pocketmine.command.give.usage"
45  );
46  $this->setPermission("pocketmine.command.give");
47  }

Member Function Documentation

◆ execute()

execute ( CommandSender  $sender,
  $currentAlias,
array  $args 
)
Parameters
CommandSender$sender
string$currentAlias
array$args
Returns
bool
56  {
57  if(!$this->testPermission($sender)){
58  return true;
59  }
60 
61  if(count($args) < 2){
62  $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
63 
64  return true;
65  }
66 
67  $player = $sender->getServer()->getPlayer($args[0]);
68  $item = Item::fromString($args[1]);
69 
70  if(!isset($args[2])){
71  $item->setCount($item->getMaxStackSize());
72  }else{
73  $item->setCount((int) $args[2]);
74  }
75 
76  if(isset($args[3])){
77  $tags = $exception = null;
78  $data = implode(" ", array_slice($args, 3));
79  try{
80  $tags = NBT::parseJSON($data);
81  }catch(\Throwable $ex){
82  $exception = $ex;
83  }
84 
85  if(!($tags instanceof CompoundTag) or $exception !== null){
86  $sender->sendMessage(new TranslationContainer("commands.give.tagError", [$exception !== null ? $exception->getMessage() : "Invalid tag conversion"]));
87  return true;
88  }
89 
90  $item->setNamedTag($tags);
91  }
92 
93  if($player instanceof Player){
94  if($item->getId() === 0){
95  $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.give.item.notFound", [$args[1]]));
96 
97  return true;
98  }
99 
100  //TODO: overflow
101  $player->getInventory()->addItem(clone $item);
102  }else{
103  $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
104 
105  return true;
106  }
107 
108  Command::broadcastCommandMessage($sender, new TranslationContainer("%commands.give.success", [
109  $item->getName() . " (" . $item->getId() . ":" . $item->getDamage() . ")",
110  (string) $item->getCount(),
111  $player->getName()
112  ]));
113  return true;
114  }

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