pocketmine\Player::awardAchievement PHP Method

awardAchievement() public method

public awardAchievement ( string $achievementId ) : boolean
$achievementId string
return boolean
    public function awardAchievement($achievementId)
    {
        if (isset(Achievement::$list[$achievementId]) and !$this->hasAchievement($achievementId)) {
            foreach (Achievement::$list[$achievementId]["requires"] as $requirementId) {
                if (!$this->hasAchievement($requirementId)) {
                    return false;
                }
            }
            $this->server->getPluginManager()->callEvent($ev = new PlayerAchievementAwardedEvent($this, $achievementId));
            if (!$ev->isCancelled()) {
                $this->achievements[$achievementId] = true;
                Achievement::broadcast($this, $achievementId);
                return true;
            } else {
                return false;
            }
        }
        return false;
    }

Usage Example

 public function awardKills(Player $player, $vic, $kills)
 {
     if (!$this->enabled || !$kills) {
         return;
     }
     $player->awardAchievement("killer");
     if ($vic == "Player") {
         if ($kills >= 10) {
             $player->awardAchievement("kill10");
         }
         if ($kills >= 100) {
             $player->awardAchievement("kill100");
         }
         if ($kills >= 1000) {
             $player->awardAchievement("kill1000");
         }
     }
     $res = $this->owner->getRankings(1);
     if ($res !== null && $res[0]["player"] == strtolower($player->getName())) {
         // Achieved #1 ranking!
         $player->awardAchievement("ranked1");
     }
 }
All Usage Examples Of pocketmine\Player::awardAchievement
Player