+void chanrec::SetDefaultModes()
+{
+ irc::spacesepstream list(ServerInstance->Config->DefaultModes);
+ std::string modeseq = list.GetToken();
+ std::string parameter;
+ userrec* dummyuser = new userrec(ServerInstance);
+ dummyuser->SetFd(FD_MAGIC_NUMBER);
+
+ for (std::string::iterator n = modeseq.begin(); n != modeseq.end(); ++n)
+ {
+ ModeHandler* mode = ServerInstance->Modes->FindMode(*n, MODETYPE_CHANNEL);
+ if (mode)
+ {
+ if (mode->GetNumParams(true))
+ parameter = list.GetToken().c_str();
+ else
+ parameter.clear();
+
+ mode->OnModeChange(dummyuser, dummyuser, this, parameter, true);
+ }
+ }
+
+ delete dummyuser;
+}
+