X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodules%2FNeonHelp.mod%2Fbot_NeonHelp.c;h=1b7fefa9a3a41edcf96a483232f2fbe26f11eff6;hb=e480c2dd1f27977ec0d5b0f2730d3eeaf5984f92;hp=ac363007bdeb989d725bfa621a3e5ea008dce56f;hpb=d45311f417e3108b572425413b1da523c3817209;p=NeonServV5.git diff --git a/src/modules/NeonHelp.mod/bot_NeonHelp.c b/src/modules/NeonHelp.mod/bot_NeonHelp.c index ac36300..1b7fefa 100644 --- a/src/modules/NeonHelp.mod/bot_NeonHelp.c +++ b/src/modules/NeonHelp.mod/bot_NeonHelp.c @@ -58,9 +58,13 @@ static const struct default_language_entry msgtab[] = { {"NH_REQUESTS_HEADER_STATUS", "State"}, {"NH_REQUESTS_HEADER_NICK", "Nick"}, {"NH_REQUESTS_HEADER_TIME", "Time"}, + {"NH_REQUESTS_HEADER_STATUS", "State"}, + {"NH_REQUESTS_HEADER_AUTH", "Auth"}, + {"NH_REQUESTS_HEADER_MASK", "Mask"}, {"NH_REQUESTS_HEADER_REQUEST", "Question"}, {"NH_REQUESTS_STATE_ACTIVE", "active"}, {"NH_REQUESTS_STATE_PENDING", "pending"}, + {"NH_REQUESTS_STATE_CLOSED", "closed"}, {"NH_REQUESTS_STATE_ERROR", "ERROR"}, {"NH_STATS_HEADER_USER", "User"}, {"NH_STATS_HEADER_LAST_24H", "last 24h"}, @@ -395,7 +399,7 @@ static void neonhelp_event_chanmsg(struct UserNode *user, struct ChanNode *chan, } } -static void destroy_support_request(struct ClientSocket *client, struct NeonHelpNode *helpnode, int do_reply) { +void neonhelp_destroy_support_request(struct ClientSocket *client, struct NeonHelpNode *helpnode, int do_reply) { //write buffer to database char logbuff[MAXLEN * LOGBUFFERLINES]; int len = 0; @@ -443,12 +447,17 @@ static void neonhelp_event_kick(struct UserNode *user, struct ChanUser *target, support = getChanByName(row[0]); public = (row[1] ? getChanByName(row[1]) : NULL); if(target->chan == support || !((support && isUserOnChan(target->user, support)) || (public && isUserOnChan(target->user, public)))) { + if(helpnode->status == 1 && target->chan != support) { + putsock(client, "MODE %s -i", support->name); //clear invite list + if(isModeSet(support->modes, 'i')) + putsock(client, "MODE %s +i", support->name); + } //free the user's support request if(prev_helpnode) prev_helpnode->next = helpnode->next; else client->botclass_helpnode = helpnode->next; - destroy_support_request(client, helpnode, 1); + neonhelp_destroy_support_request(client, helpnode, 1); } } } @@ -480,12 +489,17 @@ static void neonhelp_event_part(struct ChanUser *target, char *reason) { support = getChanByName(row[0]); public = (row[1] ? getChanByName(row[1]) : NULL); if(target->chan == support || !((support && isUserOnChan(target->user, support)) || (public && isUserOnChan(target->user, public)))) { + if(helpnode->status == 1 && target->chan != support) { + putsock(client, "MODE %s -i", support->name); //clear invite list + if(isModeSet(support->modes, 'i')) + putsock(client, "MODE %s +i", support->name); + } //free the user's support request if(prev_helpnode) prev_helpnode->next = helpnode->next; else client->botclass_helpnode = helpnode->next; - destroy_support_request(client, helpnode, 1); + neonhelp_destroy_support_request(client, helpnode, 1); } } } @@ -513,7 +527,7 @@ static void neonhelp_event_quit(struct UserNode *target, char *reason) { prev_helpnode->next = helpnode->next; else client->botclass_helpnode = helpnode->next; - destroy_support_request(client, helpnode, 0); + neonhelp_destroy_support_request(client, helpnode, 0); } } }