From aeded4708c515bcc255b2947e67f076855fead14 Mon Sep 17 00:00:00 2001 From: danieldg Date: Tue, 19 Jan 2010 04:43:19 +0000 Subject: Fix MOTD and RULES to work remotely (remove the old hacks for MOTD) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12301 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/users.cpp | 46 +++++++++------------------------------------- 1 file changed, 9 insertions(+), 37 deletions(-) (limited to 'src/users.cpp') diff --git a/src/users.cpp b/src/users.cpp index c2890f9f7..b9d454c8b 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -829,18 +829,21 @@ void LocalUser::FullConnect() ServerInstance->Config->Send005(this); this->WriteNumeric(RPL_YOURUUID, "%s %s :your unique ID", this->nick.c_str(), this->uuid.c_str()); - - this->ShowMOTD(); - /* Now registered */ if (ServerInstance->Users->unregistered_count) ServerInstance->Users->unregistered_count--; - /* Trigger LUSERS output, give modules a chance too */ + /* Trigger MOTD and LUSERS output, give modules a chance too */ ModResult MOD_RESULT; - std::string command("LUSERS"); + std::string command("MOTD"); std::vector parameters; - FIRST_MOD_RESULT(OnPreCommand, MOD_RESULT, (command, parameters, this, true, "LUSERS")); + FIRST_MOD_RESULT(OnPreCommand, MOD_RESULT, (command, parameters, this, true, command)); + if (!MOD_RESULT) + ServerInstance->CallCommandHandler(command, parameters, this); + + MOD_RESULT = MOD_RES_PASSTHRU; + command = "LUSERS"; + FIRST_MOD_RESULT(OnPreCommand, MOD_RESULT, (command, parameters, this, true, command)); if (!MOD_RESULT) ServerInstance->CallCommandHandler(command, parameters, this); @@ -1626,37 +1629,6 @@ void User::PurgeEmptyChannels() this->UnOper(); } -void User::ShowMOTD() -{ - if (!ServerInstance->Config->MOTD.size()) - { - this->WriteNumeric(ERR_NOMOTD, "%s :Message of the day file is missing.",this->nick.c_str()); - return; - } - this->WriteNumeric(RPL_MOTDSTART, "%s :%s message of the day", this->nick.c_str(), ServerInstance->Config->ServerName.c_str()); - - for (file_cache::iterator i = ServerInstance->Config->MOTD.begin(); i != ServerInstance->Config->MOTD.end(); i++) - this->WriteNumeric(RPL_MOTD, "%s :- %s",this->nick.c_str(),i->c_str()); - - this->WriteNumeric(RPL_ENDOFMOTD, "%s :End of message of the day.", this->nick.c_str()); -} - -void User::ShowRULES() -{ - if (!ServerInstance->Config->RULES.size()) - { - this->WriteNumeric(ERR_NORULES, "%s :RULES File is missing",this->nick.c_str()); - return; - } - - this->WriteNumeric(RPL_RULESTART, "%s :- %s Server Rules -",this->nick.c_str(),ServerInstance->Config->ServerName.c_str()); - - for (file_cache::iterator i = ServerInstance->Config->RULES.begin(); i != ServerInstance->Config->RULES.end(); i++) - this->WriteNumeric(RPL_RULES, "%s :- %s",this->nick.c_str(),i->c_str()); - - this->WriteNumeric(RPL_RULESEND, "%s :End of RULES command.",this->nick.c_str()); -} - const std::string& FakeUser::GetFullHost() { if (!ServerInstance->Config->HideWhoisServer.empty()) -- cgit v1.2.3