X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=modcmd.h;h=940ab32a6d021e4aac83c8fc07405e6c2e5adae0;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=673f74c92716c9c1c1b2a3509b67539d843da911;hpb=2b73d006c66c0960e80ca4482a72ed27e8298121;p=NeonServV5.git diff --git a/modcmd.h b/modcmd.h index 673f74c..940ab32 100644 --- a/modcmd.h +++ b/modcmd.h @@ -2,17 +2,34 @@ #define _modcmd_h #include "main.h" +#define CMDFLAG_REQUIRE_CHAN 0x0001 +#define CMDFLAG_REQUIRE_AUTH 0x0002 +#define CMDFLAG_REQUIRE_GOD 0x0004 +#define CMDFLAG_CHECK_AUTH 0x0008 +#define CMDFLAG_REGISTERED_CHAN 0x0010 +#define CMDFLAG_OVERRIDE_GLOBAL_ACCESS 0x0020 +#define CMDFLAG_OVERRIDE_CHANNEL_ACCESS 0x0040 +#define CMDFLAG_CHAN_PARAM 0x0080 +#define CMDFLAG_LOG 0x0100 +#define CMDFLAG_OPLOG 0x0200 + struct ClientSocket; struct UserNode; struct ChanNode; +struct Event; -typedef void cmd_bind_t(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char **argv, char argc); +#define CMD_BIND(NAME) void NAME(UNUSED_ARG(struct ClientSocket *client), UNUSED_ARG(struct UserNode *user), UNUSED_ARG(struct ChanNode *chan), UNUSED_ARG(char **argv), UNUSED_ARG(char argc), UNUSED_ARG(struct Event *event)) +typedef void cmd_bind_t(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char **argv, char argc, struct Event *event); typedef void trigger_callback_t(struct ChanNode *chan, char *trigger); struct cmd_function { char *name; int botid; cmd_bind_t *func; + unsigned int flags; + int paramcount; + int global_access; + char *channel_access; struct cmd_function *next; }; @@ -21,6 +38,10 @@ struct cmd_binding { char *cmd; int botid; struct cmd_function *func; + unsigned int flags; + char *parameters; + int global_access; + char *channel_access; struct cmd_binding *next; }; @@ -33,12 +54,19 @@ struct trigger_cache { }; void init_modcmd(); -struct* ClientSocket get_prefered_bot(int botid); -int register_command(int botid, char *name, cmd_bind_t *func); +void free_modcmd(); +struct ClientSocket* get_prefered_bot(int botid); +int register_command(int botid, char *name, cmd_bind_t *func, int paramcount, char *channel_access, int global_access, unsigned int flags); int set_trigger_callback(int botid, trigger_callback_t *func); int changeChannelTrigger(int botid, struct ChanNode *chan, char *new_trigger); int bind_cmd_to_function(int botid, char *cmd, struct cmd_function *func); int bind_cmd_to_command(int botid, char *cmd, char *func); int unbind_cmd(int botid, char *cmd); +struct cmd_function *find_cmd_function(int botid, char *name); +struct ClientSocket *getTextBot(); +void bind_set_parameters(int botid, char *cmd, char *parameters); +void bind_set_global_access(int botid, char *cmd, int gaccess); +void bind_set_channel_access(int botid, char *cmd, char *chanaccess); +struct cmd_binding *find_cmd_binding(int botid, char *cmd); #endif \ No newline at end of file