From 9d3e074d09bf2deff03afb22dc245c78789269df Mon Sep 17 00:00:00 2001 From: Martin Ambrus Date: Sat, 2 Dec 2017 17:03:25 +0100 Subject: [PATCH] fix: Multihunter and Support unread messages counter incorrect #398 --- GameEngine/Database.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/GameEngine/Database.php b/GameEngine/Database.php index 9aaa2f9e..a13da379 100755 --- a/GameEngine/Database.php +++ b/GameEngine/Database.php @@ -4018,9 +4018,18 @@ class MYSQLi_DB implements IDbConnection { function getUnreadMessagesCount($uid) { $uid = (int) $uid; - return mysqli_fetch_array(mysqli_query($this->dblink, ' - SELECT Count(*) as numUnread FROM '.TB_PREFIX.'mdata WHERE target = '.$uid.' AND viewed = 0' - ), MYSQLI_ASSOC)['numUnread']; + $ids = [$uid]; + + if (($this->getUserField($uid, 'access', 0) == ADMIN) && ADMIN_RECEIVE_SUPPORT_MESSAGES) { + $ids[] = 1; + } + + if ($this->getUserField($uid, 'access', 0) == MULTIHUNTER) { + $ids[] = 5; + } + + $q = 'SELECT Count(*) as numUnread FROM '.TB_PREFIX.'mdata WHERE target IN('.implode(', ', $ids).') AND viewed = 0'; + return mysqli_fetch_array(mysqli_query($this->dblink, $q), MYSQLI_ASSOC)['numUnread']; } // no need to cache this method