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

Public Member Functions

 __construct ($name)
 
 execute (CommandSender $sender, $label, 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)

FillCommand constructor.

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

Member Function Documentation

◆ execute()

execute ( CommandSender  $sender,
  $label,
array  $args 
)
Parameters
CommandSender$sender
string$label
array$args
Returns
bool
57  {
58  if(!$this->testPermission($sender)){
59  return true;
60  }
61 
62  for($a = 0; $a < 6; $a++){
63  if(isset($args[$a])){
64  if(is_numeric($args[$a]) and is_integer($args[$a] + 0)){
65  $item = Item::fromString($args[6]);
66  if($item instanceof ItemBlock){
67  $xmin = min($args[0] + 0, $args[3] + 0);
68  $xmax = max($args[0] + 0, $args[3] + 0);
69  $ymin = min($args[1] + 0, $args[4] + 0);
70  $ymax = max($args[1] + 0, $args[4] + 0);
71  $zmin = min($args[2] + 0, $args[5] + 0);
72  $zmax = max($args[2] + 0, $args[5] + 0);
73  $level = ($sender instanceof Player) ? $sender->getLevel() : $sender->getServer()->getDefaultLevel();
74  $n = 0;
75  $nmax = ($xmax - $xmin + 1) * ($ymax - $ymin + 1) * ($zmax - $zmin + 1);
76  for($x = $xmin; $x <= $xmax; $x++){
77  for($y = $ymin; $y <= $ymax; $y++){
78  for($z = $zmin; $z <= $zmax; $z++){
79  if($this->setBlock(new Vector3($x, $y, $z), $level, $item, isset($args[7]) ? $args[7] : 0)){
80  $n++;
81  if(is_int($n / 10000)){
82  $sender->sendMessage(new TranslationContainer("$n out of $nmax blocks filled, now at $x $y $z", []));
83  }
84  }else{
85  $sender->sendMessage(TextFormat::RED . new TranslationContainer("Error after filling $n out of $nmax blocks.", []));
86  return false;
87  }
88  }
89  }
90  }
91  $sender->sendMessage(new TranslationContainer("Total of $n blocks filled.", []));
92  return true;
93  }
94  $sender->sendMessage(TextFormat::RED . new TranslationContainer($args[6] . " is not a valid block.", []));
95  return false;
96  }
97  $sender->sendMessage(TextFormat::RED . new TranslationContainer($args[$a] . " is not a valid coordinate.", []));
98  $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
99  return false;
100  }
101  $sender->sendMessage(TextFormat::RED . new TranslationContainer("pocketmine.command.fill.missingParameter", []));
102  $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
103  return false;
104  }
105 
106  return false;
107  }

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