wrote modcmd bind system
[NeonServV5.git] / modcmd.h
1 #ifndef _modcmd_h
2 #define _modcmd_h
3 #include "main.h"
4
5 struct ClientSocket;
6 struct UserNode;
7 struct ChanNode;
8
9 typedef void cmd_bind_t(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char **argv, char argc);
10 typedef void trigger_callback_t(struct ChanNode *chan, char *trigger);
11
12 struct cmd_function {
13     char *name;
14     int botid;
15     cmd_bind_t *func;
16     
17     struct cmd_binding *next;
18 }
19
20 struct cmd_binding {
21     char *cmd;
22     int botid;
23     struct cmd_function *func;
24     
25     struct cmd_binding *next;
26 }
27
28 struct trigger_cache {
29     int botid;
30     char *trigger;
31     
32     struct trigger_cache *next;
33 }
34
35 void init_modcmd();
36 struct* ClientSocket get_prefered_bot(int botid);
37 int register_command(int botid, char *name, cmd_bind_t *func);
38 int set_trigger_callback(int botid, trigger_callback_t *func);
39 int changeChannelTrigger(int botid, struct ChanNode *chan, char *new_trigger);
40 int bind_cmd_to_function(int botid, char *cmd, struct cmd_function *func);
41 int bind_cmd_to_command(int botid, char *cmd, char *func);
42 int unbind_cmd(int botid, char *cmd);
43
44 #endif