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) {
+ 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);
+ }
+ }
if(prev_helpnode)
- prev_helpnode->next = next_helpnode->next;
+ prev_helpnode->next = helpnode->next;
else
- client->botclass_helpnode = next_helpnode->next;
- reply(textclient, 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_neonhelp_destroy_support_request(client, helpnode, 1);
}