X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodules%2FNeonFun.mod%2Fbot_NeonFun.c;h=44df0c31d078c17ad3d871bfe81577049b7e17e4;hb=9f992f346db24a642e3fe5362ae377ebe9002aa7;hp=b0c2cae65f57d2293a66298117a5956741123082;hpb=c99b8d5951fe6429844c8cb5ff94213bb625ad95;p=NeonServV5.git diff --git a/src/modules/NeonFun.mod/bot_NeonFun.c b/src/modules/NeonFun.mod/bot_NeonFun.c index b0c2cae..44df0c3 100644 --- a/src/modules/NeonFun.mod/bot_NeonFun.c +++ b/src/modules/NeonFun.mod/bot_NeonFun.c @@ -1,4 +1,4 @@ -/* bot_NeonFun.c - NeonServ v5.5 +/* bot_NeonFun.c - NeonServ v5.6 * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -39,6 +39,7 @@ #include "../../bots.h" #include "game_uno.h" #include "game_4wins.h" +#include "game_blackjack.h" #define BOTID NEONFUN_BOTID #define BOTALIAS "NeonFun" @@ -92,7 +93,7 @@ static void start_bots(int type) { MYSQL_ROW row; if(type == MODSTATE_STARTSTOP) { - printf_mysql_query("SELECT `nick`, `ident`, `realname`, `server`, `port`, `pass`, `textbot`, `id`, `queue`, `ssl`, `bind` FROM `bots` WHERE `botclass` = '%d' AND `active` = '1'", BOTID); + printf_mysql_query("SELECT `nick`, `ident`, `realname`, `server`, `port`, `pass`, `textbot`, `id`, `queue`, `ssl`, `bind`, `secret` FROM `bots` WHERE `botclass` = '%d' AND `active` = '1'", BOTID); res = mysql_use(); while ((row = mysql_fetch_row(res)) != NULL) { @@ -100,6 +101,7 @@ static void start_bots(int type) { 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 |= (strcmp(row[11], "0") ? SOCKET_FLAG_SECRET_BOT : 0); client->flags |= SOCKET_FLAG_SILENT; client->flags |= SOCKET_FLAG_REQUEST_INVITE | SOCKET_FLAG_REQUEST_OP; client->botid = BOTID; @@ -131,11 +133,13 @@ static void start_bots(int type) { static void neonfun_parted(struct ChanUser *chanuser, int quit, char *reason) { uno_event_part(chanuser); fourwins_event_part(chanuser); + bj_event_part(chanuser); } static int neonfun_freechan(struct ChanNode *chan) { uno_event_freechan(chan); fourwins_event_freechan(chan); + bj_event_freechan(chan); return 0; } @@ -300,5 +304,26 @@ void fourwins_reply(struct fourwins_game *game, const char *text, ...) { } } +void bj_reply(struct bj_game *game, struct UserNode *user, const char *text, ...) { + struct ClientSocket *client = game->textbot; + const char *reply_format = get_language_string(user, text); + if(reply_format == NULL) + reply_format = text; + char formatBuf[MAXLEN]; + sprintf(formatBuf, "PRIVMSG %s :[BJ] %s", game->channel->name, reply_format); + va_list arg_list; + char sendBuf[MAXLEN]; + int pos; + if (!(client->flags & SOCKET_FLAG_CONNECTED)) return; + sendBuf[0] = '\0'; + va_start(arg_list, text); + pos = vsnprintf(sendBuf, MAXLEN - 2, formatBuf, arg_list); + va_end(arg_list); + if (pos < 0 || pos > (MAXLEN - 2)) pos = MAXLEN - 2; + sendBuf[pos] = '\n'; + sendBuf[pos+1] = '\0'; + write_socket(client, sendBuf, pos+1); +} + #undef BOTID #undef BOTALIAS