]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands/cmd_motd.cpp
Resolve /STATS S conflict between SVSHOLD and SHUN
[user/henk/code/inspircd.git] / src / commands / cmd_motd.cpp
index 9468eb2f3500282a7c1900470854157d447ee279..91ba5459fcf5c1cf8a5c69b83b61bc5213908898 100644 (file)
@@ -45,16 +45,23 @@ CmdResult CommandMotd::Handle (const std::vector<std::string>& parameters, User
 {
        if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName)
                return CMD_SUCCESS;
-       if (!ServerInstance->Config->MOTD.size())
+
+       ConfigTag* tag = NULL;
+       if (IS_LOCAL(user))
+               tag = user->GetClass()->config;
+       std::string motd_name = tag->getString("motd", "motd");
+       ConfigFileCache::iterator motd = ServerInstance->Config->Files.find(motd_name);
+       if (motd == ServerInstance->Config->Files.end())
        {
                user->SendText(":%s %03d %s :Message of the day file is missing.",
                        ServerInstance->Config->ServerName.c_str(), ERR_NOMOTD, user->nick.c_str());
                return CMD_SUCCESS;
        }
+
        user->SendText(":%s %03d %s :%s message of the day", ServerInstance->Config->ServerName.c_str(),
                RPL_MOTDSTART, user->nick.c_str(), ServerInstance->Config->ServerName.c_str());
 
-       for (file_cache::iterator i = ServerInstance->Config->MOTD.begin(); i != ServerInstance->Config->MOTD.end(); i++)
+       for (file_cache::iterator i = motd->second.begin(); i != motd->second.end(); i++)
                user->SendText(":%s %03d %s :- %s", ServerInstance->Config->ServerName.c_str(), RPL_MOTD, user->nick.c_str(),i->c_str());
 
        user->SendText(":%s %03d %s :End of message of the day.", ServerInstance->Config->ServerName.c_str(), RPL_ENDOFMOTD, user->nick.c_str());