22declare(strict_types=1);
24namespace pocketmine\command\defaults;
31use pocketmine\player\GameMode;
36 public function __construct(){
39 KnownTranslationFactory::pocketmine_command_gamemode_description(),
40 KnownTranslationFactory::commands_gamemode_usage()
43 DefaultPermissionNames::COMMAND_GAMEMODE_SELF,
44 DefaultPermissionNames::COMMAND_GAMEMODE_OTHER
49 if(count($args) === 0){
53 $gameMode = GameMode::fromString($args[0]);
54 if($gameMode ===
null){
55 $sender->sendMessage(KnownTranslationFactory::pocketmine_command_gamemode_unknown($args[0]));
59 $target = $this->fetchPermittedPlayerTarget($sender, $args[1] ??
null, DefaultPermissionNames::COMMAND_GAMEMODE_SELF, DefaultPermissionNames::COMMAND_GAMEMODE_OTHER);
64 if($target->getGamemode() === $gameMode){
65 $sender->sendMessage(KnownTranslationFactory::pocketmine_command_gamemode_failure($target->getName()));
69 $target->setGamemode($gameMode);
70 if($gameMode !== $target->getGamemode()){
71 $sender->sendMessage(KnownTranslationFactory::pocketmine_command_gamemode_failure($target->getName()));
73 if($target === $sender){
74 Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_gamemode_success_self($gameMode->getTranslatableName()));
76 $target->sendMessage(KnownTranslationFactory::gameMode_changed($gameMode->getTranslatableName()));
77 Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_gamemode_success_other($gameMode->getTranslatableName(), $target->getName()));
setPermissions(array $permissions)
execute(CommandSender $sender, string $commandLabel, array $args)