X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodules%2FNeonHelp.mod%2Fcmd_neonhelp_delete.c;h=d9c926232a99079b5048c569a9e1d4a0ba729fbe;hb=fc61be208ca6dbf2fd915591c8dc7e5ef5779891;hp=43d5829bf8ce71f9b29a189033e6478c6c146bec;hpb=706e48b1e666054030c491d864f740071e390038;p=NeonServV5.git diff --git a/src/modules/NeonHelp.mod/cmd_neonhelp_delete.c b/src/modules/NeonHelp.mod/cmd_neonhelp_delete.c index 43d5829..d9c9262 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.3 +/* cmd_neonhelp_delete.c - NeonServ v5.6 * 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); }