mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-07-10 16:23:13 +02:00
Add new moddata types: MODDATA_LOCALVAR and MODDATA_GLOBALVAR. Untested.
Code using it will soon follow (and then it will be tested :D)
This commit is contained in:
@@ -317,6 +317,8 @@
|
||||
#define MODDATA_MAX_CHANNEL 8
|
||||
#define MODDATA_MAX_MEMBER 4
|
||||
#define MODDATA_MAX_MEMBERSHIP 4
|
||||
#define MODDATA_MAX_LOCALVAR 500
|
||||
#define MODDATA_MAX_GLOBALVAR 500
|
||||
|
||||
/* If EXPERIMENTAL is #define'd then all users will receive a notice about
|
||||
* this when they connect, along with a pointer to bugs.unrealircd.org where
|
||||
|
||||
@@ -39,6 +39,8 @@ extern MODVAR Membership *freemembership;
|
||||
extern MODVAR MembershipL *freemembershipL;
|
||||
extern MODVAR aClient me;
|
||||
extern MODVAR aChannel *channel;
|
||||
extern MODVAR ModData localvar_moddata[MODDATA_MAX_LOCALVAR];
|
||||
extern MODVAR ModData globalvar_moddata[MODDATA_MAX_GLOBALVAR];
|
||||
extern MODVAR struct stats *ircstp;
|
||||
extern MODVAR int bootopt;
|
||||
extern MODVAR time_t timeofday;
|
||||
@@ -692,6 +694,8 @@ extern MODVAR void (*broadcast_sinfo)(aClient *acptr, aClient *to, aClient *exce
|
||||
extern MODVAR void (*parse_message_tags)(aClient *cptr, char **str, MessageTag **mtag_list);
|
||||
extern MODVAR char *(*mtags_to_string)(MessageTag *m, aClient *acptr);
|
||||
extern MODVAR int (*can_send)(aClient *cptr, aChannel *chptr, char **msgtext, char **errmsg, int notice);
|
||||
extern MODVAR void (*broadcast_md_globalvar)(ModDataInfo *mdi, ModData *md);
|
||||
extern MODVAR void (*broadcast_md_globalvar_cmd)(aClient *except, aClient *sender, char *varname, char *value);
|
||||
/* /Efuncs */
|
||||
|
||||
extern MODVAR aMotdFile opermotd, svsmotd, motd, botmotd, smotd, rules;
|
||||
|
||||
+5
-1
@@ -134,7 +134,7 @@ typedef struct {
|
||||
Module *owner; /**< Module that owns this snomask */
|
||||
} Snomask;
|
||||
|
||||
typedef enum ModDataType { MODDATATYPE_CLIENT=1, MODDATATYPE_CHANNEL=2, MODDATATYPE_MEMBER=3, MODDATATYPE_MEMBERSHIP=4 } ModDataType;
|
||||
typedef enum ModDataType { MODDATATYPE_LOCALVAR=1, MODDATATYPE_GLOBALVAR=2, MODDATATYPE_CLIENT=3, MODDATATYPE_CHANNEL=4, MODDATATYPE_MEMBER=5, MODDATATYPE_MEMBERSHIP=6 } ModDataType;
|
||||
|
||||
typedef struct _moddatainfo ModDataInfo;
|
||||
|
||||
@@ -155,6 +155,8 @@ struct _moddatainfo {
|
||||
#define moddata_channel(chptr, md) chptr->moddata[md->slot]
|
||||
#define moddata_member(m, md) m->moddata[md->slot]
|
||||
#define moddata_membership(m, md) m->moddata[md->slot]
|
||||
#define moddata_localvar(md) localvar_moddata[md->slot]
|
||||
#define moddata_globalvar(md) globalvar_moddata[md->slot]
|
||||
|
||||
#define EXCHK_ACCESS 0 /* Check access */
|
||||
#define EXCHK_ACCESS_ERR 1 /* Check access and send error if needed */
|
||||
@@ -1209,6 +1211,8 @@ _UNREAL_ERROR(_hook_error_incompatible, "Incompatible hook function. Check argum
|
||||
#define EFUNC_TKL_CHARTOTYPE 63
|
||||
#define EFUNC_TKL_TYPE_STRING 64
|
||||
#define EFUNC_CAN_SEND 65
|
||||
#define EFUNC_BROADCAST_MD_GLOBALVAR 66
|
||||
#define EFUNC_BROADCAST_MD_GLOBALVAR_CMD 67
|
||||
|
||||
/* Module flags */
|
||||
#define MODFLAG_NONE 0x0000
|
||||
|
||||
Reference in New Issue
Block a user