Пример #1
0
 private function losePopularity()
 {
     $this->out .= "\n" . emoji(0x1f465) . " Sickening groans surround you, as corpses rise from the earth. ";
     $Vote = new Vote($this->db);
     $DbUser = new User($this->db);
     $users_in_chat = $DbUser->getAllUsersInChat($this->Message->Chat->id);
     foreach ($users_in_chat as $user) {
         if ($user->user_id != $this->Message->User->user_id) {
             $userVote = new UserVote();
             $userVote->construct($user, $this->Message->User, new VoteType(VoteType::Down));
             $Vote->SQL->update_vote($userVote);
         }
     }
     $this->out .= "\n*" . $this->Message->User->getName() . "*, you become very unpopular. ";
 }
Пример #2
0
 private function performVote()
 {
     if (isset($this->chat)) {
         $user = Query::getUserMatchingStringOrErrorMessage($this->db, $this->chat, $this->getParam(0));
     } else {
         $user = Query::getUserMatchingStringOrErrorMessage($this->db, $this->Message->Chat, $this->getParam(0));
     }
     if (is_string($user)) {
         return $user;
     }
     if (strcasecmp($this->getParam(0), BOT_FRIENDLY_NAME) === 0) {
         return "wow, thx brah! " . emoji(0x1f618);
     }
     if (!$user) {
         return emoji(0x1f44e) . " Can't find that user, brah";
     }
     if ($user->user_id == $this->Message->User->user_id) {
         return emoji(0x1f44e) . " You can't vote for yourself!";
     }
     switch ($this->getParam(1)) {
         case 'up':
             $voteType = new VoteType(VoteType::Up);
             break;
         case 'down':
             $voteType = new VoteType(VoteType::Down);
             break;
         case 'neutral':
             $voteType = new VoteType(VoteType::Neutral);
             break;
         default:
             return emoji(0x1f44e) . " Your vote must be either *up*, *down* or *neutral*.";
     }
     $DbUser = new \GroupBot\Database\User($this->db);
     $voted_for = $DbUser->getUserFromId($user->user_id);
     $userVote = new UserVote();
     $userVote->construct($this->Message->User, $voted_for, $voteType);
     $Vote = new \GroupBot\Brains\Vote\Vote($this->db);
     if ($Vote->SQL->check_if_vote_exists($userVote)) {
         $this->vote_cast = true;
         return emoji(0x1f528) . " Vote unchanged - you've voted this way before!";
     }
     $Vote->SQL->update_vote($userVote);
     $this->vote_cast = true;
     $rank = $Vote->getVoteTotalForUserInChat($userVote->voted_for, $this->Message->Chat->id);
     $vote_prefix = $rank > 0 ? "+" : "";
     return emoji(0x1f528) . " Vote updated. *" . $userVote->voted_for->getName() . "* is now on *{$vote_prefix}{$rank}*";
 }