X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodules%2Fglobal.mod%2Fcmd_global_modcmd.c;h=c1066ec1c30c74282ec6f81df075699f52e1e4da;hb=c5f46740e0362d66c6ae976300d2e039474fa3e5;hp=16b8dc1b0e56743f56d38936c2ddeed7f9c540cb;hpb=689da1db7e2517c187ce76c6c553e20d630a7f36;p=NeonServV5.git diff --git a/src/modules/global.mod/cmd_global_modcmd.c b/src/modules/global.mod/cmd_global_modcmd.c index 16b8dc1..c1066ec 100644 --- a/src/modules/global.mod/cmd_global_modcmd.c +++ b/src/modules/global.mod/cmd_global_modcmd.c @@ -1,4 +1,4 @@ -/* cmd_global_modcmd.c - NeonServ v5.4 +/* cmd_global_modcmd.c - NeonServ v5.6 * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -23,17 +23,17 @@ * argv[2] value */ -static int global_cmd_modcmd_params(struct UserNode *user, struct cmd_binding *cbind, char *value); -static int global_cmd_modcmd_flags(struct UserNode *user, struct cmd_binding *cbind, char *value); -static int global_cmd_modcmd_caccess(struct UserNode *user, struct cmd_binding *cbind, char *value); -static int global_cmd_modcmd_oaccess(struct UserNode *user, struct cmd_binding *cbind, char *value); +static int global_cmd_modcmd_params(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value); +static int global_cmd_modcmd_flags(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value); +static int global_cmd_modcmd_caccess(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value); +static int global_cmd_modcmd_oaccess(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value); CMD_BIND(global_cmd_modcmd) { MYSQL_RES *res; MYSQL_ROW row; struct cmd_binding *cbind = find_botwise_cmd_binding(client->botid, client->clientid, argv[0]); if (!cbind) { - reply(getTextBot(), user, "NS_UNBIND_NOT_FOUND", argv[0]); + reply(textclient, user, "NS_UNBIND_NOT_FOUND", argv[0]); return; } int uaccess = 0; @@ -44,7 +44,7 @@ CMD_BIND(global_cmd_modcmd) { } int gaccess = ((cbind->flags & CMDFLAG_OVERRIDE_GLOBAL_ACCESS) ? cbind->global_access : cbind->func->global_access); if(gaccess > uaccess) { - reply(getTextBot(), user, "NS_MODCMD_OUTRANKED", cbind->cmd, gaccess); + reply(textclient, user, "NS_MODCMD_OUTRANKED", cbind->cmd, gaccess); return; } if(argc > 1) { @@ -54,26 +54,26 @@ CMD_BIND(global_cmd_modcmd) { } else value = NULL; int log_event = 0; - if(!stricmp(argv[1], "caccess")) log_event = global_cmd_modcmd_caccess(user, cbind, value); - else if(!stricmp(argv[1], "oaccess")) log_event = global_cmd_modcmd_oaccess(user, cbind, value); - else if(!stricmp(argv[1], "parameters")) log_event = global_cmd_modcmd_params(user, cbind, value); - else if(!stricmp(argv[1], "flags")) log_event = global_cmd_modcmd_flags(user, cbind, value); + if(!stricmp(argv[1], "caccess")) log_event = global_cmd_modcmd_caccess(textclient, user, cbind, value); + else if(!stricmp(argv[1], "oaccess")) log_event = global_cmd_modcmd_oaccess(textclient, user, cbind, value); + else if(!stricmp(argv[1], "parameters")) log_event = global_cmd_modcmd_params(textclient, user, cbind, value); + else if(!stricmp(argv[1], "flags")) log_event = global_cmd_modcmd_flags(textclient, user, cbind, value); else { - reply(getTextBot(), user, "NS_MODCMD_SETTING", argv[1]); + reply(textclient, user, "NS_MODCMD_SETTING", argv[1]); } if(log_event) { logEvent(event); } } else { - reply(getTextBot(), user, "NS_MODCMD_HEADER", cbind->cmd); - global_cmd_modcmd_params(user, cbind, NULL); - global_cmd_modcmd_caccess(user, cbind, NULL); - global_cmd_modcmd_oaccess(user, cbind, NULL); - global_cmd_modcmd_flags(user, cbind, NULL); + reply(textclient, user, "NS_MODCMD_HEADER", cbind->cmd); + global_cmd_modcmd_params(textclient, user, cbind, NULL); + global_cmd_modcmd_caccess(textclient, user, cbind, NULL); + global_cmd_modcmd_oaccess(textclient, user, cbind, NULL); + global_cmd_modcmd_flags(textclient, user, cbind, NULL); } } -static int global_cmd_modcmd_params(struct UserNode *user, struct cmd_binding *cbind, char *value) { +static int global_cmd_modcmd_params(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value) { char parameters[MAXLEN]; int ret = 0; if(cbind->paramcount) { @@ -94,7 +94,7 @@ static int global_cmd_modcmd_params(struct UserNode *user, struct cmd_binding *c strcpy(parameters, (value ? value : "")); ret = 1; } - reply(getTextBot(), user, "\002PARAMETERS \002 %s", parameters); + reply(textclient, user, "\002PARAMETERS \002 %s", parameters); return ret; } @@ -113,10 +113,11 @@ static const struct { {"FUNCMD", CMDFLAG_FUNCMD}, {"ESCAPED_ARGS", CMDFLAG_ESCAPE_ARGS}, //allows arguments to be escaped ("a\ b" = "a b" as one argument) {"NO_CROSSCHAN", CMDFLAG_NO_CROSSCHAN}, + {"SUB_LINKER", CMDFLAG_SUB_LINKER}, //adds a "quiet" subcommand linker with the binding function as default {NULL, 0} }; -static int global_cmd_modcmd_flags(struct UserNode *user, struct cmd_binding *cbind, char *value) { +static int global_cmd_modcmd_flags(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value) { char flags[MAXLEN]; int flagpos = 0; int ret = 0; @@ -151,7 +152,7 @@ static int global_cmd_modcmd_flags(struct UserNode *user, struct cmd_binding *cb } } if(cbind->func->flags & current_flag) { - reply(getTextBot(), user, "NS_MODCMD_STATIC_FLAG"); + reply(textclient, user, "NS_MODCMD_STATIC_FLAG"); return 0; } if(add) @@ -172,11 +173,11 @@ static int global_cmd_modcmd_flags(struct UserNode *user, struct cmd_binding *cb i++; } flags[flagpos] = '\0'; - reply(getTextBot(), user, "\002FLAGS \002 %s", flags); + reply(textclient, user, "\002FLAGS \002 %s", flags); return ret; } -static int global_cmd_modcmd_caccess(struct UserNode *user, struct cmd_binding *cbind, char *value) { +static int global_cmd_modcmd_caccess(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value) { char caccess[MAXLEN]; int ret = 0; if(value) { @@ -194,11 +195,11 @@ static int global_cmd_modcmd_caccess(struct UserNode *user, struct cmd_binding * sprintf(caccess, "%s", cbind->channel_access); else sprintf(caccess, "\00314%s\003", (cbind->func->channel_access ? cbind->func->channel_access : "0")); - reply(getTextBot(), user, "\002CACCESS \002 %s", caccess); + reply(textclient, user, "\002CACCESS \002 %s", caccess); return ret; } -static int global_cmd_modcmd_oaccess(struct UserNode *user, struct cmd_binding *cbind, char *value) { +static int global_cmd_modcmd_oaccess(struct ClientSocket *textclient, struct UserNode *user, struct cmd_binding *cbind, char *value) { char oaccess[MAXLEN]; int ret = 0; if(value) { @@ -216,7 +217,7 @@ static int global_cmd_modcmd_oaccess(struct UserNode *user, struct cmd_binding * sprintf(oaccess, "%d", cbind->global_access); else sprintf(oaccess, "\00314%d\003", (cbind->func->global_access ? cbind->func->global_access : 0)); - reply(getTextBot(), user, "\002OACCESS \002 %s", oaccess); + reply(textclient, user, "\002OACCESS \002 %s", oaccess); return ret; }