protected function play()
 {
     \ManiaLive\Utilities\Logger::debug('play()');
     $this->matchMakingService->updateMatchState($this->matchId, Services\Match::PLAYING);
     Label::EraseAll();
     switch ($this->state) {
         case self::DECIDING:
             $ratios = array();
             $ratios[] = new Structures\VoteRatio('NextMap', -1.0);
             $ratios[] = new Structures\VoteRatio('JumpToMapIndex', -1.0);
             $this->connection->setCallVoteRatiosEx(false, $ratios);
             $this->connection->chatSendServerMessageToLanguage($this->dictionary->getChat(array(array('textId' => 'matchStarting', 'params' => array(static::PREFIX)))));
             break;
         case static::PLAYER_LEFT:
             $this->connection->chatSendServerMessageToLanguage(array(array('Lang' => 'fr', 'Text' => static::PREFIX . 'Le joueur est de retour.'), array('Lang' => 'en', 'Text' => static::PREFIX . 'Player is back.')));
             break;
         case static::WAITING_BACKUPS:
             $this->connection->chatSendServerMessageToLanguage(array(array('Lang' => 'fr', 'Text' => static::PREFIX . 'Les remplaçants sont connectés.'), array('Lang' => 'en', 'Text' => static::PREFIX . 'Substitutes are connected.')));
             break;
     }
     $this->changeState(self::PLAYING);
 }
 final function removeLabel($login = null)
 {
     if ($login) {
         Windows\Label::Erase($login);
     } else {
         Windows\Label::EraseAll();
     }
 }