summaryrefslogtreecommitdiff
path: root/src/modes.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2016-07-28 21:29:35 -0400
committerAdam <Adam@anope.org>2016-07-28 21:29:35 -0400
commit0e758a2ac23dc4a001e8e126cec14588da9a9769 (patch)
tree45df813323e023c5c89db7279426c4ad0943b4a9 /src/modes.cpp
parenta3c8afae00c54d5b95c620248b51f90679d7d53f (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 'src/modes.cpp')
-rw-r--r--src/modes.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/modes.cpp b/src/modes.cpp
index cb70d7102..aae3d3f21 100644
--- a/src/modes.cpp
+++ b/src/modes.cpp
@@ -148,8 +148,7 @@ ChannelMode::ChannelMode(const Anope::string &cm, char mch) : Mode(cm, MC_CHANNE
bool ChannelMode::CanSet(User *u) const
{
- EventReturn MOD_RESULT;
- MOD_RESULT = Event::OnCanSet(&Event::CanSet::OnCanSet, u, this);
+ EventReturn MOD_RESULT = EventManager::Get()->Dispatch(&Event::CanSet::OnCanSet, u, this);
return MOD_RESULT != EVENT_STOP;
}
@@ -391,7 +390,7 @@ bool ModeManager::AddUserMode(UserMode *um)
UserModes.push_back(um);
- Event::OnUserModeAdd(&Event::UserModeAdd::OnUserModeAdd, um);
+ EventManager::Get()->Dispatch(&Event::UserModeAdd::OnUserModeAdd, um);
return true;
}
@@ -426,7 +425,7 @@ bool ModeManager::AddChannelMode(ChannelMode *cm)
ChannelModes.push_back(cm);
- Event::OnChannelModeAdd(&Event::ChannelModeAdd::OnChannelModeAdd, cm);
+ EventManager::Get()->Dispatch(&Event::ChannelModeAdd::OnChannelModeAdd, cm);
for (unsigned int i = 0; i < ChannelModes.size(); ++i)
ChannelModes[i]->Check();
@@ -716,16 +715,20 @@ void ModeManager::StackerDel(Mode *m)
void ModeManager::Apply(Configuration::Conf *old)
{
- /* XXX remove old modes */
+#warning "remove old modes"
for (Configuration::Channelmode &cm : Config->Channelmodes)
{
ChannelMode *mode;
- if (cm.character)
- Log(LOG_DEBUG) << "Creating channelmode " << cm.name << " (" << cm.character << ")";
+ if (cm.list)
+ Log(LOG_DEBUG) << "Creating channelmode list " << cm.name << " (" << cm.character << ")";
+ else if (cm.status)
+ Log(LOG_DEBUG) << "Creating channelmode status " << cm.name << " (" << cm.character << ")";
+ else if (cm.param)
+ Log(LOG_DEBUG) << "Creating channelmode param " << cm.name << " (" << cm.character << ")";
else
- Log(LOG_DEBUG) << "Creating channelmode " << cm.name;
+ Log(LOG_DEBUG) << "Creating channelmode " << cm.name << " (" << cm.character << ")";
if (cm.list)
mode = new ChannelModeList(cm.name, cm.character);