From 76fa6b24b4cc4304496414eeef836c5653c85902 Mon Sep 17 00:00:00 2001 From: MassCraziness Date: Tue, 27 Jan 2015 21:19:26 -0600 Subject: [PATCH] Update tab_supervisor.cpp --- cockatrice/src/tab_supervisor.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/tab_supervisor.cpp b/cockatrice/src/tab_supervisor.cpp index 166a766ab..f2b6046db 100644 --- a/cockatrice/src/tab_supervisor.cpp +++ b/cockatrice/src/tab_supervisor.cpp @@ -446,11 +446,27 @@ void TabSupervisor::processGameEventContainer(const GameEventContainer &cont) void TabSupervisor::processUserMessageEvent(const Event_UserMessage &event) { - TabMessage *tab = messageTabs.value(QString::fromStdString(event.sender_name())); + QString senderName = QString::fromStdString(event.sender_name()); + + UserListTWI *twi = tabUserLists->getAllUsersList()->getUsers().value(senderName); + + ServerInfo_User sendingUser; + + if (twi) + sendingUser = twi->getUserInfo(); + else + sendingUser.set_name(senderName.toStdString()); + + UserLevelFlags sendingUserLevel = UserLevelFlags(sendingUser.user_level()); + + if (settingsCache->getIgnoreUnregisteredUsers() && (!sendingUserLevel.testFlag(ServerInfo_User::IsUser) || !sendingUserLevel.testFlag(ServerInfo_User::IsRegistered) || !sendingUserLevel.testFlag(ServerInfo_User::IsModerator) || !sendingUserLevel.testFlag(ServerInfo_User::IsAdmin))) + return; + +TabMessage *tab = messageTabs.value(senderName); if (!tab) tab = messageTabs.value(QString::fromStdString(event.receiver_name())); if (!tab) - tab = addMessageTab(QString::fromStdString(event.sender_name()), false); + tab = addMessageTab(senderName, false); if (!tab) return; tab->processUserMessageEvent(event);