X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_services_account.cpp;h=26a53b4d7038eaabf881dcb124ca20d456e5840e;hb=76608ff23d515fbf5fcdbdc17b7f261339b2a276;hp=f84c9a378b75e36106d3e0674ae4d85554eb1919;hpb=db248e7d99636809a88f0ddb5ccf9a8034cbdf36;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index f84c9a378..26a53b4d7 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -104,17 +104,18 @@ class AChannel_M : public SimpleChannelModeHandler class AccountExtItemImpl : public AccountExtItem { + Events::ModuleEventProvider eventprov; + public: AccountExtItemImpl(Module* mod) - : AccountExtItem("accountname", mod) + : AccountExtItem("accountname", ExtensionItem::EXT_USER, mod) + , eventprov(mod, "event/account") { } void unserialize(SerializeFormat format, Extensible* container, const std::string& value) { - User* user = dynamic_cast(container); - if (!user) - return; + User* user = static_cast(container); StringExtItem::unserialize(format, container, value); if (!value.empty()) @@ -125,14 +126,10 @@ class AccountExtItemImpl : public AccountExtItem user->WriteNumeric(900, "%s %s :You are now logged in as %s", user->GetFullHost().c_str(), value.c_str(), value.c_str()); } - - AccountEvent(creator, user, value).Send(); - } - else - { - // Logged out - AccountEvent(creator, user, "").Send(); } + // If value is empty then logged out + + FOREACH_MOD_CUSTOM(eventprov, AccountEventListener, OnAccountChange, (user, value)); } }; @@ -148,6 +145,7 @@ class ModuleServicesAccount : public Module public: ModuleServicesAccount() : m1(this), m2(this), m3(this), m4(this), m5(this), accountname(this) + , checking_ban(false) { }