Example #1
0
 /**
  * Unregister a player
  * 
  * @param Player|OfflinePlayer $player
  * 
  * @return int|boolean true on SUCCESS or false if the player is not registered, otherwise the current error
  */
 public function unregisterPlayer($player)
 {
     if ($player instanceof Player || $player instanceof OfflinePlayer) {
         if ($this->isPlayerRegistered($player->getName())) {
             $this->getServer()->getPluginManager()->callEvent($event = new Events\ServerAuthUnregisterEvent($player));
             if ($event->isCancelled()) {
                 return ServerAuth::CANCELLED;
             }
             if ($this->getDataProvider()) {
                 //Check MySQL connection
                 if ($this->getDatabase() && $this->getDatabase()->ping()) {
                     $query = "DELETE FROM " . $this->getDatabaseConfig()["table_prefix"] . "serverauthdata WHERE user='******'";
                     if ($this->getDatabase()->query($query)) {
                         //Restore default messages
                         ServerAuth::getAPI()->enableLoginMessages(true);
                         ServerAuth::getAPI()->enableRegisterMessages(true);
                         return ServerAuth::SUCCESS;
                     } else {
                         return ServerAuth::ERR_GENERIC;
                     }
                 } else {
                     return ServerAuth::ERR_GENERIC;
                 }
             } else {
                 @unlink($this->getDataFolder() . "users/" . strtolower($player->getName() . ".yml"));
                 //Restore default messages
                 ServerAuth::getAPI()->enableLoginMessages(true);
                 ServerAuth::getAPI()->enableRegisterMessages(true);
                 return ServerAuth::SUCCESS;
             }
         } else {
             return ServerAuth::ERR_USER_NOT_REGISTERED;
         }
     } else {
         return -1;
     }
 }
Example #2
0
 /**
  * Unregister a player
  * 
  * @param Player|OfflinePlayer $player
  * 
  * @return int|boolean true on SUCCESS or false if the player is not registered, otherwise the current error
  */
 public function unregisterPlayer($player)
 {
     $pname = $player;
     if ($player instanceof Player || $player instanceof OfflinePlayer) {
         $pname = $player->getName();
     }
     if ($this->isPlayerRegistered($pname)) {
         //Reset cancelled message
         $this->canc_message = $this->chlang["operation-cancelled"];
         $this->getServer()->getPluginManager()->callEvent($event = new Events\ServerAuthUnregisterEvent($player));
         if ($event->isCancelled()) {
             return ServerAuth::CANCELLED;
         }
         if ($this->getDataProvider()) {
             //Check MySQL connection
             if ($this->getDatabase() && $this->getDatabase()->ping()) {
                 $stmt = $this->getDatabase()->prepare("DELETE FROM " . $this->getDatabaseConfig()["table_prefix"] . "serverauthdata WHERE user=?");
                 $stmt_player = strtolower($pname);
                 $stmt->bind_param("s", $stmt_player);
                 if ($stmt->execute()) {
                     $stmt->close();
                     //Unset User from cache
                     if (isset($this->cached_registered_users[strtolower($pname)])) {
                         unset($this->cached_registered_users[strtolower($pname)]);
                     }
                     //Deauthenticate player
                     if ($player instanceof Player) {
                         ServerAuth::getAPI()->deauthenticatePlayer($player);
                     }
                     //Restore default messages
                     ServerAuth::getAPI()->enableLoginMessages(true);
                     ServerAuth::getAPI()->enableRegisterMessages(true);
                     return ServerAuth::SUCCESS;
                 } else {
                     $stmt->close();
                     return ServerAuth::ERR_GENERIC;
                 }
             } else {
                 return ServerAuth::ERR_GENERIC;
             }
         } else {
             @unlink($this->getDataFolder() . "users/" . strtolower($pname . ".yml"));
             //Unset User from cache
             if (isset($this->cached_registered_users[strtolower($pname)])) {
                 unset($this->cached_registered_users[strtolower($pname)]);
             }
             //Deauthenticate player
             if ($player instanceof Player) {
                 ServerAuth::getAPI()->deauthenticatePlayer($player);
             }
             //Restore default messages
             ServerAuth::getAPI()->enableLoginMessages(true);
             ServerAuth::getAPI()->enableRegisterMessages(true);
             return ServerAuth::SUCCESS;
         }
     } else {
         return ServerAuth::ERR_USER_NOT_REGISTERED;
     }
 }