-/* cmd_neonhelp_delete.c - NeonServ v5.4
+/* 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
}
}
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);
}