/* $ModDesc: Gives /cban, aka C:lines. Think Q:lines, for channels. */
-class CBan
+class CBan : public classbase
{
public:
irc::string chname;
{
this->source = "m_cban.so";
this->Srv = Me;
+ syntax = "<channel> [<duration> :<reason>]";
}
- void Handle(char **parameters, int pcnt, userrec *user)
+ void Handle(const char** parameters, int pcnt, userrec *user)
{
/* syntax: CBAN #channel time :reason goes here */
/* 'time' is a human-readable timestring, like 2d3h2s. */
List[I_OnUserPreJoin] = List[I_OnSyncOtherMetaData] = List[I_OnDecodeMetaData] = List[I_OnStats] = 1;
}
- virtual int OnStats(char symbol, userrec* user)
+ virtual int OnStats(char symbol, userrec* user, string_list &results)
{
ExpireBans();
for(cbanlist::iterator iter = cbans.begin(); iter != cbans.end(); iter++)
{
unsigned long remaining = (iter->set_on + iter->length) - TIME;
- WriteServ(user->fd, "210 %s %s %s %lu %lu %lu :%s", user->nick, iter->chname.c_str(), iter->set_by.c_str(), iter->set_on, iter->length, remaining, iter->reason.c_str());
+ results.push_back(Srv->GetServerName()+" 210 "+user->nick+" "+iter->chname.c_str()+" "+iter->set_by+" "+ConvToStr(iter->set_on)+" "+ConvToStr(iter->length)+" "+ConvToStr(remaining)+" :"+iter->reason);
}
}