Move checks for whether a user is cloakable to {Get,Reset}Cloaks.

This commit is contained in:
Sadie Powell 2023-07-17 10:06:39 +01:00
parent 4a303da1d5
commit a909bf763a
2 changed files with 10 additions and 14 deletions

View File

@ -106,6 +106,9 @@ public:
Cloak::List* GetCloaks(LocalUser* user) override
{
if (user->quitting || !(user->connected & User::CONN_NICKUSER))
return nullptr; // This user isn't at a point where they can change their cloak.
if (!user->GetClass()->config->getBool("usecloak", true))
return nullptr;
@ -148,6 +151,9 @@ public:
void ResetCloaks(LocalUser* user, bool resetdisplay) override
{
if (user->quitting || !(user->connected & User::CONN_NICKUSER))
return; // This user isn't at a point where they can change their cloak.
const std::string oldcloak = GetFrontCloak(user);
ext.Unset(user);
@ -368,10 +374,6 @@ public:
void OnChangeRemoteAddress(LocalUser* user) override
{
// Connecting users are handled in OnUserConnect not here.
if (!user->IsFullyConnected() || user->quitting)
return;
// Remove the cloaks so we can generate new ones.
cloakapi.ResetCloaks(user, false);

View File

@ -282,8 +282,8 @@ public:
void OnAccountChange(User* user, const std::string& newaccount) override
{
LocalUser* luser = IS_LOCAL(user);
if (!luser || luser->quitting || !luser->IsFullyConnected() || !cloakapi)
return; // User is uncloakable.
if (!luser || !cloakapi)
return;
if (cloakapi->IsActiveCloak(accountcloak) || cloakapi->IsActiveCloak(accountidcloak))
cloakapi->ResetCloaks(luser, true);
@ -292,20 +292,14 @@ public:
void OnChangeRealUser(User* user, const std::string& newuser) override
{
LocalUser* luser = IS_LOCAL(user);
if (!luser || luser->quitting || !luser->IsFullyConnected() || !cloakapi)
return; // User is uncloakable.
if (cloakapi->IsActiveCloak(usernamecloak))
if (luser && cloakapi && cloakapi->IsActiveCloak(usernamecloak))
cloakapi->ResetCloaks(luser, true);
}
void OnUserPostNick(User* user, const std::string& oldnick) override
{
LocalUser* luser = IS_LOCAL(user);
if (!luser || luser->quitting || !luser->IsFullyConnected() || !cloakapi)
return; // User is uncloakable.
if (cloakapi->IsActiveCloak(nicknamecloak))
if (luser && cloakapi && cloakapi->IsActiveCloak(nicknamecloak))
cloakapi->ResetCloaks(luser, true);
}
};