-/* bot_NeonSpam.c - NeonServ v5.4
+/* bot_NeonSpam.c - NeonServ v5.5
* Copyright (C) 2011-2012 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
#include "event_neonspam_join.c"
#include "event_neonspam_chanmsg.c"
-static void neonspam_event_kick(struct UserNode *user, struct ChanUser *target, char *reason) {
- struct ChanNode *chan = target->chan;
- if(isBot(target->user)) {
- struct ClientSocket *client = getChannelBot(chan, 0);
- struct ClientSocket *bot = client;
- for(client = getBots(SOCKET_FLAG_READY, NULL); client; client = getBots(SOCKET_FLAG_READY, client)) {
- if(client->user == target->user) {
- break;
- }
- }
- if(!client) return;
- if(bot && bot != client && (isModeSet(chan->modes, 'i') || isModeSet(chan->modes, 'a') || isModeSet(chan->modes, 'l'))) {
- struct ChanUser *chanuser = getChanUser(bot->user, chan);
- if(chanuser && chanuser->flags & CHANUSERFLAG_OPPED)
- putsock(bot, "INVITE %s %s", target->user->nick, chan->name);
- }
- char *key = "";
- if(isModeSet(chan->modes, 'k')) {
- key = getModeValue(chan->modes, 'k');
- }
- putsock(client, "JOIN %s %s", chan->name, key);
- return;
- }
-}
-
static void neonspam_bot_ready(struct ClientSocket *client) {
+ if(client->botid != BOTID)
+ return;
MYSQL_RES *res;
MYSQL_ROW row;
client->flags |= (strcmp(row[6], "0") ? SOCKET_FLAG_PREFERRED : 0);
client->flags |= (strcmp(row[8], "0") ? SOCKET_FLAG_USE_QUEUE : 0);
client->flags |= (strcmp(row[9], "0") ? SOCKET_FLAG_SSL : 0);
- client->flags |= SOCKET_FLAG_REQUEST_INVITE;
+ client->flags |= SOCKET_FLAG_REQUEST_INVITE | SOCKET_FLAG_REQUEST_OP;
client->botid = BOTID;
client->clientid = atoi(row[7]);
connect_socket(client);
bind_join(neonspam_event_join, module_id);
bind_chanmsg(neonspam_event_chanmsg, module_id);
bind_privctcp(general_event_privctcp, module_id);
- bind_kick(neonspam_event_kick, module_id);
bind_freechan(neonspam_event_freechan, module_id);
bind_invite(neonspam_event_invite, module_id);
register_default_language_table(msgtab);
}
-void loop_NeonSpam() {
-
-}
-
void free_NeonSpam(int type) {
unbind_allcmd(BOTID);
if(type == MODSTATE_STARTSTOP) {