Пример #1
0
 /**
  * @param string $achievementId
  *
  * @return bool
  */
 public function awardAchievement($achievementId)
 {
     if (isset(Achievement::$list[$achievementId]) and !$this->hasAchievement($achievementId)) {
         foreach (Achievement::$list[$achievementId]["requires"] as $requerimentId) {
             if (!$this->hasAchievement($requerimentId)) {
                 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;
 }