From 4a303da1d583ca8b66d4e7cd233cbe9ee996ee82 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Mon, 17 Jul 2023 07:29:56 +0100 Subject: Fix cloaking users too early in cloak_user. --- src/modules/m_cloak_user.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/modules') diff --git a/src/modules/m_cloak_user.cpp b/src/modules/m_cloak_user.cpp index d76b74a62..3204bec64 100644 --- a/src/modules/m_cloak_user.cpp +++ b/src/modules/m_cloak_user.cpp @@ -282,8 +282,8 @@ public: void OnAccountChange(User* user, const std::string& newaccount) override { LocalUser* luser = IS_LOCAL(user); - if (!luser || !cloakapi) - return; + if (!luser || luser->quitting || !luser->IsFullyConnected() || !cloakapi) + return; // User is uncloakable. if (cloakapi->IsActiveCloak(accountcloak) || cloakapi->IsActiveCloak(accountidcloak)) cloakapi->ResetCloaks(luser, true); @@ -292,14 +292,20 @@ public: void OnChangeRealUser(User* user, const std::string& newuser) override { LocalUser* luser = IS_LOCAL(user); - if (luser && cloakapi && cloakapi->IsActiveCloak(usernamecloak)) + if (!luser || luser->quitting || !luser->IsFullyConnected() || !cloakapi) + return; // User is uncloakable. + + if (cloakapi->IsActiveCloak(usernamecloak)) cloakapi->ResetCloaks(luser, true); } void OnUserPostNick(User* user, const std::string& oldnick) override { LocalUser* luser = IS_LOCAL(user); - if (luser && cloakapi && cloakapi->IsActiveCloak(nicknamecloak)) + if (!luser || luser->quitting || !luser->IsFullyConnected() || !cloakapi) + return; // User is uncloakable. + + if (cloakapi->IsActiveCloak(nicknamecloak)) cloakapi->ResetCloaks(luser, true); } }; -- cgit v1.3.1-10-gc9f91