summaryrefslogtreecommitdiff
path: root/modules/nickserv
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-03-12 16:50:30 +0000
committerSadie Powell <sadie@witchery.services>2024-03-12 16:50:30 +0000
commitb8cd00b4122b7a243a2071268f2d395808782472 (patch)
tree4b821af9a8a9969a97f4ded5b995228937ac851d /modules/nickserv
parentb52e1b2b02c73195740ca836e21faeff281a36c2 (diff)
parentf4bd43e898e6ca415e22546f554e67139e62059e (diff)
Merge branch '2.0' into 2.1.
Diffstat (limited to 'modules/nickserv')
-rw-r--r--modules/nickserv/ns_suspend.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/modules/nickserv/ns_suspend.cpp b/modules/nickserv/ns_suspend.cpp
index 8ce2806ca..fc5b6758a 100644
--- a/modules/nickserv/ns_suspend.cpp
+++ b/modules/nickserv/ns_suspend.cpp
@@ -225,6 +225,12 @@ class NSSuspend final
return source.IsOper() || std::find(show.begin(), show.end(), what) != show.end();
}
+ void Expire(NickAlias *na)
+ {
+ suspend.Unset(na->nc);
+ Log(LOG_NORMAL, "nickserv/expire", Config->GetClient("NickServ")) << "Expiring suspend for " << na->nick;
+ }
+
public:
NSSuspend(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, VENDOR),
commandnssuspend(this), commandnsunsuspend(this), suspend(this, "NS_SUSPENDED"),
@@ -265,15 +271,10 @@ public:
expire = false;
- if (!s->expires)
- return;
-
- if (s->expires < Anope::CurTime)
+ if (!Anope::NoExpire && s->expires && s->expires < Anope::CurTime)
{
na->last_seen = Anope::CurTime;
- suspend.Unset(na->nc);
-
- Log(LOG_NORMAL, "nickserv/expire", Config->GetClient("NickServ")) << "Expiring suspend for " << na->nick;
+ Expire(na);
}
}
@@ -283,6 +284,12 @@ public:
if (!s)
return EVENT_CONTINUE;
+ if (!Anope::NoExpire && s->expires && s->expires < Anope::CurTime)
+ {
+ Expire(na);
+ return EVENT_CONTINUE;
+ }
+
u->SendMessage(Config->GetClient("NickServ"), NICK_X_SUSPENDED, u->nick.c_str());
return EVENT_STOP;
}