mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-11 19:49:02 -04:00
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11701 e03df62e-2008-0410-955e-edbf42e46eb7
62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
/* +------------------------------------+
|
|
* | Inspire Internet Relay Chat Daemon |
|
|
* +------------------------------------+
|
|
*
|
|
* InspIRCd: (C) 2002-2009 InspIRCd Development Team
|
|
* See: http://wiki.inspircd.org/Credits
|
|
*
|
|
* This program is free but copyrighted software; see
|
|
* the file COPYING for details.
|
|
*
|
|
* ---------------------------------------------------
|
|
*/
|
|
|
|
#include "inspircd.h"
|
|
|
|
/* $ModDesc: Provides support for unreal-style umode +B */
|
|
|
|
/** Handles user mode +B
|
|
*/
|
|
class BotMode : public SimpleUserModeHandler
|
|
{
|
|
public:
|
|
BotMode(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Creator, 'B') { }
|
|
};
|
|
|
|
class ModuleBotMode : public Module
|
|
{
|
|
BotMode bm;
|
|
public:
|
|
ModuleBotMode(InspIRCd* Me)
|
|
: Module(Me), bm(Me, this)
|
|
{
|
|
if (!ServerInstance->Modes->AddMode(&bm))
|
|
throw ModuleException("Could not add new modes!");
|
|
Implementation eventlist[] = { I_OnWhois };
|
|
ServerInstance->Modules->Attach(eventlist, this, 1);
|
|
}
|
|
|
|
|
|
virtual ~ModuleBotMode()
|
|
{
|
|
ServerInstance->Modes->DelMode(&bm);
|
|
}
|
|
|
|
virtual Version GetVersion()
|
|
{
|
|
return Version("$Id$",VF_COMMON|VF_VENDOR,API_VERSION);
|
|
}
|
|
|
|
virtual void OnWhois(User* src, User* dst)
|
|
{
|
|
if (dst->IsModeSet('B'))
|
|
{
|
|
ServerInstance->SendWhoisLine(src, dst, 335, std::string(src->nick)+" "+std::string(dst->nick)+" :is a bot on "+ServerInstance->Config->Network);
|
|
}
|
|
}
|
|
|
|
};
|
|
|
|
|
|
MODULE_INIT(ModuleBotMode)
|