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

EnchantCommand constructor.

Parameters
$name
36  {
37  parent::__construct(
38  $name,
39  "%pocketmine.command.enchant.description",
40  "%pocketmine.command.enchant.usage"
41  );
42  $this->setPermission("pocketmine.command.enchant");
43  }

Member Function Documentation

◆ execute()

execute ( CommandSender  $sender,
  $currentAlias,
array  $args 
)
Parameters
CommandSender$sender
string$currentAlias
array$args
Returns
bool
52  {
53  if(!$this->testPermission($sender)){
54  return true;
55  }
56 
57  if(count($args) < 2){
58  $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
59  return true;
60  }
61 
62  $player = $sender->getServer()->getPlayer($args[0]);
63 
64  if($player === null){
65  $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
66  return true;
67  }
68 
69  $enchantId = $args[1];
70  $enchantLevel = isset($args[2]) ? (int) $args[2] : 1;
71 
72  $enchantment = Enchantment::getEnchantment($enchantId);
73  if($enchantment->getId() === Enchantment::TYPE_INVALID){
74  $enchantment = Enchantment::getEnchantmentByName($enchantId);
75  if($enchantment->getId() === Enchantment::TYPE_INVALID){
76  $sender->sendMessage(new TranslationContainer("commands.enchant.notFound", [$enchantment->getId()]));
77  return true;
78  }
79  }
80  $id = $enchantment->getId();
81  $maxLevel = Enchantment::getEnchantMaxLevel($id);
82  if($enchantLevel > $maxLevel or $enchantLevel <= 0){
83  $sender->sendMessage(new TranslationContainer("commands.enchant.maxLevel", [$maxLevel]));
84  return true;
85  }
86  $enchantment->setLevel($enchantLevel);
87 
88  $item = $player->getInventory()->getItemInHand();
89 
90  if($item->getId() <= 0){
91  $sender->sendMessage(new TranslationContainer("commands.enchant.noItem"));
92  return true;
93  }
94 
95  if(Enchantment::getEnchantAbility($item) === 0){
96  $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.enchant.cantEnchant"));
97  return true;
98  }
99 
100  $item->addEnchantment($enchantment);
101  $player->getInventory()->setItemInHand($item);
102 
103 
104  self::broadcastCommandMessage($sender, new TranslationContainer("%commands.enchant.success"));
105  return true;
106  }

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