#include "inspircd.h"
-/* $ModDesc: Provides channel history for a given number of lines */
-
struct HistoryItem
{
time_t ts;
{
ext.set(channel, new HistoryList(len, time));
}
- channel->SetModeParam('H', parameter);
}
else
{
- if (!channel->IsModeSet('H'))
+ if (!channel->IsModeSet(this))
return MODEACTION_DENY;
ext.unset(channel);
- channel->SetModeParam('H', "");
}
return MODEACTION_ALLOW;
}
{
}
- void init()
+ void init() CXX11_OVERRIDE
{
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*)
+ void OnRehash(User*) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("chanhistory");
m.maxlines = tag->getInt("maxlines", 50);
sendnotice = tag->getBool("notice", true);
}
- void OnUserMessage(User* user, void* dest, int target_type, const std::string &text, char status, const CUList&)
+ void OnUserMessage(User* user, void* dest, int target_type, const std::string &text, char status, const CUList&, MessageType msgtype) CXX11_OVERRIDE
{
- if (target_type == TYPE_CHANNEL && status == 0)
+ if ((target_type == TYPE_CHANNEL) && (status == 0) && (msgtype == MSG_PRIVMSG))
{
Channel* c = (Channel*)dest;
HistoryList* list = m.ext.get(c);
}
}
- void OnPostJoin(Membership* memb)
+ void OnPostJoin(Membership* memb) CXX11_OVERRIDE
{
if (IS_REMOTE(memb->user))
return;
}
}
- Version GetVersion()
+ Version GetVersion() CXX11_OVERRIDE
{
return Version("Provides channel history replayed on join", VF_VENDOR);
}