X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodules%2FNeonHelp.mod%2Fcmd_neonhelp_delete.c;h=dff6aa60300a3649239a98dca86255423345d884;hb=78e040af3fcc36ab684611c0f98b4381ff420878;hp=c20577e08fdf686e5ff884a4425d8c038a47137d;hpb=689da1db7e2517c187ce76c6c553e20d630a7f36;p=NeonServV5.git diff --git a/src/modules/NeonHelp.mod/cmd_neonhelp_delete.c b/src/modules/NeonHelp.mod/cmd_neonhelp_delete.c index c20577e..dff6aa6 100644 --- a/src/modules/NeonHelp.mod/cmd_neonhelp_delete.c +++ b/src/modules/NeonHelp.mod/cmd_neonhelp_delete.c @@ -1,4 +1,4 @@ -/* cmd_neonhelp_delete.c - NeonServ v5.4 +/* cmd_neonhelp_delete.c - NeonServ v5.5 * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -53,31 +53,44 @@ CMD_BIND(neonhelp_cmd_delete) { } } if(!caccess) { - reply(getTextBot(), user, "MODCMD_ACCESS_DENIED"); + reply(textclient, user, "MODCMD_ACCESS_DENIED"); return; } if(!(client->flags & SOCKET_HAVE_HELPNODE) || client->botclass_helpnode == NULL) { - reply(getTextBot(), user, "NH_NEXT_NONE"); + reply(textclient, user, "NH_NEXT_NONE"); return; } - struct NeonHelpNode *helpnode, *next_helpnode = NULL, *prev_helpnode = NULL; + struct NeonHelpNode *helpnode, *prev_helpnode = NULL; for(helpnode = client->botclass_helpnode; helpnode; helpnode = helpnode->next) { - if(atoi(argv[0]) == helpnode->suppid) { - next_helpnode = helpnode; + if(atoi(argv[0]) == helpnode->suppid) break; - } else + else prev_helpnode = helpnode; } - if(!next_helpnode) { - reply(getTextBot(), user, "NH_NEXT_NOT_FOUND"); + if(!helpnode) { + reply(textclient, user, "NH_NEXT_NOT_FOUND"); return; } - reply(client, next_helpnode->user, "NH_DELETED", next_helpnode->suppid); - printf_mysql_query("UPDATE `helpserv_requests` SET `status` = '2' WHERE `id` = '%d'", next_helpnode->suppid); + if(helpnode->status == 1) { + struct ChanNode *support, *public; + support = getChanByName(row[0]); + public = (row[1] ? getChanByName(row[1]) : NULL); + if(isUserOnChan(helpnode->user, support)) { + if(public) + putsock(client, "KICK %s %s :your request has been closed", support->name, helpnode->user->nick); + else + putsock(client, "MODE %s -v %s", support->name, helpnode->user->nick); + } else { + putsock(client, "MODE %s -i", support->name); //clear invite list + if(isModeSet(support->modes, 'i')) + putsock(client, "MODE %s +i", support->name); + neonhelp_invite_active_requests(client, support, public, helpnode->user); + } + } if(prev_helpnode) - prev_helpnode->next = next_helpnode->next; + prev_helpnode->next = helpnode->next; else - client->botclass_helpnode = next_helpnode->next; - reply(getTextBot(), user, "NH_DELETED_STAFF", next_helpnode->suppid, next_helpnode->user->nick); - free(next_helpnode); + client->botclass_helpnode = helpnode->next; + reply(textclient, user, "NH_DELETED_STAFF", helpnode->suppid, helpnode->user->nick); + neonhelp_destroy_support_request(client, helpnode, 1); }