IRC Bot Update

foo is my irc bot. He’s made in C++ using my special library. Tested with g++, mingw, and msvc
You can get download his sources at http://abacus.subluminal.net/~jakashthree/sauce/
Linux GNU C++ compiling:

g++ -o foo foo.cpp axcel.cpp -l dl -l pthread

mingw compiling:

g++ -o foo.exe foo.cpp axcel.cpp -l ws2_32

msvc compiling:

cl foo.cpp axcel.cpp ws2_32.lib user32.lib

If this does not compile using the above compilers on Linux or Windows for any reason, notify me ASAP.
Uncommented code:

foo.cpp – The main irc loop.

#include "axcel.h"
using namespace axcel;

Socket sock;
String buf, nick, owner;
IRCmsg im;

#include "apps.cpp"
#include "reply.cpp"

int main(int argc, char** argv) {
    int i, j;
    uint seed = time(NULL);
    
    unless (argc == 6)
        die("Usage: %s NICK OWNER CHANNEL SERVER PORT\n", argv[0]);
    nick = argv[1];
    owner = argv[2];
    
    unless (sock.connect(argv[4], argv[5]))
        die("Failed to connect\n");
    con << "Connected\n";
    
    sock <<
        "USER " << argv[1] << " 0 * :" << owner << "\r\n"
        "NICK " << argv[1] << "\r\n";
        
    for (buf = sock.gets(); sock.ok(); buf = sock.gets()) {
    
        if (buf.starts("PING ")) { buf[1] = 'O'; sock.puts(buf); continue; }
        if (buf[0] != ':') continue;
        
        im = buf.chomp();
        if (eq(im.cmd, "001")) {
            con << "Logged in\n";
            sock <<
                "MODE " << nick << " +B\r\n"
                "JOIN " << argv[3] << "\r\n";
        } else if (eq(im.cmd, "332")) { con << "Joined channel " << im.param(0) << "\n"; }
        else if (eq(im.cmd, "JOIN")) con << im.nick << " joined " << im.data << "\n";
        else if (eq(im.cmd, "PART")) con << im.nick << " left " << im.param(0) << "\n";
        else if (eq(im.cmd, "QUIT")) con << im.nick << " has quit\n";
        else if (eq(im.cmd, "NOTICE")) {
            if (im.nick) con << im.nick;
            else if (im.server) con << im.server;
            con << ": " << im.data << "\n";
        } else if (eq(im.cmd, "PRIVMSG")) {
            con << im.nick << " (" << im.param(0) << "): " << im.data << "\n";
            buf = im.data;
            if (buf.tok(0, " ,:") != nick) continue;
            if (buf.tok(1, " ,:")[0] == '#') {
                buf = buf.rm(buf.itok(1, " ,:"), 1);
                for (i = 0; apps[i].name != NULL; i++)
                    if (buf.tok(1, " ,:") == apps[i].name) {
                        if (buf.itok(2, " ,:") >= 0)
                            buf = buf.shl(buf.itok(2, " ,:"));
                        else buf.clear();
                        apps[i].proc();
                        break;
                    }
            } else {
                buf = buf.shl(buf.itok(1, " :,"));
                for (i = 0; replies[i].key != NULL; i++)
                    if (buf.starts(replies[i].key))
                        break;
                if (replies[i].key == NULL) i--;
                for (j = 0; replies[i].value[j] != NULL; j++);
                sock << "PRIVMSG " << im.param(0) << " :" << replies[i].value[rands(seed *= time(NULL) * j, 0, j)] << "\r\n";
            }
        }
    }
}
  

apps.cpp – Functions for each of foo’s commands

#include "axcel.h"
using namespace axcel;

struct plugin { const char* name; void (*proc)(); };

extern Socket sock;
extern String buf, nick, owner;
extern IRCmsg im;

void randint() {
    sock << "PRIVMSG " << im.param(0) << " :";
    if (buf == "help" || buf == '?') {
        sock << "Usage: #rand [min max]\r\n";
        return;
    }
    switch (buf.ntok(' ')) {
    case 0: sock << rand(INT_MIN, INT_MAX); break;
    case 1: sock << rand(stoi<int>(buf.tok(0, ' ')), INT_MAX); break;
    case 2: sock << rand(stoi<int>(buf.tok(0, ' ')), stoi<int>(buf.tok(    1, ' ')));
    }
    sock << "\r\n";
}

void ltime() {
    sock << "PRIVMSG " << im.param(0) << " :";
    if (buf == "help" || buf == "?") {
        sock << "Returns the time relative to my time zone.\r\n";
        return;
    }
    sock << Clock::ltime() << "\r\n";
}

void gtime() {
    sock << "PRIVMSG " << im.param(0) << " :";
    if (buf == "help" || buf == '?') {
        sock << "Returns the Coordinated Universal Time (UTC)\r\n";
        return;
    }
    sock << Clock::utime() << "\r\n";
}

void getip() {
    sock << "PRIVMSG " << im.param(0) << " :";
    if (buf.empty() || buf == "help" || buf == '?') {
        sock << "Get IP address from hostname. Usage: #ip HOSTNAME\r\n";
        return;
    }
    int err;
    char ip[40];
    struct addrinfo *ai;
    err = getaddrinfo(buf, NULL, NULL, &ai);
    if (err)
        sock << "Error looking up host: " << gai_strerror(err) << "\r\n";
    else {
        getnameinfo(ai->ai_addr, ai->ai_addrlen, ip, 40, NULL, 0, NI_NUMERICHOST);
        sock << buf << " -> " << ip << "\r\n";
        freeaddrinfo(ai);
    }
}

void headinfo() {
    sock << "PRIVMSG " << im.param(0) << " :";
    if (buf.empty() || buf == "help" || buf == '?' || buf.ntok(' ') < 3) {
        sock << "Get HTTP header info. Usage: #head HOST RESOURCE FIELDS ...\r\n";
        return;
    }
    Socket s;
    String t;
    unless (s.connect(buf.tok(0, ' '), "80")) {
        sock << "Failed to connect to " << buf.tok(0, ' ') << "\r\n";
        return;
    }
    s << "GET " << buf.tok(1, ' ') << " HTTP/1.1\r\nHost: " << buf.tok(0, ' ') << "\r\n\r\n";
    sock << buf.tok(0, ' ') << " -> | ";
    while (t != "\r\n") {
        t = s.gets();
        if (buf.str(t.tok(0, ':')) != -1)
            sock << t.chomp() << " | ";
    }
    s.close();
    sock << "\r\n";
}

void joinchan() {
    sock << "PRIVMSG " << im.param(0) << " :";
    if (buf.empty()) {
        sock << "(#) Joins a channel. Usage #join #channel\r\n";
        return;
    }
    if (owner == im.nick) {
        sock << "OK\r\n";
        sock << "JOIN " << buf << "\r\n";
    } else sock << "Access denied.\r\n";
}

void quitirc() {
    if (owner == im.nick)
        sock << "QUIT :" << buf << "\r\n";
    else sock << "Access denied.\r\n";
}

void leave() {
    if (buf.empty()) {
        sock << "PRIVMSG " << im.param(0) <<
            " :(#) Leaves a channel. Usage: #leave #channel [reason]\r\n";
        return;
    }
    if (owner == im.nick)
        sock << "PART " << buf.tok(0, ' ') << " :" << buf.slurp(' ') << "\r\n";
    else sock << "PRIVMSG " << im.param(0) << " :Access denied.\r\n";
}

void ircowner() {
    if (buf.empty()) {
        sock << "PRIVMSG " << im.param(0) <<
            " :(#) Changes this irc bot's owner. Usage: #chown NICK\r\n";
        return;
    }
    if (owner == im.nick) owner = buf;
    else sock << "PRIVMSG " << im.param(0) << " :Access denied.\r\n";
}

void csum() {
    sock << "PRIVMSG " << im.param(0) << " :";
    if (buf.empty()) {
        sock << "Gets BSD checksum of string. Usage: #csum STRING\r\n";
        return;
    }
    sock.fmt.hex(true);
    sock.fmt.base(true);
    sock << buf << " -> " << buf.cksum() << "\r\n";
    sock.fmt.dec(true);
    sock.fmt.base(false);
}

void chnick() {
    if (buf.empty()) {
        sock << "PRIVMSG " << im.param(0) << " :(#) Changes nick. Usage: #nick NICK\r\n";
        return;
    }
    if (owner == im.nick) sock << "NICK " << buf << "\r\n";
    else sock << "PRIVMSG " << im.param(0) << " :Access denied.\r\n";
}

void say() {
    sock << "PRIVMSG ";
    if (buf.empty() || buf == "help" || buf == '?') {
        sock << im.param(0) << " :Say something. Usage #say #channel text\r\n";
        return;
    }
    sock << buf.tok(0, ' ') << " :" << buf.slurp(' ') << "\r\n";
}

void action() {
    sock << "PRIVMSG ";
    if (buf.empty() || buf == "help" || buf == '?') {
        sock << im.param(0) << " :Perform action. Usage #act #channel text\r\n";
        return;
    }
    sock << buf.tok(0, ' ') << " :" << (char)1 << "ACTION " << buf.slurp(' ') << (char)1 << "\r\n";
}

void bigurl() {
    sock << "PRIVMSG " << im.param(0) << " :";
    if (buf.empty() || buf == "help" || buf == '?') {
        sock << "Usage: #bigurl TINYURL\r\n";
        return;
    }
    Socket s;
    String t;
    buf = buf.munch("http://");
    unless (s.connect(buf.burn('/'), "80")) {
        sock << "Failed to connect to " << buf << "\r\n";
        return;
    }
    s << "GET /" << buf.slurp('/') << " HTTP/1.1\r\nHost: " << buf.burn('/') << "\r\n\r\n";
    while (t != "\r\n") {
        t = s.gets();
        if (t.starts("Location: ")) { sock << buf << " -> " << t.munch("Location: "); break; }
    }
    s.close();
    if (t == "\r\n") sock << "Not a valid tinyurl!\r\n";
}

void rev() {
    if (buf.empty()) return;
    sock << "PRIVMSG " << im.param(0) << " :" << buf.rev() << "\r\n";
}

void wiki() {
    sock << "PRIVMSG " << im.param(0) << " :";
    if (buf.empty()) {
        sock << "Usage: #wiki SEARCH_TOPIC\r\n";
        return;
    }
    Socket s;
    String t;
    buf = buf.rep(" ", "_");
    buf[0] = toupper(buf[0]);
    s.connect("www.wikipedia.org", "80");
    s <<
        "GET /wiki/" << buf << " HTTP/1.1\r\n"
        "Host: en.wikipedia.org\r\n"
        "Connection: Close\r\n"
        "User-Agent: Jakash3's IRC Bot\r\n\r\n";
    t = s.gets();
    if (!t.ends("200 OK\r\n")) {
        s.close();
        sock << buf << " is not a valid topic\r\n";
        return;
    }
    while (s.gets() != "\r\n");
    while (s.connected()) {
        t = s.gets().strip();
        if (t.empty()) continue;
        unless (t.starts("<p>")) continue;
        if (t.untag().ends("may refer to:")) {
            for (t = s.gets().strip(), sock << " | "; t != "</ul>"; t = s.gets().strip())
                if (!t.untag().empty()) sock << t.untag() << " | ";
            break;
        }
        sock << t.untag().untag('(', ')').burn('.');
        break;
    }
    s.close();
    sock << "\r\n";
}

void help();

plugin apps[] = {
    {"wiki", wiki},
    {"act", action},
    {"say", say},
    {"rand", randint},
    {"localtime", ltime},
    {"gmtime", gtime},
    {"ip", getip},
    {"head", headinfo},
    {"csum", csum},
    {"rev", rev},
    {"bigurl", bigurl},
    {"nick", chnick},
    {"join", joinchan},
    {"quit", quitirc},
    {"leave", leave},
    {"chown", ircowner},
    {"help", help},
    {NULL, NULL}
};

void help() {
    sock << "PRIVMSG " << im.param(0) << " :Commands: ";
    for (int i = 0; apps[i].name != NULL; i++) sock << apps[i].name << ' ';
    sock << "\r\n";
}
 

reply.cpp – foo’s replies

#include "axcel.h"
using namespace axcel;

extern Socket sock;
extern String buf, nick, owner;
extern IRCmsg im;

struct reps { const char* key; const char* value[100]; };

reps replies[] = {
    {"hello",
    {
        "hey",
        "yo dawg",
        "hello",
        "hi",
        NULL
    }
    },
    {"hi",
    {
        "hey",
        "hello",
        "hi",
        "yo dawg",
        NULL
    }
    },
    {"who are you", {"I am a 3rd generation fusion pod photonic with verbal link capabilities and an artificial intelligent interface unit to a photonic memory core.", NULL}},
    {"who ", 
    {
        "Mel Gibson",
        "Ryan Seacrest",
        "Will Smith",
        "Your mom",
        "idk",
        "Google it",
        "Bill Gates",
        "Steve Jobs",
        "Steve Ballmer",
        "Me",
        "You",
        "All of us",
        "Barrack Obama",
        "Who do you think?",
        "Justin Bieber",
        "Richard Stallman",
        "Bjarne Stroustrup",
        "Ken Thompson",
        "Dennis Ritchie",
        "Geek Squad",
        "Jakash3",
        "Anonymous",
        "Agent Smith",
        "Kazuki Takahashi",
        "Keven Mitnick",
        "George W. Bush",
        "Jon Stewart",
        "Stephen Colbert",
        "Jackie Chan",
        "Jesus",
        "Pizza delivery boys",
        "Your uncle",
        "Spongebob Squarepants",
        "Rachel Ray",
        "Megan Fox",
        "The girl next door",
        "Jiminy Cricket",
        "Mickey Mouse",
        "Minnie Mouse",
        "Donald Duck",
        "Daisy Duck",
        "John-117",
        "Cortana",
        "Clint Eastwood",
        "Linus Torvalds",
        "Bill O'Reilly",
        "Danny Phantom",
        "Kim Possible",
        "The illuminati",
        "Alex Trebek",
        "Peter Pan",
        "Voldemort",
        "Jason Bourne",
        "Boxxy",
        "The cyber police",
        "God",
        NULL
    }
    },
    {"are you",
    {
        "YES",
        "NO",
        "Absolutely",
        "Of course",
        "Am I not?",
        "never",
        "Are you?",
        "Maybe",
        "idk",
        "After what we did last night you're asking me this!?",
        "When I feel like it",
        "Everyday!",
        "Very rarely",
        "Only on Wednesdays",
        "I'm whatever you want to believe",
        "What happens if I say yes?",
        "If I say yes will you give me a cookie?",
        "Negatory",
        "Why would I be?",
        "I don't see why not",
        "Why wouldn't I be?",
        "Why don't you ask some of my male colleagues.",
        "I will be",
        "Not right now, I'm afk",
        "Nope",
        "HAHAHAHAHAHAHA....no",
        NULL
    }
    },
    {"why am i here",
    {"Your life is the sum of a remainder of an unbalanced equation inherent to the programming of the matrix. You are the eventuality of an anomaly, which despite my sincerest efforts I have been unable to eliminate from what is otherwise a harmony of mathematical precision. While it remains a burden assiduously avoided, it is not unexpected, and thus not beyond a measure of control. Which has led you, inexorably, here.", NULL }},
    {"you didn't answer my question", {"Quite right. Interesting...that was faster than the others.", NULL}},
    {"what is",
    {
        "Everything",
        "Nothing",
        "God",
        "idk",
        "I don't know",
        "Google it",
        "Ask ChaCha",
        "Good question",
        "Why are you asking me?",
        "I'm not a dictionary",
        "Don't you know?",
        "I am not able to rightly apprehend the kind of confusion of ideas that could provoke such a question. Good day sir!",
        "Concurrently, while your question may be the most pertinent, you may or may not realize that it is also the most irrelevant.",
        "It is anything you want to believe",
        "Nothing important",
        "Nothing you would know anything about",
        "Nothing you would find interesting",
        "It is the key to life",
        "It is everywhere. It is all around us; even now in this very room. You can see it when you look out your window, or when you turn on your television. You can feel it when you go to work, when you go to church, when you pay your taxes. It is the world that has been pulled over your eyes to blind you from the truth.",
        "It's a system. That system is our enemy. When you're inside, you look around, what do you see? Business men, teachers, lawyers, carpenters; the very minds of the people that we are trying to save, but until we do, they are still a part of that system and that makes them our enemy. You have to understand, some of these people are not ready to be unplugged. And some of them are so inured, so hopelessly dependent on the system, that they will fight to protect it.",
        "It is not an object, action, or idea. But it is a word. What matters is the connection the word implies.",
        "Still using all the muscles except the one that matters?",
        "It is the quintessential human delusion, simultaneously the source of your greatest strength, and your greatest weakness.",
        NULL
    }
    },
    {"what am ",
    {
        "A deep sea diva.",
        "A chess master",
        "A tech support person",
        "A script kiddie",
        "A coder",
        "A web designer",
        "A gamer",
        "A dancer",
        "An opera singer",
        "A rapper",
        "A programmer",
        "A drug dealer",
        "A pool salesman",
        "A student",
        "A game show host",
        "You are the one.",
        "A computer technician",
        "A teacher",
        "A highschool principal",
        "A professor",
        "A garbage collector",
        "A cashier",
        "A casino owner",
        "A hacker",
        "A photographer",
        "An underwater photographer",
        "A lawyer",
        "A network admin",
        "A janitor",
        "A D.J.",
        "A radio host",
        "Nobody",
        "Whoever you want to be",
        "A pornstar",
        "A firefighter",
        "A nurse",
        "A farmer",
        "A ninja",
        "A pirate",
        "An assassin",
        "A machine",
        "Only human.",
        "You are a living species in the Homo genus of bipedal primates in Hominidae, the great ape family.",
        "A fruitloop",
        "A politician",
        "A priest",
        "A hitman",
        "A veterinarian",
        "A dentist",
        "A butcher",
        "A baker",
        "A football player",
        "A basketball player",
        "A track runner",
        "A swimmer",
        "A skier",
        "A stunt devil",
        "A surfer",
        "A comedian",
        "A news anchor",
        "A taxi driver",
        "A bus driver",
        "A truck driver",
        "A racecar driver",
        "A space shuttle driver",
        "A software driver",
        "A biologist",
        "A linguist",
        "A chef",
        "A person",
        "A telemarketer",
        "A historian",
        "An astrophysicist",
        "A doctor",
        "A carpenter",
        "A secretary",
        "A hypnotist",
        "A dermatologist",
        "A game designer",
        "A cowboy",
        "A waterbender",
        "An earthbender",
        "A firebender",
        "An airbender",
        "A wizard",
        "A samurai",
        "A cabbage salesman",
        "A blacksmith",
        "A SPARTAN-II commando of the UNSC Naval Special Warfare Command",
        "A mechanic",
        "A space alien nazi zombie",
        "A nazi",
        "Peter pan!",
        "A sumo wrestler",
        NULL
    }
    },
    {"can i ",
    {
        "Yes",
        "No",
        "Maybe",
        "idk",
        "idk, can you?",
        "Of course you can",
        "Of course you can't",
        "I don't see why not?",
        "That's impossible",
        "You can't.",
        "You can",
        "You cannot do that",
        "I doubt you could",
        "I believe you could",
        "That's a stupid question",
        "Learn C++ first.",
        "No way",
        "Go dip your balls in lava",
        "Absolutely",
        "Absolutely not",
        "You're not old enough",
        "You're too old",
        "You're not smart enough to do that",
        "You're not experienced enough to do that",
        "You don't have enough skill",
        "You don't have enough patience",
        "In 3 years, yes",
        "Go ahead",
        "Just do it",
        NULL
    }
    },
    {"should i ",
    {
        "Yes",
        "No",
        "Maybe",
        "idk",
        "I'd do it",
        "I'd wait a little longer before doing that",
        "Of course",
        "Absolutely",
        "As soon as possible",
        "Please, by all means.",
        "I can't.",
        "Flip a coin.",
        "That's a stupid question",
        "Learn C++ first.",
        "Absoutely not.",
        "Go ahead",
        "Just do it",
        "I guess",
        "Please don't.",
        "Please do",
        "Ask a lawyer first.",
        "Ask a professional first",
        "I'm a bot. Don't ask me!",
        "wtf are you crazy?",
        "I think it would be better if you took a shower first",
        "Do you need too?",
        "Just go with the flow",
        "What do you think?",
        "I say yes",
        "I say no",
        "Are you qualified to do that?",
        "You'll just be wasting your time",
        "Go ahead, take the risk",
        "Do I look like Dr. Phil to you?",
        "Bad idea",
        "Sure, I'll do it with you",
        "Yes but be careful",
        "If I were you, I would RTFM first",
        "Sure",
        "uh..........",
        "Should I cut my ball hairs with a steak knife?",
        "yeah",
        "It would be epic if you did",
        "-_-",
        "0_o",
        "0_0",
        "=_=",
        "d-_-b",
        "~_~",
        ">_<",
        "^_^",
        NULL
    }
    },
    {"how ",
    {
        "Did you try asking on Yahoo! Answers?",
        "How should I know?",
        "Google it",
        "How do you not know?",
        "I don't have time for your silly questions.",
        "Ask tech support",
        "I'm not ChaCha answers service.",
        "Take a number, I'll have your answer later",
        "-_-",
        "You're wasting my life...",
        "And you don't already know why?",
        "It's far beyond the scope of this chat protocol to take the time to explain.",
        "Ask Bill O'Reilly",
        "RTFM",
        "Have you tried the man pages?",
        "I'm sure MSDN has documentation on that",
        "...",
        "You have the nerve to ask me that at this time???",
        "I'm sorry, I was unable to find an answer in my database",
        "Did you not read the irc faq?",
        "...You must be new here.",
        "I know you know the answer.",
        "Do not test my knowledge human",
        "Good question",
        "The answer is simple.",
        "Don't you know?",
        "That's a funny question.",
        "I am not rightly able to comprehend the confusion of ideas that could provoke such a question.",
        "NO",
        "idk",
        "According to my tech support manual: Reboot computer. If problem persists, wipe the disk and reinstall everything.",
        "I'm sorry, this is tier 1 tech support. I can't help you",
        NULL
    }
    },
    {"when ",
    {
        "In 1 second",
        "About an hour",
        "Few more months",
        "Very soon",
        "Maybe a year or so",
        "Never",
        "20 minutes",
        "When a new episode of 2 and a half men come out.",
        "idk",
        "Nobody knows",
        "In December",
        "Next Thursday",
        "1 more week",
        "Tonight!",
        "Tomarrow",
        "As soon as you stop talking to me",
        "Over 9000 years",
        "03:14:07 UTC on Tuesday, 19 January 2038",
        "When I feel like it",
        "When I say it will",
        "Next Friday",
        "Next Tuesday",
        "Next Monday",
        "Next Wednesday",
        "Next Saturday",
        "Next Sunday",
        "Next Caturday",
        "Next January",
        "Next February",
        "Next March",
        "Next April",
        "Next May",
        "Next June",
        "Next July",
        "Next August",
        "Next September",
        "Next October",
        "Next November",
        "Tomarrow morning",
        "5 minutes",
        "5 seconds",
        "Anytime now",
        "Any day now",
        "Any second now",
        "Any minute now",
        "Any month now",
        "Any week now",
        "Any year now",
        "It won't happen",
        NULL
    }
    },
    {"under where", {"haha you said underwear!", NULL}},
    {"where ",
    {
        "Over there",
        "At #help",
        "Try google maps",
        "I'm not an atlas",
        "Under there",
        "It should be at www.textfiles.com",
        "idk",
        "On planet Earth",
        "Walmart",
        "Right here!",
        "About 3 blocks from here",
        "In your bedroom",
        "Next door",
        "Across the street",
        "Vegas",
        "Puerto Rico",
        "San Fransisco",
        "Ney York",
        "Miami",
        "London",
        "Estonia",
        "Germany",
        "China",
        "Japan",
        "Philippines",
        "Jamaica",
        "Mexico",
        "Chile",
        "Argentina",
        "Zimbabwe",
        "South Africa",
        "Iran",
        "Iraq",
        "Lebanon",
        "Tunisia",
        "Egypt",
        "Somalia",
        "Greece",
        "Italy",
        "Spain",
        "The UK",
        "Russia",
        "Kansas",
        "Hawaii",
        "Vietnam",
        "Autria",
        "Autstralia",
        "The North Pole",
        "The South Pole",
        "Your mom's house",
        "Canada",
        "Sweden",
        "Switzerland",
        "rio de janeiro",
        "Brazil",
        "Harlem",
        "Chicago",
        "Los Angeles",
        "India",
        "Indonisia",
        "Mars",
        "The Krusty Krab",
        "Bikini Bottom",
        "The beach",
        NULL
    }
    },
    {"is",
    {
        "Yes",
        "No",
        "idk",
        "maybe",
        "Of course",
        "You bet",
        "Absolutely",
        "Not in your lifetime",
        "Of course not",
        "What do you think?",
        "Do I look like an carpenter to you?",
        "I AM NOT GOOGLE",
        "yeah",
        "`is` is not recognized as an internal or external command, operable program, or batch file.",
        "Is Santa black?",
        "yup, in over 9000 ways",
        "Ask a computer science major.",
        "Only on Tuesdays",
        "It's possible",
        "Very rarely",
        "Everyday!",
        "nope",
        "never",
        "No, but you could be saving 15% or more on car insurance.",
        "Nothing C++ can't answer.",
        "._.",
        "Always, except in bed",
        "Only in bed",
        NULL
    }
    },
    {"really",
    {
        "Yes",
        "No",
        "idk",
        "maybe",
        "Yes really.",
        "Not really",
        "Of course",
        "yeah",
        "what do you think?",
        "uh huh",
        "Absolutely",
        "Yes sir",
        "Nope",
        "Positive",
        "Positively",
        NULL
    }
    },
    {"why are you",
    {
        "Cause I'm awesome",
        "I am programmed that way",
        "Ask the guy who coded me",
        "idk",
        "Because I am",
        "Why are you?",
        "Why not?",
        "Because...",
        "Cause I'm black",
        "Because I love candy",
        "Same reason as you.",
        "Who knows?",
        "The world may never know",
        NULL
    }
    },
    {"why ",
    {
        "You tell me",
        "Because I said so",
        "Why not?",
        "Becuase it just is",
        "Because I programmed it that way",
        "idk",
        "because...",
        "Just google it",
        "I'm not ChaCha answers",
        "I'm not an astrophysicist",
        "I'm not wikipedia",
        "RTFM",
        "Who knows",
        "The world may never know",
        "Some things are best left unexplained",
        "Why are you asking me???",
        "This is not tech support",
        "It's quite logical actually",
        "The answer is simple",
        NULL
    }
    },
    {"will you",
    {
        "Yes",
        "No",
        "maybe",
        "idk",
        "Eventually",
        "Of course",
        "someday i will",
        "Only if you will",
        "Absolutely",
        "Yeah",
        "When I feel like it",
        "As soon as I'm done with your mom",
        "I'd be happy to",
        "That's what I'm here for",
        "Absolutely not",
        "Only if you're willing to pay",
        "I'm not sure",
        "That sounds hard",
        "Why should I?",
        "Do it yourself.",
        "Yes, but I'll need more gunpowder.",
        "As soon as I can get more magnets",
        "I'm going to need liquid nitrogen to do that",
        "How am I supposed to do that?",
        "How am I supposed to do that without Uranium?",
        NULL
    }
    },
    {"*",
    {
        "Awesome",
        "Ok",
        "Interesting",
        "Okie Dokie",
        "Right",
        "wow",
        "That's funny",
        "I don't care",
        "That's weird",
        "Why?",
        "lol",
        "cool story bro",
        "How delightful",
        "Oh goodie",
        "borrrrring",
        "That's cool",
        "and?",
        "I'll keep that in mind",
        "I'll try to remember that",
        "Why would you say that?",
        "No really?",
        "That's what she said",
        "whatever",
        "Are you serious?",
        "Are you kidding me?",
        "Me too",
        "I know",
        "I didn't know that",
        "That's scary",
        "Sounds delicious",
        "You're making me hungry",
        "That's creepy",
        "That's wonderful!",
        "That's horrible",
        "Of course",
        "I knew it",
        "Shutup",
        "Great",
        "STFU",
        "In your face",
        "I told you so",
        "wtf",
        "0_o",
        ":)",
        ":D",
        "D:",
        "-_-",
        ">_<",
        "0_0",
        "hmm",
        ".........................",
        "...",
        "^_^",
        NULL
    }
    },
    {NULL, NULL}
};
 

5 thoughts on “IRC Bot Update

  1. Pingback: Thousands of service members honor fallen SEALs | MaritimeSecurity.Asia

  2. Hey Jakash3… could you possibly put this up on a git repository? I made my own C# IRC bot and I’m wondering if i could implement the “math” here

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: