mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-21 17:15:09 -07:00
[Client] Add setting to ignore all private messages (#1250)
This commit is contained in:
parent
0f003eabf9
commit
dfa738ffcb
7 changed files with 41 additions and 0 deletions
|
|
@ -1277,7 +1277,22 @@ void TabSupervisor::processGameEventContainer(const GameEventContainer &cont)
|
|||
|
||||
void TabSupervisor::processUserMessageEvent(const Event_UserMessage &event)
|
||||
{
|
||||
// "Ignore all private messages" silences every PM, including messages to
|
||||
// already-open tabs — unlike the unregistered/non-buddy filters below,
|
||||
// which only apply when creating a new tab. Messages from moderators/admins
|
||||
// are exempt to ensure warnings still reach users.
|
||||
QString senderName = QString::fromStdString(event.sender_name());
|
||||
if (SettingsCache::instance().chat().getIgnoreAllPrivateMessages()) {
|
||||
const ServerInfo_User *onlineUserInfo = userListManager->getOnlineUser(senderName);
|
||||
if (onlineUserInfo) {
|
||||
const UserLevelFlags userLevel(onlineUserInfo->user_level());
|
||||
if (!userLevel.testFlag(ServerInfo_User::IsModerator) && !userLevel.testFlag(ServerInfo_User::IsAdmin)) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
TabMessage *tab = messageTabs.value(senderName);
|
||||
if (!tab) {
|
||||
tab = messageTabs.value(QString::fromStdString(event.receiver_name()));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue