Added achievement.grant and achievement.broadcast handlers for more customization

This commit is contained in:
Shoghi Cervantes 2013-11-24 12:18:50 +01:00
parent 8e452831e1
commit 64f7a78329

View File

@ -98,11 +98,18 @@ class AchievementAPI{
} }
public static function broadcastAchievement(Player $player, $achievementId){ public static function broadcastAchievement(Player $player, $achievementId){
if(ServerAPI::request()->api->getProperty("announce-player-achievements") == true){ if(isset(self::$achievements[$achievementId])){
ServerAPI::request()->api->chat->broadcast($player->username." has just earned the achievement ".self::$achievements[$achievementId]["name"]); $result = ServerAPI::request()->api->dhandle("achievement.broadcast", array("player" => $player, "achievementId" => $achievementId));
}else{ if($result !== false and $result !== true){
$player->sendChat("You have just earned the achievement ".self::$achievements[$achievementId]["name"]); if(ServerAPI::request()->api->getProperty("announce-player-achievements") == true){
ServerAPI::request()->api->chat->broadcast($player->username." has just earned the achievement ".self::$achievements[$achievementId]["name"]);
}else{
$player->sendChat("You have just earned the achievement ".self::$achievements[$achievementId]["name"]);
}
}
return true;
} }
return false;
} }
public static function addAchievement($achievementId, $achievementName, array $requires = array()){ public static function addAchievement($achievementId, $achievementName, array $requires = array()){
@ -135,9 +142,13 @@ class AchievementAPI{
return false; return false;
} }
} }
$player->achievements[$achievementId] = true; if(ServerAPI::request()->api->dhandle("achievement.grant", array("player" => $player, "achievementId" => $achievementId)) !== false){
self::broadcastAchievement($player, $achievementId); $player->achievements[$achievementId] = true;
return true; self::broadcastAchievement($player, $achievementId);
return true;
}else{
return false;
}
} }
return false; return false;
} }