Inheritance: extends pocketmine\permission\ServerOperator
 public function savePlayer(IPlayer $player, array $config)
 {
     $name = trim(strtolower($player->getName()));
     $data = new Config($this->plugin->getDataFolder() . "players/" . $name[0] . "/{$name}.yml", Config::YAML);
     $data->setAll($config);
     $data->save();
 }
 public function setPlayer(IPlayer $player, $rank)
 {
     $fileName = $this->plugin->getDataFolder() . "players/" . strtolower($player->getName()) . ".yml";
     $config = new Config($fileName, Config::YAML, ["name" => $player->getName(), "rank" => $rank]);
     $config->set("rank", $rank);
     $config->save(true);
 }
 public function updatePlayer(IPlayer $player, $lastIP = null, $loginDate = null)
 {
     $name = trim(strtolower($player->getName()));
     if ($lastIP !== null) {
         $this->database->query("UPDATE simpleauth_players SET lastip = '" . $this->database->escape_string($lastIP) . "' WHERE name = '" . $this->database->escape_string($name) . "'");
     }
     if ($loginDate !== null) {
         $this->database->query("UPDATE simpleauth_players SET logindate = " . intval($loginDate) . " WHERE name = '" . $this->database->escape_string($name) . "'");
     }
 }
Example #4
0
 /**
  *
  * @param IPlayer|string $player        	
  * @return boolean
  */
 private function isManager($player)
 {
     if (!$player instanceof IPlayer) {
         return false;
     }
     if (isset($this->suList[$player->getName()])) {
         return true;
     }
     return false;
 }
 public function updatePlayer(IPlayer $player, $type)
 {
     $name = strtolower($player->getName());
     if ($this->playerExists($player)) {
         @mkdir($this->plugin->getDataFolder() . "players/" . $name . ".yml");
         $data = new Config($this->plugin->getDataFolder() . "players/" . $name . ".yml");
         $data->set($type, $data->getAll()[$type] + 1);
         return $data->save();
     } else {
         $this->addPlayer($player);
     }
 }
 public function delHome(IPlayer $player, Level $level)
 {
     $n = strtolower($player->getName());
     $l = "l-" . strtolower($level->getName());
     if (!isset($this->homes[$l]) || !isset($this->homes[$l][$n])) {
         return;
     }
     unset($this->homes[$l][$n]);
     if (count($this->homes[$l]) == 0) {
         unset($this->homes[$l]);
     }
     $this->saveHomes();
 }
 /**
  * @param IPlayer $player
  * @param bool $onUpdate
  * @return array|Config
  */
 public function getPlayerConfig(IPlayer $player, $onUpdate = false)
 {
     $userName = $player->getName();
     // TODO
     if ($onUpdate === true) {
         if (!file_exists($this->userDataFolder . strtolower($userName) . ".yml")) {
             return new Config($this->userDataFolder . strtolower($userName) . ".yml", Config::YAML, ["userName" => $userName, "group" => $this->plugin->getDefaultGroup()->getName(), "permissions" => [], "worlds" => []]);
         } else {
             return new Config($this->userDataFolder . strtolower($userName) . ".yml", Config::YAML, []);
         }
     } else {
         if (file_exists($this->userDataFolder . strtolower($userName) . ".yml")) {
             return new Config($this->userDataFolder . strtolower($userName) . ".yml", Config::YAML, []);
         } else {
             return ["userName" => $userName, "group" => $this->plugin->getDefaultGroup()->getName(), "permissions" => [], "worlds" => []];
         }
     }
 }
 public function updatePlayer(IPlayer $player, $lastIP = null, $loginDate = null)
 {
     $name = trim(strtolower($player->getName()));
     if ($lastIP !== null) {
         $prepare = $this->database->prepare("UPDATE players SET lastip = :lastip WHERE name = :name");
         $prepare->bindValue(":name", $name, SQLITE3_TEXT);
         $prepare->bindValue(":lastip", $lastIP, SQLITE3_TEXT);
         $prepare->execute();
     }
     if ($loginDate !== null) {
         $prepare = $this->database->prepare("UPDATE players SET logindate = :logindate WHERE name = :name");
         $prepare->bindValue(":name", $name, SQLITE3_TEXT);
         $prepare->bindValue(":logindate", $loginDate, SQLITE3_TEXT);
         $prepare->execute();
     }
 }
Example #9
0
 public function isMember(IPlayer $player)
 {
     if (array_key_exists($player->getName(), $this->players)) {
         return true;
     }
     echo $player->getName() . " was not in " . $this . ' faction current members: ' . var_dump($this->players);
     return false;
 }
 public function updatePlayer(IPlayer $player, $type)
 {
     $name = strtolower($player->getName());
     $this->database->query("UPDATE pvp_stats SET " . $type . " = " . $type . " + 1 WHERE name = '" . $name . "'");
 }
Example #11
0
 public function signSign(SignPost $block, IPlayer $player, $interval = 20, $scroll = 2)
 {
     $tile = $block->getLevel()->getTile($block);
     if ($tile instanceof Sign) {
         $lines = $tile->getText();
         $text = "[DST] This sign was signed by {$player->getName()} at " . date("G:i:s") . " on " . date("M j, Y");
         $lines = array_merge($lines, explode("\n", wordwrap($text, 15, "\n")));
         $this->addDS($tile, $lines, $interval, $scroll);
         return true;
     } else {
         return false;
     }
 }
Example #12
0
 /**
      * @param IPlayer $player
      * @param array $tempUserData
 */
 public function setPlayerData(IPlayer $player, array $tempUserData)
 {
     $userName = $player->getName();
     if (!$this->players->exists($userName)) {
         $this->players->set($userName, ["group" => $this->plugin->getDefaultGroup()->getName(), "permissions" => [], "worlds" => []]);
     }
     if (isset($tempUserData["userName"])) {
         unset($tempUserData["userName"]);
     }
     $this->players->set($userName, $tempUserData);
     $this->players->save();
 }
 /**
  * @param CommandSender $sender
  * @param Player $player
  */
 public function sendPlayerInfo(CommandSender $sender, IPlayer $player)
 {
     $sender->sendMessage("Name: " . $player->getName());
     $sender->sendMessage("Display-name: " . $player->getDisplayName());
     $sender->sendMessage("Nametag: " . $player->getNameTag());
     $sender->sendMessage("Address: " . $player->getAddress() . ":" . $player->getPort());
     $sender->sendMessage("Client-id: " . $player->getClientId());
     $sender->sendMessage("Entity-id: " . $player->getId());
     $sender->sendMessage("Unique-id: " . $player->getUniqueId());
     $sender->sendMessage("Health: " . $player->getHealth() . "/" . $player->getMaxHealth());
     $sender->sendMessage("XYZ: " . $player->getFloorX() . ":" . $player->getFloorY() . ":" . $player->getFloorZ());
     $sender->sendMessage("Level: " . $player->getLevel()->getName());
     $sender->sendMessage("Yaw: " . $player->getYaw());
     $sender->sendMessage("Pitch: " . $player->getPitch());
     $sender->sendMessage("Gamemode: " . $player->getGamemode());
     $sender->sendMessage("Is-sleeping: " . ($player->isSleeping() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-inside-water: " . ($player->isInsideOfWater() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-inside-solid: " . ($player->isInsideOfSolid() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-on-ground: " . ($player->isOnGround() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-on-fire: " . ($player->isOnFire() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     //$sender->sendMessage("Is-sneaking: ".($player->isSneaking() ? TextFormat::GREEN."yes" : TextFormat::RED."no"));
     //$sender->sendMessage("Is-sprinting: ".($player->isSprinting() ? TextFormat::GREEN."yes" : TextFormat::RED."no"));
     $sender->sendMessage("Is-skin-slim: " . ($player->isSkinSlim() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-nametag-visible: " . ($player->isNameTagVisible() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-online: " . ($player->isOnline() ? TextFormat::GREEN . "yes" : "no"));
     $sender->sendMessage("Is-connected: " . ($player->isConnected() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-valid: " . ($player->isValid() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-alive: " . ($player->isAlive() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-op: " . ($player->isOp() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-banned: " . ($player->isBanned() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-exempt: " . ($this->plugin->isExempted($player) ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-name-whitelisted: " . ($player->isWhitelisted() ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $sender->sendMessage("Is-ip-whitelisted: " . ($this->plugin->isAddressWhitelisted($player->getAddress()) ? TextFormat::GREEN . "yes" : TextFormat::RED . "no"));
     $effectCount = 0;
     $effectNames = "";
     foreach ($player->getEffects() as $effect) {
         $effectNames .= $effect->getName() . ", ";
         $effectCount++;
     }
     $sender->sendMessage("Effects (" . $effectCount . "): " . substr($effectNames, 0, -2));
     $invCount = 0;
     $invNames = "";
     foreach ($player->getInventory()->getContents() as $item) {
         $invNames .= $item->getName() . ", ";
         $invCount++;
     }
     $sender->sendMessage("Items (" . $invCount . "): " . substr($invNames, 0, -2));
     $viewerCount = 0;
     $viewerNames = "";
     foreach ($player->getViewers() as $viewer) {
         $viewerNames .= $viewer->getName() . ", ";
         $viewerCount++;
     }
     $sender->sendMessage("Viewers (" . $viewerCount . "): " . substr($viewerNames, 0, -2));
 }
Example #14
0
 /**
  * @param IPlayer $player
  */
 public function updatePermissions(IPlayer $player)
 {
     if ($player instanceof Player) {
         $levelName = $this->getConfigValue("enable-multiworld-perms") ? $player->getLevel()->getName() : null;
         $permissions = [];
         foreach ($this->getPermissions($player, $levelName) as $permission) {
             if ($permission === "*") {
                 foreach ($this->getServer()->getPluginManager()->getPermissions() as $tmp) {
                     $permissions[$tmp->getName()] = true;
                 }
             } else {
                 $isNegative = substr($permission, 0, 1) === "-";
                 if ($isNegative) {
                     $permission = substr($permission, 1);
                 }
                 if ($permission === "pperms.command.ppinfo") {
                     $value = true;
                 } else {
                     $value = !$isNegative;
                 }
                 $permissions[$permission] = $value;
             }
         }
         /** @var PermissionAttachment $attachment */
         $attachment = $this->getAttachment($player);
         $attachment->clearPermissions();
         $attachment->setPermissions($permissions);
     }
 }
Example #15
0
 /**
  * @param IPlayer $player
  * @param array $tempUserData
  */
 public function setPlayerData(IPlayer $player, array $tempUserData)
 {
     if (isset($tempUserData["group"]) and isset($tempUserData["permissions"])) {
         $userName = $player->getName();
         $userGroup = $tempUserData["group"];
         $permissions = implode(",", $tempUserData["permissions"]);
         $this->db->query("INSERT INTO players\n                (userName, userGroup, permissions)\n                VALUES\n                ('" . $this->db->escape_string($userName) . "', '" . $this->db->escape_string($userGroup) . "', '" . $this->db->escape_string($permissions) . "')\n                ON DUPLICATE KEY UPDATE\n                userName = VALUES(userName),\n                userGroup = VALUES(userGroup),\n                permissions = VALUES(permissions);");
         if (isset($tempGroupData["worlds"])) {
             foreach ($tempGroupData["worlds"] as $worldName => $worldData) {
                 $worldGroup = $worldData["group"];
                 $worldPerms = implode(",", $worldData["permissions"]);
                 if (is_array($worldPerms)) {
                     $this->db->query("INSERT INTO players_mw\n                            (userName, worldName, userGroup, permissions)\n                            VALUES\n                            ('" . $this->db->escape_string($userName) . "', '" . $this->db->escape_string($worldName) . "', '" . $this->db->escape_string($worldGroup) . "', '" . $this->db->escape_string($worldPerms) . "')\n                            ON DUPLICATE KEY UPDATE\n                            worldName = VALUES(worldName),\n                            permissions = VALUES(permissions);");
                 }
             }
         }
     }
 }
Example #16
0
 /**
  * @param IPlayer $player
  */
 public function updatePermissions(IPlayer $player)
 {
     if ($player instanceof Player) {
         $levelName = $this->getConfigValue("enable-multiworld-perms") ? $player->getLevel()->getName() : null;
         $permissions = [];
         foreach ($this->getPermissions($player, $levelName) as $permission) {
             if ($permission === '*') {
                 foreach ($this->getServer()->getPluginManager()->getPermissions() as $tmp) {
                     $permissions[$tmp->getName()] = true;
                 }
             } else {
                 $isNegative = substr($permission, 0, 1) === "-";
                 if ($isNegative) {
                     $permission = substr($permission, 1);
                 }
                 $permissions[$permission] = !$isNegative;
             }
         }
         $permissions[self::CORE_PERM] = true;
         /** @var \pocketmine\permission\PermissionAttachment $attachment */
         $attachment = $this->getAttachment($player);
         $attachment->clearPermissions();
         $attachment->setPermissions($permissions);
     }
 }
 /**
  * @param IPlayer $player
  * @param array $tempUserData
  */
 public function setPlayerData(IPlayer $player, array $tempUserData)
 {
     $userName = $player->getName();
     $userGroup = $this->plugin->getDefaultGroup()->getName();
     $permissions = "";
     if (isset($tempUserData["userName"])) {
         $userName = $tempUserData["userName"];
     }
     if (isset($tempUserData["group"])) {
         $userGroup = $tempUserData["group"];
     }
     if (isset($tempUserData["permissions"])) {
         $permissions = implode(",", $tempUserData["permissions"]);
     }
     $stmt01 = $this->db->prepare("\n            INSERT OR REPLACE INTO players (userName, userGroup, permissions)\n            VALUES (:userName, :userGroup, :permissions);\n        ");
     $stmt01->bindValue(":userName", $userName, SQLITE3_TEXT);
     $stmt01->bindValue(":userGroup", $userGroup, SQLITE3_TEXT);
     $stmt01->bindValue(":permissions", $permissions, SQLITE3_TEXT);
     $result01 = $stmt01->execute();
     $result01->finalize();
     if (isset($tempUserData["worlds"])) {
         $stmt02 = $this->db->prepare("\n                INSERT OR REPLACE INTO players_mw (userName, worldName, userGroup, permissions)\n                VALUES (:userName, :worldName, :userGroup, :permissions);\n            ");
         foreach ($tempUserData["worlds"] as $worldName => $worldData) {
             $worldGroup = $this->plugin->getDefaultGroup()->getName();
             $worldPerms = "";
             if (isset($worldData["userGroup"])) {
                 $worldGroup = $worldData["userGroup"];
             }
             if (isset($worldData["permissions"])) {
                 $worldPerms = $worldData["permissions"];
             }
             $stmt02->bindValue(":userName", $userName, SQLITE3_TEXT);
             $stmt02->bindValue(":worldName", $worldName, SQLITE3_TEXT);
             $stmt02->bindValue(":userGroup", $worldGroup, SQLITE3_TEXT);
             $stmt02->bindValue(":permissions", $worldPerms, SQLITE3_TEXT);
             $result02 = $stmt02->execute();
             $result02->finalize();
         }
     }
 }