diff options
author | Timo Sirainen <cras@irssi.org> | 2000-05-29 23:31:48 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2000-05-29 23:31:48 +0000 |
commit | ed140195300797b185b0fa8442166cdd1c927a73 (patch) | |
tree | 7c7e672ae8d7a81287ecf033b78b07f537e2925d /src/irc/bot/botnet-users.c | |
parent | 9747762593fc7ac193887fbf5f83226ed3f6ce14 (diff) | |
download | irssi-ed140195300797b185b0fa8442166cdd1c927a73.zip |
Sending files through botnet works.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@253 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/irc/bot/botnet-users.c')
-rw-r--r-- | src/irc/bot/botnet-users.c | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/src/irc/bot/botnet-users.c b/src/irc/bot/botnet-users.c new file mode 100644 index 00000000..fda58723 --- /dev/null +++ b/src/irc/bot/botnet-users.c @@ -0,0 +1,206 @@ +/* + botnet-users.c : IRC bot plugin for irssi + + Copyright (C) 1999-2000 Timo Sirainen + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "module.h" +#include "signals.h" +#include "commands.h" + +#include "irc.h" +#include "irc-server.h" +#include "channels.h" +#include "nicklist.h" +#include "masks.h" + +#include "bot-users.h" +#include "botnet.h" + +void botcmd_user_add(const char *nick) +{ + char *str; + + botuser_add(nick); + + str = g_strdup_printf("USER_ADD %s", nick); + botnet_broadcast(NULL, NULL, NULL, str); + g_free(str); +} + +void botcmd_user_set_flags(USER_REC *user, int flags) +{ + char *str, *flagstr; + + botuser_set_flags(user, flags); + + flagstr = botuser_value2flags(flags); + str = g_strdup_printf("USER_FLAGS %s %s", user->nick, flagstr); + g_free(flagstr); + + botnet_broadcast(NULL, NULL, NULL, str); + g_free(str); +} + +void botcmd_user_set_channel_flags(USER_REC *user, const char *channel, int flags) +{ + char *str, *flagstr; + + botuser_set_channel_flags(user, channel, flags); + + flagstr = botuser_value2flags(flags); + str = g_strdup_printf("USER_CHAN_FLAGS %s %s %s", user->nick, channel, flagstr); + g_free(flagstr); + + botnet_broadcast(NULL, NULL, NULL, str); + g_free(str); +} + +void botcmd_user_add_mask(USER_REC *user, const char *mask) +{ + char *str; + + botuser_add_mask(user, mask); + + str = g_strdup_printf("USER_ADD_MASK %s %s", user->nick, mask); + botnet_broadcast(NULL, NULL, NULL, str); + g_free(str); +} + +void botcmd_user_set_mask_notflags(USER_REC *user, const char *mask, int not_flags) +{ + char *str, *flagstr; + + botuser_set_mask_notflags(user, mask, not_flags); + + flagstr = botuser_value2flags(not_flags); + str = g_strdup_printf("USER_MASK_NOTFLAGS %s %s %s", user->nick, mask, flagstr); + g_free(flagstr); + + botnet_broadcast(NULL, NULL, NULL, str); + g_free(str); +} + +void botcmd_user_set_password(USER_REC *user, const char *password) +{ + char *str; + + botuser_set_password(user, password); + + str = g_strdup_printf("USER_PASS %s %s", user->nick, password); + botnet_broadcast(NULL, NULL, NULL, str); + g_free(str); +} + +static void botnet_event_user_add(BOT_REC *bot, const char *data, const char *sender) +{ + char *params, *nick; + + params = cmd_get_params(data, 1, &nick); + botuser_add(nick); + g_free(params); +} + +static void botnet_event_user_flags(BOT_REC *bot, const char *data, const char *sender) +{ + USER_REC *user; + char *params, *nick, *flags; + + params = cmd_get_params(data, 2, &nick, &flags); + + user = botuser_find(nick, NULL); + if (user == NULL) user = botuser_add(nick); + botuser_set_flags(user, botuser_flags2value(flags)); + + g_free(params); +} + +static void botnet_event_user_chan_flags(BOT_REC *bot, const char *data, const char *sender) +{ + USER_REC *user; + char *params, *nick, *channel, *flags; + + params = cmd_get_params(data, 3, &nick, &channel, &flags); + + user = botuser_find(nick, NULL); + if (user == NULL) user = botuser_add(nick); + botuser_set_channel_flags(user, channel, botuser_flags2value(flags)); + + g_free(params); +} + +static void botnet_event_user_add_mask(BOT_REC *bot, const char *data, const char *sender) +{ + USER_REC *user; + char *params, *nick, *mask; + + params = cmd_get_params(data, 2, &nick, &mask); + + user = botuser_find(nick, NULL); + if (user == NULL) user = botuser_add(nick); + botuser_add_mask(user, mask); + + g_free(params); +} + +static void botnet_event_user_mask_notflags(BOT_REC *bot, const char *data, const char *sender) +{ + USER_REC *user; + char *params, *nick, *mask, *not_flags; + + params = cmd_get_params(data, 3, &nick, &mask, ¬_flags); + + user = botuser_find(nick, NULL); + if (user == NULL) user = botuser_add(nick); + botuser_set_mask_notflags(user, mask, botuser_flags2value(not_flags)); + + g_free(params); +} + +static void botnet_event_user_pass(BOT_REC *bot, const char *data, const char *sender) +{ + USER_REC *user; + char *params, *nick, *pass; + + params = cmd_get_params(data, 2, &nick, &pass); + + user = botuser_find(nick, NULL); + if (user == NULL) user = botuser_add(nick); + botuser_set_password(user, pass); + + g_free(params); +} + +void botnet_users_init(void) +{ + signal_add("botnet event user_add", (SIGNAL_FUNC) botnet_event_user_add); + signal_add("botnet event user_flags", (SIGNAL_FUNC) botnet_event_user_flags); + signal_add("botnet event user_chan_flags", (SIGNAL_FUNC) botnet_event_user_chan_flags); + signal_add("botnet event user_add_mask", (SIGNAL_FUNC) botnet_event_user_add_mask); + signal_add("botnet event user_mask_notflags", (SIGNAL_FUNC) botnet_event_user_mask_notflags); + signal_add("botnet event user_pass", (SIGNAL_FUNC) botnet_event_user_pass); +} + +void botnet_users_deinit(void) +{ + signal_remove("botnet event user_add", (SIGNAL_FUNC) botnet_event_user_add); + signal_remove("botnet event user_flags", (SIGNAL_FUNC) botnet_event_user_flags); + signal_remove("botnet event user_chan_flags", (SIGNAL_FUNC) botnet_event_user_chan_flags); + signal_remove("botnet event user_add_mask", (SIGNAL_FUNC) botnet_event_user_add_mask); + signal_remove("botnet event user_mask_notflags", (SIGNAL_FUNC) botnet_event_user_mask_notflags); + signal_remove("botnet event user_pass", (SIGNAL_FUNC) botnet_event_user_pass); +} |