diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/channels.h | 14 | ||||
-rw-r--r-- | include/helperfuncs.h | 4 | ||||
-rw-r--r-- | include/modules.h | 6 |
3 files changed, 19 insertions, 5 deletions
diff --git a/include/channels.h b/include/channels.h index dd6d3b585..2bf03d6b4 100644 --- a/include/channels.h +++ b/include/channels.h @@ -116,7 +116,10 @@ class chanrec : public Extensible * (chicken and egg scenario!) */ std::map<char*,char*> internal_userlist; - + std::map<char*,char*> internal_op_userlist; + std::map<char*,char*> internal_halfop_userlist; + std::map<char*,char*> internal_voice_userlist; + /** Channel topic. * If this is an empty string, no channel topic is set. */ @@ -199,6 +202,9 @@ class chanrec : public Extensible * as this is a very fast 32 or 64 bit integer comparison. */ void AddUser(char* castuser); + void AddOppedUser(char* castuser); + void AddHalfoppedUser(char* castuser); + void AddVoicedUser(char* castuser); /** Delete a user pointer to the internal reference list * @param castuser This should be a pointer to a userrec, casted to char* @@ -208,6 +214,9 @@ class chanrec : public Extensible * as this is a very fast 32 or 64 bit integer comparison. */ void DelUser(char* castuser); + void DelOppedUser(char* castuser); + void DelHalfoppedUser(char* castuser); + void DelVoicedUser(char* castuser); /** Obrain the internal reference list * The internal reference list contains a list of userrec* @@ -219,6 +228,9 @@ class chanrec : public Extensible * @return This function returns a vector of userrec pointers, each of which has been casted to char* to prevent circular references */ std::map<char*,char*> *GetUsers(); + std::map<char*,char*> *GetOppedUsers(); + std::map<char*,char*> *GetHalfoppedUsers(); + std::map<char*,char*> *GetVoicedUsers(); /** Creates a channel record and initialises it with default values */ diff --git a/include/helperfuncs.h b/include/helperfuncs.h index 238d8f437..aaf6cf7fa 100644 --- a/include/helperfuncs.h +++ b/include/helperfuncs.h @@ -37,7 +37,7 @@ void WriteTo(userrec *source, userrec *dest,char *data, ...); void WriteChannel(chanrec* Ptr, userrec* user, char* text, ...); void WriteChannelLocal(chanrec* Ptr, userrec* user, char* text, ...); void WriteChannelWithServ(char* ServName, chanrec* Ptr, char* text, ...); -void ChanExceptSender(chanrec* Ptr, userrec* user, char* text, ...); +void ChanExceptSender(chanrec* Ptr, userrec* user, char status, char* text, ...); void Write_NoFormat(int sock,const char *text); void WriteServ_NoFormat(int sock, const char* text); @@ -46,7 +46,7 @@ void WriteTo_NoFormat(userrec *source, userrec *dest,const char *data); void WriteChannel_NoFormat(chanrec* Ptr, userrec* user, const char* text); void WriteChannelLocal_NoFormat(chanrec* Ptr, userrec* user, const char* text); void WriteChannelWithServ_NoFormat(char* ServName, chanrec* Ptr, const char* text); -void ChanExceptSender_NoFormat(chanrec* Ptr, userrec* user, const char* text); +void ChanExceptSender_NoFormat(chanrec* Ptr, char status, userrec* user, const char* text); void WriteCommon_NoFormat(userrec *u, const char* text); void WriteCommonExcept_NoFormat(userrec *u, const char* text); diff --git a/include/modules.h b/include/modules.h index 7b4cb4585..12df69a21 100644 --- a/include/modules.h +++ b/include/modules.h @@ -585,8 +585,9 @@ class Module : public classbase * @param dest The target of the message * @param target_type The type of target (TYPE_USER or TYPE_CHANNEL) * @param text the text being sent by the user + * @param status The status being used, e.g. PRIVMSG @#chan has status== '@', 0 to send to everyone. */ - virtual void OnUserMessage(userrec* user, void* dest, int target_type, std::string text); + virtual void OnUserMessage(userrec* user, void* dest, int target_type, std::string text, char status); /** Called after any NOTICE sent from a user. * The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec* @@ -595,8 +596,9 @@ class Module : public classbase * @param dest The target of the message * @param target_type The type of target (TYPE_USER or TYPE_CHANNEL) * @param text the text being sent by the user + * @param status The status being used, e.g. NOTICE @#chan has status== '@', 0 to send to everyone. */ - virtual void OnUserNotice(userrec* user, void* dest, int target_type, std::string text); + virtual void OnUserNotice(userrec* user, void* dest, int target_type, std::string text, char status); /** Called after every MODE command sent from a user * The dest variable contains a userrec* if target_type is TYPE_USER and a chanrec* |