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

XpCommand constructor.

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

Member Function Documentation

◆ execute()

execute ( CommandSender  $sender,
  $currentAlias,
array  $args 
)
Parameters
CommandSender$sender
string$currentAlias
array$args
Returns
bool
55  {
56  if(!$this->testPermission($sender)){
57  return true;
58  }
59 
60  if(count($args) < 2){
61  if($sender instanceof ConsoleCommandSender){
62  $sender->sendMessage("You must specify a target player in the console");
63  return true;
64  }
65  $player = $sender;
66  }else{
67  $player = $sender->getServer()->getPlayer($args[1]);
68  }
69  if($player instanceof Player){
70  $name = $player->getName();
71  if(count($args) < 1){
72  $player->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
73  return false;
74  }
75  if(strcasecmp(substr($args[0], -1), "L") == 0){
76  $level = (int) rtrim($args[0], "Ll");
77  if($level > 0){
78  $player->addXpLevel((int) $level);
79  $sender->sendMessage(new TranslationContainer("%commands.xp.success.levels", [$level, $name]));
80  $player->getLevel()->broadcastLevelSoundEvent($player, LevelSoundEventPacket::SOUND_LEVELUP);
81  return true;
82  }elseif($level < 0){
83  $player->takeXpLevel((int) -$level);
84  $sender->sendMessage(new TranslationContainer("%commands.xp.success.negative.levels", [-$level, $name]));
85  return true;
86  }
87  }else{
88  if(($xp = (int) $args[0]) > 0){ //Set Experience
89  $player->addXp((int) $args[0]);
90  $player->getLevel()->addSound(new ExpPickupSound($player, mt_rand(0, 1000)));
91  $sender->sendMessage(new TranslationContainer("%commands.xp.success", [$name, $args[0]]));
92  return true;
93  }elseif($xp < 0){
94  $sender->sendMessage(new TranslationContainer("%commands.xp.failure.withdrawXp"));
95  return true;
96  }
97  }
98 
99  $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
100  return false;
101  }else{
102  $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
103  return false;
104  }
105  }

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