From b97c3a0cfdbd492f2dadb3a4fa5e8dc91d5eb80b Mon Sep 17 00:00:00 2001 From: Jackmcbarn Date: Tue, 24 Aug 2010 13:09:49 -0400 Subject: Recheck autoop lists upon account login --- src/modules/m_autoop.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/modules/m_autoop.cpp') diff --git a/src/modules/m_autoop.cpp b/src/modules/m_autoop.cpp index 48a89f0d5..9d648a88c 100644 --- a/src/modules/m_autoop.cpp +++ b/src/modules/m_autoop.cpp @@ -12,6 +12,7 @@ */ #include "inspircd.h" +#include "account.h" #include "opflags.h" #include "u_listmode.h" @@ -88,8 +89,8 @@ public: ServerInstance->Modules->AddService(mh); ServerInstance->AddCommand(&cmd); - Implementation list[] = { I_OnPostJoin }; - ServerInstance->Modules->Attach(list, this, 1); + Implementation list[] = { I_OnPostJoin, I_OnEvent }; + ServerInstance->Modules->Attach(list, this, 2); } void DoAutoop(Membership* memb) @@ -140,6 +141,17 @@ public: DoAutoop(memb); } + void OnEvent(Event& event) + { + if(event.id == "account_login"){ + AccountEvent& acct_event = static_cast(event); + if(!IS_LOCAL(acct_event.user)) return; + std::vector params; + for (UCListIter v = acct_event.user->chans.begin(); v != acct_event.user->chans.end(); ++v) + DoAutoop(&*v); + } + } + void ReadConfig(ConfigReadStatus&) { mh.DoRehash(); -- cgit v1.3.1-10-gc9f91