summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/channels.h14
-rw-r--r--include/helperfuncs.h4
-rw-r--r--include/modules.h6
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*