// Bot.H -*- C++ -*-
// Copyright (c) 1997, 1998 Etienne BERNARD
-// Copyright (c) 2002 Clinton Ebadi
+// Copyright (c) 2002,2003 Clinton Ebadi
// 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
// 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.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef BOT_H
#define BOT_H
#include <map>
#include "String.H"
-#include "Person.H"
-#include "ServerList.H"
-#include "ChannelList.H"
-#include "UserList.H"
-#include "ShitList.H"
-#include "TodoList.H"
-#include "Parser.H"
-#ifdef USESCRIPTS
-#include "BotInterp.H"
-#include <libguile.h>
-// FIXME: remove guile/gh once transition is complete
-// This is the last reference to this header!
-#include <guile/gh.h>
-#endif
-
-#define VERSION_STRING PACKAGE" version "VERSION" by unknown_lamer@OPN <clinton@unknownlamer.org>\n1.97 and below by eb@IRCNet <eb@via.ecp.fr>"
-#define COPYRIGHT_STRING PACKAGE" version "VERSION", Copyright (C) 1997-2000 Etienne BERNARD\nCopyright (C) 2002 Clinton Ebadi"
+#define VERSION_STRING PACKAGE " version " VERSION " by unknown_lamer@FreeNode <clinton@unknownlamer.org>\n1.97 and below by eb@IRCNet <eb@via.ecp.fr>"
+#define COPYRIGHT_STRING PACKAGE " version " VERSION ", Copyright (C) 1997-2000 Etienne BERNARD\nCopyright (C) 2002,2003,2004,2005,2008,2009 Clinton Ebadi"
class Channel;
+class ChannelList;
+class Commands;
class DCCConnection;
-class Parser;
+class DCCManager;
class DCCParser;
+class Parser;
+class Person;
class ServerConnection;
-class Commands;
+class ServerList;
+class ShitList;
+class UserList;
class UserCommands;
-class Utils;
+
+class userFunction;
+class wantedChannel;
+
+#ifdef USESCRIPTS
+class BotInterp;
+#endif
class Bot {
public:
UserList * userList;
ShitList * shitList;
ServerList * serverList;
- TodoList * todoList;
#ifdef USESCRIPTS
BotInterp * botInterp;
#endif
- // std::list<class userFunction *> userFunctions;
std::map<std::string, class userFunction*,
std::less<std::string> > userFunctions;
std::map<String, wantedChannel *, std::less<String> > wantedChannels;
std::time_t startTime, currentTime, lastNickNameChange, lastChannelJoin;
ServerConnection * serverConnection;
- std::list<DCCConnection *> dccConnections;
+ DCCManager* dccConnections;
std::map<unsigned long, String, std::less<unsigned long> > userhostMap;
unsigned long sentUserhostID;
unsigned long receivedUserhostID;
- static const unsigned int MAX_MESSAGES = 2;
+ static unsigned int MAX_MESSAGES;
+ static unsigned int MAX_NICKLENGTH;
static const std::time_t NICK_CHANGE = 60;
static const std::time_t CHANNEL_JOIN = 60;
static const std::time_t IGNORE_DELAY = 180;
friend class DCCParser;
friend class Person;
friend class Channel;
- friend class Utils;
friend class ServerConnection;
friend class UserCommands;
friend class Commands;
void nextServer();
void connect(int);
- void addDCC(Person *, unsigned long, int);
+ enum DCC_TYPE { CHAT };
+ void addDCC(Person *, unsigned long, int, int);
void rehash();
String getUserhost(String, String);