1 /* +------------------------------------+
2 * | Inspire Internet Relay Chat Daemon |
3 * +------------------------------------+
5 * InspIRCd: (C) 2002-2010 InspIRCd Development Team
6 * See: http://wiki.inspircd.org/Credits
8 * This program is free but copyrighted software; see
9 * the file COPYING for details.
11 * ---------------------------------------------------
16 static FileReader *quotes = NULL;
21 /* $ModDesc: Provides random Quotes on Connect. */
25 class CommandRandquote : public Command
28 CommandRandquote(Module* Creator) : Command(Creator,"RANDQUOTE", 0)
32 CmdResult Handle (const std::vector<std::string>& parameters, User *user)
37 fsize = quotes->FileSize();
38 str = quotes->GetLine(ServerInstance->GenRandomInt(fsize));
39 user->WriteServ("NOTICE %s :%s%s%s",user->nick.c_str(),prefix.c_str(),str.c_str(),suffix.c_str());
45 class ModuleRandQuote : public Module
57 ConfigTag* conf = ServerInstance->Config->ConfValue("randquote");
59 std::string q_file = conf->getString("file","quotes");
60 prefix = conf->getString("prefix");
61 suffix = conf->getString("suffix");
63 quotes = new FileReader(q_file);
64 if (!quotes->Exists())
66 throw ModuleException("m_randquote: QuoteFile not Found!! Please check your config - module will not function.");
68 ServerInstance->AddCommand(&cmd);
69 Implementation eventlist[] = { I_OnUserConnect };
70 ServerInstance->Modules->Attach(eventlist, this, 1);
74 virtual ~ModuleRandQuote()
79 virtual Version GetVersion()
81 return Version("Provides random Quotes on Connect.",VF_VENDOR);
84 virtual void OnUserConnect(LocalUser* user)
86 cmd.Handle(std::vector<std::string>(), user);
90 MODULE_INIT(ModuleRandQuote)