Remove Achievement::broadcast(), remove cyclic dependency, inline code in Player

This commit is contained in:
Dylan K. Taylor 2019-07-19 18:47:18 +01:00
parent 3965c9419d
commit b4df1ac547
2 changed files with 6 additions and 27 deletions

View File

@ -23,10 +23,6 @@ declare(strict_types=1);
namespace pocketmine\player;
use pocketmine\lang\TranslationContainer;
use pocketmine\Server;
use pocketmine\utils\TextFormat;
/**
* Handles the achievement list and a bit more
*/
@ -107,28 +103,6 @@ abstract class Achievement{
];
/**
* @param Player $player
* @param string $achievementId
*
* @return bool
*/
public static function broadcast(Player $player, string $achievementId) : bool{
if(isset(Achievement::$list[$achievementId])){
$translation = new TranslationContainer("chat.type.achievement", [$player->getDisplayName(), TextFormat::GREEN . Achievement::$list[$achievementId]["name"] . TextFormat::RESET]);
if(Server::getInstance()->getConfigBool("announce-player-achievements", true)){
Server::getInstance()->broadcastMessage($translation);
}else{
$player->sendMessage($translation);
}
return true;
}
return false;
}
/**
* @param string $achievementId
* @param string $achievementName

View File

@ -1150,7 +1150,12 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
$ev->call();
if(!$ev->isCancelled()){
$this->achievements[$achievementId] = true;
Achievement::broadcast($this, $achievementId);
$translation = new TranslationContainer("chat.type.achievement", [$this->getDisplayName(), TextFormat::GREEN . Achievement::$list[$achievementId]["name"] . TextFormat::RESET]);
if($this->server->getConfigBool("announce-player-achievements", true)){
$this->server->broadcastMessage($translation);
}else{
$this->sendMessage($translation);
}
return true;
}else{