public function gameModeChange($command, $sender)
{
if (isset($command[1]) and isset($command[2])) {
$gameMode = Server::getGamemodeFromString($command[1]);
if ($gameMode === -1) {
$sender->sendMessage("Unknown game mode");
}
$target = $sender;
if (isset($command[2])) {
$target = $sender->getServer()->getPlayerExact($command[2]);
if ($target === null) {
$nbt = $this->getServer()->getOfflinePlayerData($command[2]);
if (!isset($nbt->NameTag)) {
$sender->sendMessage(TextFormat::RED . "해당 플레이어를 찾을 수 없습니다, " . $command[2]);
return true;
} else {
$nbt["playerGameType"] = $gameMode;
$this->getServer()->saveOfflinePlayerData($command[2], $nbt);
$sender->sendMessage(TextFormat::DARK_AQUA . "비로그인 중인 " . $command[2] . "님의 게임모드를 " . strtolower(Server::getGamemodeString($gameMode)) . "로 변경했습니다.");
return true;
}
}
} elseif (!$sender instanceof Player) {
$sender->sendMessage(TextFormat::RED . "사용방법 : /gamemode <모드번호> [유저명]");
}
}
if (isset($command[1])) {
$target = $sender;
$gameMode = Server::getGamemodeFromString($command[1]);
if ($gameMode !== $target->getGamemode()) {
// $target->setGamemode ( $gameMode ); // set
$this->setGamemode($target, $gameMode);
// set
if ($gameMode !== $target->getGamemode()) {
$sender->sendMessage(TextFormat::RED . "게임모드 전환에 실패했습니다," . $target->getName());
} else {
if ($target === $sender) {
Command::broadcastCommandMessage($sender, "게임모드를 전환합니다, " . strtolower(Server::getGamemodeString($gameMode)) . " mode");
} else {
Command::broadcastCommandMessage($sender, $target->getName() . "님의 게임모드를 " . strtolower(Server::getGamemodeString($gameMode)) . " 로 변경했습니다.");
}
}
} else {
$sender->sendMessage($target->getName() . "님은 이미 " . strtolower(Server::getGamemodeString($gameMode) . " 모드입니다."));
}
}
}