private function onNight(Game $game)
 {
     $nightMsg = ":crescent_moon: :zzz: The sun sets and the villagers go to sleep.";
     $this->sendMessageToChannel($game, $nightMsg);
     $wolves = $game->getPlayersOfRole(Role::WEREWOLF);
     $wolfMsg = ":crescent_moon: It is night and it is time to hunt. Type !kill #channel @player to make your choice. ";
     foreach ($wolves as $wolf) {
         $this->client->getDMByUserId($wolf->getId())->then(function (DirectMessageChannel $channel) use($wolfMsg) {
             $this->client->send($wolfMsg, $channel);
         });
     }
     $seerMsg = ":mag_right: Seer, select a player by saying !see #channel @username.";
     $seers = $game->getPlayersOfRole(Role::SEER);
     foreach ($seers as $seer) {
         $this->client->getDMByUserId($seer->getId())->then(function (DirectMessageChannel $channel) use($seerMsg) {
             $this->client->send($seerMsg, $channel);
         });
     }
     $bodyGuardMsg = ":muscle: Bodyguard, you may guard someone once per night. That player cannot be eliminated. Type !guard #channel @user";
     $bodyguards = $game->getPlayersOfRole(Role::BODYGUARD);
     foreach ($bodyguards as $bodyguard) {
         $this->client->getDMByUserId($bodyguard->getId())->then(function (DirectMessageChannel $channel) use($bodyGuardMsg) {
             $this->client->send($bodyGuardMsg, $channel);
         });
     }
 }
Exemple #2
0
 protected function sendMessageByDestName($message, $destinationName)
 {
     if ($destinationName[0] === '#') {
         $destinationName = substr($destinationName, 1);
         $this->client->getChannelByName($destinationName)->then(function (ChannelInterface $channel) use($message) {
             $this->client->send($message, $channel);
         });
     }
     if ($destinationName[0] === '@') {
         $destinationName = substr($destinationName, 1);
         $this->client->getUserByName($destinationName)->then(function (User $user) use($message) {
             $this->client->getDMByUser($user)->then(function (ChannelInterface $channel) use($message) {
                 $this->client->send($message, $channel);
             });
         });
     }
 }
 /**
  * Sends a message to a game.
  *
  * @param Game $game
  *   The game to send the message.
  *
  * @param $msg
  *   The message.
  */
 public function sendMessageToChannel($game, $msg)
 {
     $this->client->getChannelGroupOrDMByID($game->getId())->then(function (ChannelInterface $channel) use($msg) {
         $this->client->send($msg, $channel);
     });
 }