The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

ModuleDeaf Class Reference

Inheritance diagram for ModuleDeaf:

Inheritance graph
[legend]
Collaboration diagram for ModuleDeaf:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ModuleDeaf (InspIRCd *Me)
virtual void OnRehash (User *user, const std::string &)
 Called on rehash.
virtual int OnUserPreNotice (User *user, void *dest, int target_type, std::string &text, char status, CUList &exempt_list)
 Called whenever a user is about to NOTICE A user or a channel, before any processing is done.
virtual int OnUserPreMessage (User *user, void *dest, int target_type, std::string &text, char status, CUList &exempt_list)
 Called whenever a user is about to PRIVMSG A user or a channel, before any processing is done.
virtual void OnBuildExemptList (MessageType message_type, Channel *chan, User *sender, char status, CUList &exempt_list, const std::string &text)
 Called whenever the server wants to build the exemption list for a channel, but is not directly doing a PRIVMSG or NOTICE.
virtual void BuildDeafList (MessageType message_type, Channel *chan, User *sender, char status, const std::string &text, CUList &exempt_list)
virtual ~ModuleDeaf ()
virtual Version GetVersion ()
 Returns the version number of a Module.

Private Attributes

User_dm1
std::string deaf_bypasschars
std::string deaf_bypasschars_uline

Detailed Description

Definition at line 48 of file m_deaf.cpp.


Constructor & Destructor Documentation

ModuleDeaf::ModuleDeaf InspIRCd Me  )  [inline]
 

Definition at line 56 of file m_deaf.cpp.

References ModeParser::AddMode(), ModuleManager::Attach(), I_OnBuildExemptList, I_OnRehash, I_OnUserPreMessage, I_OnUserPreNotice, m1, InspIRCd::Modes, InspIRCd::Modules, OnRehash(), and Module::ServerInstance.

virtual ModuleDeaf::~ModuleDeaf  )  [inline, virtual]
 

Definition at line 160 of file m_deaf.cpp.

References ModeParser::DelMode(), m1, InspIRCd::Modes, and Module::ServerInstance.


Member Function Documentation

virtual void ModuleDeaf::BuildDeafList MessageType  message_type,
Channel chan,
User sender,
char  status,
const std::string text,
CUList exempt_list
[inline, virtual]
 

Definition at line 107 of file m_deaf.cpp.

References deaf_bypasschars, deaf_bypasschars_uline, Channel::GetAllPrefixChars(), Channel::GetUsers(), Module::ServerInstance, and InspIRCd::ULine().

Referenced by OnBuildExemptList(), OnUserPreMessage(), and OnUserPreNotice().

virtual Version ModuleDeaf::GetVersion  )  [inline, virtual]
 

Returns the version number of a Module.

The method should return a Version object with its version information assigned via Version::Version

Reimplemented from Module.

Definition at line 166 of file m_deaf.cpp.

References API_VERSION, VF_COMMON, and VF_VENDOR.

virtual void ModuleDeaf::OnBuildExemptList MessageType  message_type,
Channel chan,
User sender,
char  status,
CUList exempt_list,
const std::string text
[inline, virtual]
 

Called whenever the server wants to build the exemption list for a channel, but is not directly doing a PRIVMSG or NOTICE.

For example, the spanningtree protocol will call this event when passing a privmsg on (but not processing it directly).

Parameters:
message_type The message type, either MSG_PRIVMSG or MSG_NOTICE
chan The channel to build the exempt list of
sender The original sender of the PRIVMSG or NOTICE
status The status char to be used for the channel list
exempt_list The exempt list to be populated
text The original message text causing the exempt list to be built

Reimplemented from Module.

Definition at line 102 of file m_deaf.cpp.

References BuildDeafList().

virtual void ModuleDeaf::OnRehash User user,
const std::string
[inline, virtual]
 

Called on rehash.

This method is called prior to a /REHASH or when a SIGHUP is received from the operating system. You should use it to reload any files so that your module keeps in step with the rest of the application. If a parameter is given, the core has done nothing. The module receiving the event can decide if this parameter has any relevence to it.

Parameters:
user The user performing the rehash, if any -- if this is server initiated, the value of this variable will be NULL.
parameter The (optional) parameter given to REHASH from the user.

Reimplemented from Module.

Definition at line 69 of file m_deaf.cpp.

References conf, deaf_bypasschars, deaf_bypasschars_uline, ConfigReader::ReadValue(), and Module::ServerInstance.

Referenced by ModuleDeaf().

virtual int ModuleDeaf::OnUserPreMessage User user,
void *  dest,
int  target_type,
std::string text,
char  status,
CUList exempt_list
[inline, virtual]
 

Called whenever a user is about to PRIVMSG A user or a channel, before any processing is done.

Returning any nonzero value from this function stops the process immediately, causing no output to be sent to the user by the core. If you do this you must produce your own numerics, notices etc. This is useful for modules which may want to filter or redirect messages. target_type can be one of TYPE_USER or TYPE_CHANNEL. If the target_type value is a user, you must cast dest to a User* otherwise you must cast it to a Channel*, this is the details of where the message is destined to be sent.

Parameters:
user The user sending the message
dest The target of the message (Channel* or User*)
target_type The type of target (TYPE_USER or TYPE_CHANNEL)
text Changeable text being sent by the user
status The status being used, e.g. PRIVMSG #chan has status== '@', 0 to send to everyone.
exempt_list A list of users not to send to. For channel messages, this will usually contain just the sender. It will be ignored for private messages.
Returns:
1 to deny the NOTICE, 0 to allow it

Reimplemented from Module.

Definition at line 90 of file m_deaf.cpp.

References BuildDeafList(), MSG_PRIVMSG, and TYPE_CHANNEL.

virtual int ModuleDeaf::OnUserPreNotice User user,
void *  dest,
int  target_type,
std::string text,
char  status,
CUList exempt_list
[inline, virtual]
 

Called whenever a user is about to NOTICE A user or a channel, before any processing is done.

Returning any nonzero value from this function stops the process immediately, causing no output to be sent to the user by the core. If you do this you must produce your own numerics, notices etc. This is useful for modules which may want to filter or redirect messages. target_type can be one of TYPE_USER or TYPE_CHANNEL. If the target_type value is a user, you must cast dest to a User* otherwise you must cast it to a Channel*, this is the details of where the message is destined to be sent. You may alter the message text as you wish before relinquishing control to the next module in the chain, and if no other modules block the text this altered form of the text will be sent out to the user and possibly to other servers.

Parameters:
user The user sending the message
dest The target of the message (Channel* or User*)
target_type The type of target (TYPE_USER or TYPE_CHANNEL)
text Changeable text being sent by the user
status The status being used, e.g. PRIVMSG #chan has status== '@', 0 to send to everyone.
exempt_list A list of users not to send to. For channel notices, this will usually contain just the sender. It will be ignored for private notices.
Returns:
1 to deny the NOTICE, 0 to allow it

Reimplemented from Module.

Definition at line 78 of file m_deaf.cpp.

References BuildDeafList(), MSG_NOTICE, and TYPE_CHANNEL.


Member Data Documentation

std::string ModuleDeaf::deaf_bypasschars [private]
 

Definition at line 52 of file m_deaf.cpp.

Referenced by BuildDeafList(), and OnRehash().

std::string ModuleDeaf::deaf_bypasschars_uline [private]
 

Definition at line 53 of file m_deaf.cpp.

Referenced by BuildDeafList(), and OnRehash().

User_d* ModuleDeaf::m1 [private]
 

Definition at line 50 of file m_deaf.cpp.

Referenced by ModuleDeaf(), and ~ModuleDeaf().


The documentation for this class was generated from the following file: