- if(!strcmp(message, "modes")) {
- char modeBuf[MAXLEN];
- getModeString(chan, modeBuf);
- putsock(client, "PRIVMSG %s :Modes: %s", chan->name, modeBuf);
+ struct cmd_binding *cbind;
+ for(cbind = cmd_binds[bind_index]; cbind; cbind = cbind->next) {
+ if(cbind->botid == client->botid && strcmp(cbind->cmd, message) == 0) {
+ //parse the arguments...
+ char *arga[MAXNUMPARAMS];
+ char **argv;
+ int argc = 0;
+ if(args) {
+ while(*args) {
+ //skip leading spaces
+ while (*args == ' ')
+ *args++ = 0;
+ arga[argc++] = args;
+ if (argc >= MAXNUMPARAMS)
+ break;
+ while (*args != ' ' && *args)
+ args++;
+ }
+ }
+ argv = arga;
+ if(argc != 0 && argv[0][0] == '#') {
+ struct ChanNode *chan2 = getChanByName(argv[0]);
+ if(chan2) {
+ argv += 1;
+ argc -= 1;
+ chan = chan2;
+ }
+ }
+ cbind->func->func(client, user, chan, argv, argc);
+ return;
+ }