GenisysPro  for Minecraft PE/Windows 10 v1.1.x
Feature-rich server software for Minecraft PE and Windows 10 Edition
SetBlockCommand 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)

SetBlockCommand constructor.

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

Member Function Documentation

◆ execute()

execute ( CommandSender  $sender,
  $currentAlias,
array  $args 
)
Parameters
CommandSender$sender
string$currentAlias
array$args
Returns
bool
57  {
58  if(!$this->testPermission($sender)){
59  return true;
60  }
61 
62  if(count($args) < 4 or count($args) > 5){
63  $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
64  return false;
65  }
66 
67  $itemblock = Item::fromString($args[3]);
68  if($itemblock instanceof ItemBlock){
69  $block = $itemblock->getBlock();
70  if(isset($args[4]) and is_numeric($args[4])) $block->setDamage((int) $args[4]);
71 
72  $x = $args[0];
73  $y = $args[1];
74  $z = $args[2];
75 
76  if($x{0} === "~"){
77  if((is_numeric(trim($x, "~")) or trim($x, "~") === "") and ($sender instanceof Player)) $x = (int) round(trim($x, "~") + $sender->x);
78  }elseif(is_numeric($x)){
79  $x = (int) round($x);
80  }else{
81  $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
82  return false;
83  }
84  if($y{0} === "~"){
85  if((is_numeric(trim($y, "~")) or trim($y, "~") === "") and ($sender instanceof Player)) $y = (int) round(trim($y, "~") + $sender->y);
86  if($y < 0 or $y > 256) return false;
87  }elseif(is_numeric($y)){
88  $y = (int) round($y);
89  }else{
90  $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
91  return false;
92  }
93  if($z{0} === "~"){
94  if((is_numeric(trim($z, "~")) or trim($z, "~") === "") and ($sender instanceof Player)) $z = (int) round(trim($z, "~") + $sender->z);
95  }elseif(is_numeric($z)){
96  $z = (int) round($z);
97  }else{
98  $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
99  return false;
100  }
101  if(!(is_integer($x) and is_integer($y) and is_integer($z))){
102  $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
103  return false;
104  }
105 
106  $pos = new Vector3($x, $y, $z);
107  if($pos instanceof Vector3){
108  $level = ($sender instanceof Player) ? $sender->getLevel() : $sender->getServer()->getDefaultLevel();
109  if($level->setBlock($pos, $block)){
110  $sender->sendMessage("Successfully set the block at ($x, $y, $z) to block $args[3]");
111  return true;
112  }else{
113  $sender->sendMessage(TextFormat::RED . new TranslationContainer("commands.generic.exception", []));
114  return false;
115  }
116  }
117  }else{
118  $sender->sendMessage(TextFormat::RED . new TranslationContainer("command.setblock.invalidBlock", []));
119  return false;
120  }
121  return true;
122  }

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