diff options
| author | Adam <Adam@anope.org> | 2016-07-28 21:29:35 -0400 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2016-07-28 21:29:35 -0400 |
| commit | 0e758a2ac23dc4a001e8e126cec14588da9a9769 (patch) | |
| tree | 45df813323e023c5c89db7279426c4ad0943b4a9 /modules/chanserv/register.cpp | |
| parent | a3c8afae00c54d5b95c620248b51f90679d7d53f (diff) | |
Allow serializable fields to use storage in the respective objects.
Split service management code nito a proper servicemanager. Make service
references managed instead of lazy lookup. Also made events and
serializable use service manager instead of their respective systems for
management
Diffstat (limited to 'modules/chanserv/register.cpp')
| -rw-r--r-- | modules/chanserv/register.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/modules/chanserv/register.cpp b/modules/chanserv/register.cpp index eb2832074..f342ba43b 100644 --- a/modules/chanserv/register.cpp +++ b/modules/chanserv/register.cpp @@ -88,12 +88,19 @@ class CommandCSRegister : public Command return; } - if (!ChanServ::service) + ci = Serialize::New<ChanServ::Channel *>(); + if (ci == nullptr) return; - ci = ChanServ::channel.Create(); + ci->SetName(chan); ci->SetFounder(nc); ci->SetDesc(chdesc); + ci->SetTimeRegistered(Anope::CurTime); + ci->SetLastUsed(Anope::CurTime); + ci->SetBanType(2); + + ci->c = c; // XXX? this isnt set on reconstrubted objects? + c->ci = ci; if (c && !c->topic.empty()) { @@ -102,7 +109,9 @@ class CommandCSRegister : public Command ci->SetLastTopicTime(c->topic_time); } else + { ci->SetLastTopicSetter(source.service->nick); + } Log(LOG_COMMAND, source, this, ci); source.Reply(_("Channel \002{0}\002 registered under your account: \002{1}\002"), chan, nc->GetDisplay()); @@ -114,7 +123,7 @@ class CommandCSRegister : public Command if (u) c->SetCorrectModes(u, true); - Event::OnChanRegistered(&Event::ChanRegistered::OnChanRegistered, ci); + EventManager::Get()->Dispatch(&Event::ChanRegistered::OnChanRegistered, ci); } } |
