added free functions to free everything (maybe a restart function later?)
[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_function *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 void free_modcmd();
37 struct ClientSocket* get_prefered_bot(int botid);
38 int register_command(int botid, char *name, cmd_bind_t *func);
39 int set_trigger_callback(int botid, trigger_callback_t *func);
40 int changeChannelTrigger(int botid, struct ChanNode *chan, char *new_trigger);
41 int bind_cmd_to_function(int botid, char *cmd, struct cmd_function *func);
42 int bind_cmd_to_command(int botid, char *cmd, char *func);
43 int unbind_cmd(int botid, char *cmd);
44
45 #endif