#include "inspircd.h"
-/* $ModDesc: Provides channel history for a given number of lines */
-
struct HistoryItem
{
time_t ts;
{
HistoryMode m;
bool sendnotice;
+ UserModeReference botmode;
+ bool dobots;
public:
- ModuleChanHistory() : m(this)
+ ModuleChanHistory() : m(this), botmode(this, "bot")
{
}
{
ServerInstance->Modules->AddService(m);
ServerInstance->Modules->AddService(m.ext);
-
- Implementation eventlist[] = { I_OnPostJoin, I_OnUserMessage, I_OnRehash };
- ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
- OnRehash(NULL);
}
- void OnRehash(User*) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("chanhistory");
m.maxlines = tag->getInt("maxlines", 50);
sendnotice = tag->getBool("notice", true);
+ dobots = tag->getBool("bots", true);
}
void OnUserMessage(User* user, void* dest, int target_type, const std::string &text, char status, const CUList&, MessageType msgtype) CXX11_OVERRIDE
if (IS_REMOTE(memb->user))
return;
+ if (memb->user->IsModeSet(botmode) && !dobots)
+ return;
+
HistoryList* list = m.ext.get(memb->chan);
if (!list)
return;