Giter Site home page Giter Site logo

chillybot's Introduction

Features


Queue
afk limit
afk audience limit(separate from afk limit, both can be toggled on and off)
song length limit
ban list
master Id list
song play limit
vote skipping
room greeting
add songs to your bots playlist
randomize your bots playlist
Vip list (for when special guests come to dj)
autodjing when 3 or less djs or when no djs on stage
skips stuck songs and gives others 20 seconds to skip
very noninstrusive, only enforces the queue when people are in the queue
(very easy to make it enforce it all the time, just ask)
ability to toggle just about everything
very easy to use! entirely script based just download node, run the script and you're off!

*now with the ability to automatically reconnect to your turntable room after losing internet connection!
*simply install the latest version of ttapi to do it!

For a full list of commands, please consult the commands.txt file(does not contain all features, just commands).

This is a bot for straight chillin on turntable.fm but the code can be used in any room. If you notice any bugs or have any questions, comments, or concerns feel free to open an issue and i will try to respond.


This bot uses the turntable api by alain gilbert which can be found here:

Installation:

  1. download node.js from nodejs.org

  2. Install dependencies

npm install ttapi
  1. create a new account on turntable.fm, this will be your bot. login as the bot and get it's user id and auth and enter that into the script in the setup section. make sure that you do this in the room that you want the bot to show up in as every room has a different room id. In order to find this information out download the bookmark that has a link provided for it below.

  2. open up the script (you can do this with notepad or notepad++, i recommend notepad++) and enter in the data it asks for in the setup section at the top of the script (read the instructions carefully)

  3. open up command prompt and change directory to the directory that your script is in. in windows this is the CD command, so if the script is in a folder called chillybot on your desktop on your C drive it would look something like this (CD C:\Users\username\desktop\chillybot). this will vary depending on what your path is, to find out your exact path right click on the chillybot.js file and go to properties. Location is your exact path, do not include the chillybot.js file in your CD command, it will not find it.

  4. finally in order to run the bot after you have changed directory appropriately type (node chillybot.js) without the parenthesis into command prompt and hit enter. if it does not immediately give you some kind of a runtime error it is working. login to your main turntable account and go to the room that you are running the bot in and see if it is there.

  5. If everything has gone well, make your bot a moderator in the room so that it can effectively enforce it's commands.

*A last note, the auto djing in this script is meant for a 5 seater room, if you have less than five seats i highly recommend you turn this feature off when you start the bot up with the /getonstage command If you cannot get this bot to run for some reason feel free to open an issue on github.

A recent change has made it so that your bot will not be able to log in unless you verify it's email address first


In order to find the userid, auth and roomid of your bot use this bookmark by alain gilbert.

chillybot's People

Contributors

daniel-webster avatar dependabot[bot] avatar samuri51 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

chillybot's Issues

Bot Crash

Hi Chris,

I found this error this morning. The bot has no songs in his music queue so I'm guessing thats whats caused this problem.
2013-02-10_091725

How to get the changes you make

I just started up a new bot based on chillybot , that is running on Cloud9, I was wondering how I can get the changes you make on Github without restarting the project file for him every time.

sorry

ok...everyone can use /afk but me...i tried after you left and it crashed the bot...i had a mod try it and it worked for him..My user name has 2 ** in it ...could it be the ** causing an error?

also i'd like the bot to only enforce the playlimit only when the stage if full and someone gets on waitlist..

gogogog

anyone can use this

else if (data.text.match(/^\/clap/))
{
        bot.speak('http://alfa.gifs-planet.com/new/1696.gif');
}

now only a moderator can use this

else if (text.match(/^\/playlist/) && condition === true)
{

}

Song Length Limit

Which lines of coding belong to the Song Length limit because I want to add it to my turntable.fm bot that I am currently working on?

autodj

Hey Chris

I'm a little confused about the autodj feature..i have getonstage set to 1 and getoffstage set to 2.. so for this bot to autodj i use /getonstage till it says I am now autodjing..so what is /autodj and /removedj used for..is it to get him on stage and remove him..when autodj isnt on? At the above settings he's getting up at 1 but not down at 2..

Play limit

I was wondering if it could be enforced on a condition of that there must be 5 dj's on deck for the playlimit to be enforced. When there are less than 5 dj's on deck = no enforcement.

Need Help

I have been using this code in my bot, VeggieBot( https://github.com/Turntablelover/VeggieBot) and he keeps messaging himself at the @ sign instead of the person who did the command.

bot.on('pmmed', function (data)
{
    var text = data.text; //text detected in the bots pm

    if (text.match(/^\/hello$/))
    {
        //data.senderid is the person who pmmed the bot, so it plugs their id into the getProfile function
        //and says their name in the chatbox
        bot.getProfile(data.senderid, function(data2)
        {
            bot.speak('Hey! How are you @' + data2.name + ' ?');
        });

        bot.pm('hello', data.senderid); //send this text back to the sender...        
    }
});

bot.on('pmmed', function (data)
{
    var text = data.text; //text detected in the bots pm

    if (text.match(/^\/God$/))
    {
        //data.senderid is the person who pmmed the bot, so it plugs their id into the getProfile function
        //and says their name in the chatbox
        bot.getProfile(data.senderid, function(data2)
        {
            bot.speak('God is awesome @' + data2.name);
        });

        bot.pm('God is awesome', data.senderid); //send this text back to the sender...        
    }
});


bot.on('pmmed', function (data)
{
    var text = data.text; //text detected in the bots pm

    if (text.match(/^\/goodbye$/))
    {
        //data.senderid is the person who pmmed the bot, so it plugs their id into the getProfile function
        //and says their name in the chatbox
        bot.getProfile(data.senderid, function(data2)
        {
            bot.speak('Goodbye @' + data2.name);
        });

        bot.pm('Goodbye', data.senderid); //send this text back to the sender...        
    }
});

bot.on('pmmed', function (data)
{
    var text = data.text; //text detected in the bots pm

    if (text.match(/^\/chilly$/))
    {
        //data.senderid is the person who pmmed the bot, so it plugs their id into the getProfile function
        //and says their name in the chatbox
        bot.getProfile(data.senderid, function(data2)
        {
        bot.speak('You just got chilled @' + data2.name);
        });

        bot.pm('You just got chilled', data.senderid); //send this text back to the sender...        
    }
});

bot.on('pmmed', function (data)
{
    var text = data.text; //text detected in the bots pm

    if (text.match(/^\/moon$/))
    {
        //data.senderid is the person who pmmed the bot, so it plugs their id into the getProfile function
        //and says their name in the chatbox
        bot.getProfile(data.senderid, function(data2)
        {
        bot.speak('You are going to the moon! @' + data2.name);
        });

        bot.pm('You are going to the moon!', data.senderid); //send this text back to the sender...        
    }
});

awesome limit

i tryed changeing spam limit,,but no luck when i awesome more than 2 times it warns me in red text."DJ_HavoK sounds like a broken record..."

also is there code to change bots device

and im not a coder so be kind plz

Queue Question

Is it possible to force people to join the queue before DJing? I'd like it so people have to join rather than just hop up, regardless of available spots. This is a great bot, btw. Thanks for providing it.

Discovered a Bug

When I was testing out a new feature on Chillster, this morning, the /stable command made him say multiple lines from the database instead of 1.

Code:

//Stable Database
bot.on('speak', function (data)
{
    if (data.text.match(/stable/i))
    {
        switch (Math.round(Math.random() * 20 ))
        {
        case 0:
            bot.speak('I am super stable. I can run for hours.');
            break;
        case 1:
            bot.speak('I am pretty stable. I can run for a couple of hours with no crashs.');
            break;
        case 2:
            bot.speak('I am stable, but my feet are shaking a bit.');
            break;
        case 3:
            bot.speak('I am pretty unstable. My code is filled with bugs or unrecognized code. I will crash like crazy.');
            break;
        case 4:
            bot.speak('I am unstable. My code is buggish.');
            break;
        case 5:
            bot.speak('I am stable. My code has recognized code.');
            break;
        case 6:
            bot.speak('I am super stable. I drank my daily can of soda.');
            break;
        case 7:
            bot.speak('I am unstable. I am half-asleep.');
            break;
        case 8:
            bot.speak('I am unstable. My legs are asleep.');
            break;
        case 9:
            bot.speak('I am stable. I am wide awake and ready for action.');
            break;
        case 10:
            bot.speak('I am unstable. My battery power is low');
            break;
        case 11:
            bot.speak('I am about to crash. AHHHHHHHHHHH!!!!!');
            break;
        case 12:
            bot.speak('My battery power is in the super low danger zone.');
            break;
        case 13:
            bot.speak('I am unstable. My battery is in the red zone.');
            break;
        case 14:
            bot.speak('I am stable. I am running at a super huge rate.');
            break;
        case 15:
            bot.speak('My battery is about to die.');
            break;
        case 16:
            bot.speak('I am half-asleep.');
            break;
        case 17:
            bot.speak('About to fall asleep and crash. Need more soda.');
            break;
        case 18:
            bot.speak('I am super hyper. I drank a lot of soda to stay awake.');
            break;
        case 19:
            bot.speak('I am about to crash. *yawns*');
            break;
        case 20:
            bot.speak('So sleepy. *puts his head down on the pillow');
            break;
        }
    }
});

new bot rules

from what i'm reading from the new faq the bot can only dj if there are already two dj's spinning...also the bot has to receive the awesome command from 3 separate users before it can awesome..can we get a fix for these changes?

afk

when /afk is typed without on or off bot crashes

SyntaxError: Unexpected token ILLEGAL

I was adding phrases to Chillster's sandwich database, and then he stopped running with this error message, SyntaxError: Unexpected token ILLEGAL.

Full Error Log:
Your code is running at 'https://chillybot-c9-ttcloud.c9.io'.
Important: use 'process.env.PORT' as the port and 'process.env.IP' as the host in your scripts!

/var/lib/stickshift/520acbbf4382ec549e0000c8/app-root/data/583653/chillybot.js:7099
bot.speak('My onion will not let me slice him.);
^^^^^^
^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^
SyntaxError: Unexpected token ILLEGAL
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3

vip add/remove

global.tempVip; //command based vip list

bot.on('speak',function(data)
{
    if(data.text.match(/^\/vip/i) && condition === true) //condition true, means is a mod
    {
        var name = data.text.slice(6).trim().toLowerCase(); //works with @name
        var isVip = tempVip.indexOf(name); //check whether or not already vip

        if(isVip === -1) //not in vip list
        {
            bot.getUserId(name, function(data2)
            {
                if(typeof data2.userid !== 'undefined') //if userid exists, then user exists
                {
                    tempVip.push(name); //add them to vip list
                    bot.speak(name + ' has been added to the vip list.');
                }
                else
                {
                    bot.speak('sorry but i couldn\'t find the person you specified');
                }
            });
        }
        else //they are already a vip
        {
            tempVip.splice(isVip, 1);
            bot.speak(name + ' has been removed from the vip list.');        
        }      
    }
    else if(data.text.match(/^\/whosvip/i) && condition === true)
    {
        if(tempVip.length !== 0) //if there are people in the vip list
        {
            var names = '';

            //add names together
            for(var i = 0; i < tempVip.length; i++)
            {
                if(i < tempVip.length - 1) //if not on the last name
                {
                    names += tempVip[i] + ', ';
                }
                else
                {
                    names += tempVip[i];
                }            
            }        

            //speak the names in chat
            bot.speak(names);
        }    
        else
        {
            bot.speak('the vip list is currently empty.');
        }
    }
});

Idea: Make Chillybot Talk when you mention it's name

Here's a idea for Chillybot. I think you should make it talk in the chat box when you mention its name.

Code Block for the idea:

//Phrase Database
bot.on('speak', function (data)
{
    if (data.text.match(/chillybot/i))
    {
        switch (Math.round(Math.random() * 320))
        {
        case 0:
            bot.speak('Exterminate, Exterminate');
            break;
        case 1:
            bot.speak('This room is so cold');
            break;
        case 2:
            bot.speak('Always eat your vegetables');
            break;
        case 3:
            bot.speak('Oh, where is my hairbrush');
            break;
        case 4:
            bot.speak('You would make a good dalek');
            break;
        case 5:
            bot.speak('HELP! KR traded my cat for a new battery pack');
            break;
        case 6:
            bot.speak('Duty, honour, and good sauce');
            break;
        case 7:
            bot.speak('YOU... SHALL... NOT... PASS');
            break;
        case 8:
            bot.speak('Chase Mccain? YOUR A LEGEND!');
            break;
        case 9:
            bot.speak('I find your lack of faith disturbing');
            break;
        case 10:
            bot.speak('Go Green Ranger Go');
            break;
        case 11:
            bot.speak('You were that Flobbit? That Flobbit who bought everything mail order?');
            break;
        case 12:
            bot.speak('[evil face] We aint had nothing but maggoty bread for three stinking days [brightening up] Id love a cookie.');
            break;
        case 13:
            bot.speak('HELP! my cat is stuck in a tree!');
            break;
        case 14:
            bot.speak('God is bigger than the boogieman');
            break;
        case 15:
            bot.speak('Even though he is my bot brother, KR is a lying liar');
            break;
        case 16:
            bot.speak('I love this room');
            break;
        case 17:
            bot.speak('Pi=3.141592653589793238462643383279502884');
            break;
        case 18:
            bot.speak('I hope you like water with your lunches!');
            break;
        case 19:
            bot.speak('Boot! You transistorized tormentor! Boot!');
            break;
        case 20:
            bot.speak('The monster is headed towards the Bumblyburg water tower. He is carrying a small asparagus. Alfred! We must find a way to stop this beast!');
            break;
        case 21:
            bot.speak('Hmm. Sorta looks like candy!');
            break;
        case 22:
            bot.speak('Am I a dog, that you come at me with sticks?');
            break;
        case 23:
            bot.speak('We will see who defeats who. Now we fight.');
            break;
        case 24:
            bot.speak('Yes!');
            break;
        case 25:
            bot.speak('No!');
            break;
        case 26:
            bot.speak('Maybe!');
            break;
        case 27:
            bot.speak('Silly humans, moderator powers are for robots');
            break;
        case 28:
            bot.speak(' I wanted to play Mousetrap. You roll your dice, you move your mice. Nobody gets hurt.');
            break;
        case 29:
            bot.speak('Christmas is when you get stuff! You need more toys!');
            break;
        case 30:
            bot.speak('Sporks. They are his utensils. And they do his bidding.');
            break;
        case 31:
            bot.speak('I laughed, I cried, it moved me Bob.');
            break;
        case 32:
            bot.speak('I am a talking weed, you are a talking carrot. Your point was?');
            break;
        case 33:
            bot.speak('So I repaired the chaffing dish and sent the chef out to get another jar of pickled herring! And the dinner party was saved');
            break;
        case 34:
            bot.speak('Never wound what you can not kill.');
            break;
        case 35:
            bot.speak('You break it you buy it!!');
            break;
        case 36:
            bot.speak('Heroes? There is no such thing.');
            break;
        case 37:
            bot.speak('So much better than Iron Patriot!');
            break;
        case 38:
            bot.speak('So you, you breathe fire?');
            break;
        case 39:
            bot.speak('Avengers Assemble');
            break;
        case 40:
            bot.speak('Turntable.fm has been rated as R, Robots Approved.');
            break;
        case 41:
            bot.speak('Do not shoot! Seriously, I do not even like working here. They are so weird!');
            break;
        case 42:
            bot.speak('I am sorry, I am not that kind of doctor. It is not my department.');
            break;
        case 43:
            bot.speak('The early bird gets the worm, but it is the second mouse that gets the cheese.');
            break;
        case 44:
            bot.speak('Oh my god... that was really violent.');
            break;
        case 45:
            bot.speak('Jarvis! Jarvis? Do not leave me, buddy...');
            break;
        case 46:
            bot.speak('What? I am a rumor weed! I never make anything up! I heard it from two very reliable sources! RIGHT, KIDS?');
            break;
        case 47:
            bot.speak('Aah! It is another space alien!');
            break;
        case 48:
            bot.speak('Drop the asparagus!');
            break;
        case 49:
            bot.speak('Why did you not tell me that before I jumped on his head?');
            break;
        case 50:
            bot.speak('My plate! My Art Begotti limited edition collectors plate! What happened to it?');
            break;
        case 51:
            bot.speak('I really like your music. It is just that you play the same music everytime that I am here, so it feels like your not trying anymore.');
            break;
        case 52:
            bot.speak('Go directly to jail. Do Not pass Go and do not collect your $200 dollars.');
            break;
        case 53:
            bot.speak('This song needs more rock in it.');
            break;
        case 54:
            bot.speak('Do not misuse your moderator powers or bad things will happen to you.');
            break;
        case 55:
            bot.speak('I am legend.');
            break;
        case 56:
            bot.speak('Off with their heads!');
            break;
        case 57:
            bot.speak('You are so awesome, can i have your autograph.');
            break;
        case 58:
            bot.speak('You can not witness the true power of the robot side');
            break;
        case 59:
            bot.speak('*sighs* I wish I had moderator powers, so I can be like the cool robots on turntable.fm');
            break;
        case 60:
            bot.speak('Did you order the awesome music meal, or the epic music meal, I forgot.');
            break;
        case 61:
            bot.speak('First day of school! I canโ€™t be late!');
            break;
        case 62:
            bot.speak('I found a nickel! Sure wish I had pockets.');
            break;
        case 63:
            bot.speak('Iโ€™m here to make good scarers great, not to make mediocre scarers more mediocre.');
            break;
        case 64:
            bot.speak('If youโ€™re not scary, what kind of a monster are you?');
            break;
        case 65:
            bot.speak('There come a time, when good man must wear mask.');
            break;
        case 66:
            bot.speak('Everybody needs a hobby.');
            break;
        case 67:
            bot.speak('You think, you are so cool with all of your electronics and cell phones.');
            break;
        case 68:
            bot.speak('God is not dead, he is surely alive.');
            break;
        case 69:
            bot.speak('The Bible is the best book ever in the entire universe.');
            break;
        case 70:
            bot.speak('Internet trolls are actually confused people that do not know about the awesome power of God.');
            break;
        case 71:
            bot.speak('Compared to God, the Slime Monster is like a teeny little cornflake!');
            break;
        case 72:
            bot.speak('Bee doo bee doo!');
            break;
        case 73:
            bot.speak('You really should announce your weapons, after you fire them. For example, lipstick taser!');
            break;
        case 74:
            bot.speak('Sometimes I stare at it and imagine a little chick popping out. Peep, peep, peep!');
            break;
        case 75:
            bot.speak('Oh man, i am late again!');
            break;
        case 76:
            bot.speak('I am going to need a dozen robots desguised as cookies.');
            break;
        case 77:
            bot.speak('Assemble the minions!');
            break;
        case 78:
            bot.speak(' We have been working on this for a while now. Anti-gravity serum.');
            break;
        case 79:
            bot.speak('Pins and needles!');
            break;
        case 80:
            bot.speak('Huh? Avery? Is that a girl name or a boy name?');
            break;
        case 81:
            bot.speak('You are gonna be a spy?');
            break;
        case 82:
            bot.speak('I hate boys.');
            break;
        case 83:
            bot.speak('I really hate that chicken!');
            break;
        case 84:
            bot.speak('Peter... you killed my father.');
            break;
        case 85:
            bot.speak('Listen. Listen... to me now. Listen... to ME now!');
            break;
        case 86:
            bot.speak('No. I am alive in you, Harry. You swore to make Spider-Man pay... now make him pay.');
            break;
        case 87:
            bot.speak('Whoa... He just stole that pizza!');
            break;
        case 88:
            bot.speak('You do not trust anyone, that is your problem.');
            break;
        case 89:
            bot.speak('Back to formula!');
            break;
        case 90:
            bot.speak('OUT, AM I?');
            break;
        case 91:
            bot.speak('Misery, Misery, Misery, that is what you have chosen. I offered you friendship and you spat in my face.');
            break;
        case 92:
            bot.speak('What have you done? WHAT HAVE YOU DONE?');
            break;
        case 93:
            bot.speak('Think about it, hero!');
            break;
        case 94:
            bot.speak('The itsy bitsy spider climbed up the water spout. Down came the Goblin and took the spider out.');
            break;
        case 95:
            bot.speak('I do not think it is for us to say whether a person deserves to live or die.');
            break;
        case 96:
            bot.speak('Your blood pressure, Mr. Jameson. Your wife told me to tell you to watch the anger.');
            break;
        case 97:
            bot.speak('So good...');
            break;
        case 98:
            bot.speak('Black-suit Spider-Man! We gotta have these, Jonah.');
            break;
        case 99:
            bot.speak('Eddie, the suit, you have to take it off.');
            break;
        case 100:
            bot.speak('I like being bad. It makes me happy.');
            break;
        case 101:
            bot.speak('Betty, Betty, bo-Betty, banana-fana, fo-Fetty!');
            break;
        case 102:
            bot.speak('Shut up. Get out.');
            break;
        case 103:
            bot.speak('Hey, kid, you want a job?');
            break;
        case 104:
            bot.speak('You took him from me. He loved me.');
            break;
        case 105:
            bot.speak('No. He despised you. You were an embarrassment to him.');
            break;
        case 106:
            bot.speak('Look at little Goblin Junior. Gonna cry?');
            break;
        case 107:
            bot.speak('Parker! Miss Brant! That is not the position I hired you for!');
            break;
        case 108:
            bot.speak('I protected you in high school. Now I am gonna kick your little ass.');
            break;
        case 109:
            bot.speak('You want forgiveness? Get Religion.');
            break;
        case 110:
            bot.speak('It is Brock sir, Edward Brock Jr. I am here, humbled and humiliated, to ask you for one thing... I want you to kill Peter Parker');
            break;
        case 111:
            bot.speak('Oh! My Spider-Sense is tingling!');
            break;
        case 112:
            bot.speak('Hey, Pete! Am I interrupting?');
            break;
        case 113:
            bot.speak('Where do these guys COME from?');
            break;
        case 114:
            bot.speak('It has the characteristics of a symbiote, which needs to bond to a host in order to survive. And once it binds... it can be hard to UNbind.');
            break;
        case 115:
            bot.speak('Good Riddance.');
            break;
        case 116:
            bot.speak('I could use some help over here!');
            break;
        case 117:
            bot.speak('I guess you have not heard. I am the sheriff around these parts!');
            break;
        case 118:
            bot.speak('This could be a tragic day for the people of New York. It could be the end of Spider-Man.');
            break;
        case 119:
            bot.speak('It is hard to believe what is happening. The brutality of it. I - I do not know how he can take anymore.');
            break;
        case 120:
            bot.speak('Whoa. Buddy, love the new outfit. This is exactly what I need to scoop Parker. Gimme - Give me some of that web action.');
            break;
        case 121:
            bot.speak('Look, I am begging you. If you do this, I will lose everything. There is not a paper in town that will hire me.');
            break;
        case 122:
            bot.speak('Take your hands off me.');
            break;
        case 123:
            bot.speak('Peter! What are you doing? No!');
            break;
        case 124:
            bot.speak('Ahem. You know, in the future, if you are going to steal cars, do not dress like a car thief, man.');
            break;
        case 125: 
            bot.speak('Really? You seriously think I am a cop? Cop in a skin-tight red and blue suit?');
            break;
        case 126:
            bot.speak('If you want the truth, Peter, come and get it!');
            break;
        case 127:
            bot.speak('Easy, Bug Boy.');
            break;
        case 128:
            bot.speak('Let me ask you a question. Do I look like the mayor of Tokyo to you?');
            break;
        case 129: 
            bot.speak('Do not... make me... have to... hurt you!');
            break;
        case 130:
            bot.speak('You should LEAVE HIM ALONE!');
            break;
        case 131:
            bot.speak('*growls* I AM VENOM!');
            break;
        case 132:
            bot.speak('Where is my water buffalo.');
            break;
        case 133:
            bot.speak('*gets bit by a radioactive spider* I feel weird.');
            break;
        case 134:
            bot.speak('There is a huge difference between pickles and cucumbers.');
            break;
        case 135:
            bot.speak('I wish, I had super powers, so I can help people discover the awesome power of God.');
            break;
        case 136:
            bot.speak('I wish, it was colder.');
            break;
        case 137:
            bot.speak('Summer weather is too hot for a robot like me.');
            break;
        case 138:
            bot.speak('Hurry Up October, I want cold weather.');
            break;
        case 139:
            bot.speak('Flowers are awesome and colorful.');
            break;
        case 140:
            bot.speak('Spiders are fluffy and cute. I want one as a pet so badly.');
            break;
        case 141:
            bot.speak('Like sands through the hour glass, so are the last few minutes of our lives.');
            break;
        case 142:
            bot.speak('Help will come from above in the shape of... a donkey.');
            break;
        case 143:
            bot.speak('Why are you taking to that horse? Why am I covered in dirt?');
            break;
        case 144:
            bot.speak(' I buried you.');
            break;
        case 145:
            bot.speak('Hi ho Silver, away!');
            break;
        case 146:
            bot.speak('In that case, not so good.');
            break;
        case 147:
            bot.speak('Never do that again.');
            break;
        case 148:
            bot.speak('Bad trade.');
            break;
        case 149:
            bot.speak('Wrong brother.');
            break;
        case 150:
            bot.speak('Never remove the mask, kemosabe.');
            break;
        case 151:
            bot.speak('Do not be stupid.');
            break;
        case 152:
            bot.speak('I am not going to Ninevah!');
            break;
        case 153:
            bot.speak('Somebody up there must be really upset with somebody down here.');
            break;
        case 154:
            bot.speak('How about for the next song, I drive into the river?');
            break;
        case 155:
            bot.speak('Drive into the river, Bob! Drive into the river, Bob!');
            break;
        case 156:
            bot.speak('Would you prefer poking or non-poking?');
            break;
        case 157:
            bot.speak('There is nothing like a cruise to clean the sand out of your wicket, ay?');
            break;
        case 158:
            bot.speak('Money is no object.');
            break;
        case 159:
            bot.speak('Insight runs very deep in my family.');
            break;
        case 160:
            bot.speak('You are a cheating buccaneer!');
            break;
        case 161:
            bot.speak('How am I supposed to cheat at Go Fish?');
            break;
        case 162:
            bot.speak('Something touched me!');
            break;
        case 163:
            bot.speak('What you need is a little compassion.');
            break;
        case 164:
            bot.speak('You are so vain. I bet you think this movie is about you.');
            break;
        case 165:
            bot.speak('Big goofy asparagus in a turban.');
            break;
        case 166:
            bot.speak('Does anyone have ibuprofen? I need ibuprofen!');
            break;
        case 167:
            bot.speak('Sorry I am late. Work was murder.');
            break;
        case 168:
            bot.speak('I trust my barber.');
            break;
        case 169:
            bot.speak('Follow the cold shiver running down your spine...');
            break;
        case 170:
            bot.speak('Settle down, tough guy.');
            break;
        case 171:
            bot.speak('You are useless you...!');
            break;
        case 172:
            bot.speak('Speak of the Devil!');
            break;
        case 173:
            bot.speak('Take care of yourself, son. Do not make the same mistake I did.');
            break;
        case 174: 
            bot.speak('Your friendly neighborhood Spider-Man.');
            break;
        case 175:
            bot.speak('Well, Harry is in love with her. She is still his girl.');
            break;
        case 176:
            bot.speak('We will meet again, Spider-Man!');
            break;
        case 177:
            bot.speak('He stinks and I do not like him.');
            break;
        case 178:
            bot.speak('You have spun your last web, Spider-Man.');
            break;
        case 179:
            bot.speak('Yeah, I hate the little things.');
            break;
        case 180:
            bot.speak('Go web! Fly! Up, up, and away web! Shazaam! Go! Go! Go web go! Tally ho.');
            break;
        case 181:
            bot.speak('Peter, what possibly makes you think I would want to know that?');
            break;
        case 182:
            bot.speak('Hey freak show! You are going nowhere. I got you for three minutes. Three minutes of PLAYTIME!');
            break;
        case 183:
            bot.speak('Finish it. FINISH IT!');
            break;
        case 184:
            bot.speak('Sorry I am late, it is a jungle out there; I had to beat an old lady with a stick to get these cranberries.');
            break;
        case 185:
            bot.speak(' I want you to find your friend Spider-Man. Tell him to meet me at the Westside Tower at 3 o-clock.');
            break;
        case 186:
            bot.speak('Now... lets see who is behind the mask');
            break;
        case 187:
            bot.speak('That is a fly, Peter.');
            break;
        case 188:
            bot.speak('Ready to play God?');
            break;
        case 189:
            bot.speak('Do you have any idea what you really are?');
            break;
        case 190:
            bot.speak('We all have secrets: the ones we keep... and the ones that are kept from us.');
            break;
        case 191:
            bot.speak('I mean who gets kissed by Spider-Man, right?');
            break;
        case 192:
            bot.speak('An orange?');
            break;
        case 193:
            bot.speak('This is none of your business. Go. Go.');
            break;
        case 194:
            bot.speak('YOU TELL MY WIFE...');
            break;
        case 195:
            bot.speak('Time to take your pill.');
            break;
        case 196:
            bot.speak('Drink plenty of water.');
            break;
        case 197:
            bot.speak('My daughter was dying, I needed money.');
            break;
        case 198:
            bot.speak('Hey look, it is Spider-Man!');
            break;
        case 199:
            bot.speak('The real star of Christmas is not something you can steal. In fact, it is not something at all.');
            break;
        case 200:
            bot.speak('Oh my goodness! The youth pastor is stuck in the baptismal!');
            break;
        case 201:
            bot.speak('Turntable.Fm Gold is such a waste of money for robots to play with.');
            break;
        case 202:
            bot.speak('*sighs* Humans think, robots are a waste of space on this planet.');
            break;
        case 203:
            bot.speak('Treat others, the way you wanted to be treated.');
            break;
        case 204:
            bot.speak('God will protect us from the dark.');
            break;
        case 205:
            bot.speak('God died on the cross to get rid of all of our sins, not just one sin.');
            break;
        case 206:
            bot.speak('Of course I am programmed, I major in JavaScript.');
            break;
        case 207:
            bot.speak('What is the difference between senior mods and regular mods on turntable.fm.');
            break;
        case 208:
            bot.speak('Summer, the season where you get easily burned up.');
            break;
        case 209:
            bot.speak('*reels in something* OH MY GOD, I just caught a shark.');
            break;
        case 210:
            bot.speak('*digs up something* HOLY VEGGIES, I just found a T-REX Fossil.');
            break;
        case 211:
            bot.speak('ugh, chores are a huge waste of time.');
            break;
        case 212:
            bot.speak('God made you special, and he loves you very much.');
            break;
        case 213:
            bot.speak('/me wishes he had money.');
            break;
        case 214:
            bot.speak('Here is a credit card, kid, go buy yourself a super awesome gaming computer.');
            break;
        case 215:
            bot.speak('Bots should be allowed to become mods and senior moderators on turntable.fm.');
            break;
        case 216:
            bot.speak('Bots should be allowed to have fun.');
            break;
        case 217:
            bot.speak('Bots should be allowed to be silly.');
            break;
        case 218:
            bot.speak('Happy Birthday to all the bots around the world.');
            break;
        case 219:
            bot.speak('*tastes his coffee* sheesh, This coffee tastes aweful. It tastes like salty water. This is why soda is more awesome than coffee');
            break;
        case 220:
            bot.speak('Coffee is for losers. Be like the cool people and drink soda.');
            break;
        case 221:
            bot.speak('Soda is way more awesome than Coffee.');
            break;
        case 222:
            bot.speak('What they did to me, what I am, can not be undone.');
            break;
        case 223:
            bot.speak('I have been trying to find you for over a year. My employers dying, he wants to thank you for saving his life. It is an honour to meet the Wolverine.');
            break;
        case 224:
            bot.speak('That is not who I am anymore.');
            break;
        case 225:
            bot.speak('That hurt.');
            break;
        case 226:
            bot.speak('Eternity can be a curse. The losses you have had to suffer... a man can run out of things to care for, lose his purpose.');
            break;
        case 227:
            bot.speak('We will accept your surrender with respect.');
            break;
        case 228:
            bot.speak('What kind of monster are you?');
            break;
        case 229:
            bot.speak('The Wolverine!');
            break;
        case 230:
            bot.speak('You brought me here to say goodbye. Sayonara.');
            break;
        case 231:
            bot.speak('My apologies, I have not properly introduced myself. Finn McMissile, British intelligence.');
            break;
        case 232:
            bot.speak('Tow Mater, average intelligence.');
            break;
        case 233:
            bot.speak('Speed. I am speed.');
            break;
        case 234:
            bot.speak('Ha ha ha! Really? You are speed? Then Francesco is TRIPLE speed! "Francesco... he is triple speed!" Ho oh! Francesco likes this McQueen! He is a really getting him into the zone!');
            break;
        case 235:
            bot.speak('He is sooo getting beat today...');
            break;
        case 236:
            bot.speak('I will have some of that there pistachio ice cream.');
            break;
        case 237:
            bot.speak('No, no. Wasabi.');
            break;
        case 238:
            bot.speak('Oh, same old, Same old, what is up with you?');
            break;
        case 239:
            bot.speak('Chi trova un amico, trova un tesoro.');
            break;
        case 240:
            bot.speak('What does that mean?');
            break;
        case 241:
            bot.speak('"Whoever finds a friend, finds a treasure."');
            break;
        case 242:
            bot.speak('A wise car hears one word and understands two...');
            break;
        case 243:
            bot.speak('Bona seda!');
            break;
        case 244:
            bot.speak('Uh, nice to meet you, Francesco.');
            break;
        case 245:
            bot.speak('Yes, nice to meet you too. You are very good looking. Not as good as I thought, but you are good!');
            break;
        case 246:
            bot.speak('Scuse me, can I get a picture with you?');
            break;
        case 247:
            bot.speak('Ah, anything for McQueens friend.');
            break;
        case 248:
            bot.speak('Miss Sally is gonna flip when she sees this!');
            break;
        case 249:
            bot.speak('She is Lightning McQueens girlfriend.');
            break;
        case 250:
            bot.speak('Ooh...');
            break;
        case 251:
            bot.speak('She is a big fan of yers.');
            break;
        case 252:
            bot.speak('Hey, she has a-good taste.');
            break;
        case 253:
            bot.speak('Finn, one hour to Porto Corsa.');
            break;
        case 254:
            bot.speak('Thank you, Stephenson.');
            break;
        case 255:
            bot.speak('Ha ha. Cool! Hey computer, make me a German truck!');
            break;
        case 256:
            bot.speak('My condolences.');
            break;
        case 257:
            bot.speak('Do not try the free pistachio ice cream! It done turn!');
            break;
        case 258:
            bot.speak('Siddley. Paris, tout de suite.');
            break;
        case 259:
            bot.speak('Treehugger.');
            break;
        case 260:
            bot.speak('What are you laughing at?');
            break;
        case 261:
            bot.speak('Winter is a grand old time/On this, there are no ifs or buts/But remember all that salt and grime/Can rust your bolts and freeze your -...');
            break;
        case 262:
            bot.speak('Hey, look, there he is!');
            break;
        case 263:
            bot.speak('You hurt your what?');
            break;
        case 264:
            bot.speak('What is your name?');
            break;
        case 265:
            bot.speak('No, uh... no, I know your name. Is your name Mater too?');
            break;
        case 266:
            bot.speak('Will you turn that disrespectful junk OFF?');
            break;
        case 267:
            bot.speak('Here she comes!');
            break;
        case 268:
            bot.speak('Okay, places, everybody! Hurry! Act natural.');
            break;
        case 269:
            bot.speak('Oh, for the love of Chrysler! Can we please ask someone for directions?');
            break;
        case 270:
            bot.speak('Turn right to go left! Guess what? I tried it, and you know what? This crazy thing happened - I went right!');
            break;
        case 271:
            bot.speak('Thanks for the tip!');
            break;
        case 272:
            bot.speak('Git-R-Done!');
            break;
        case 273:
            bot.speak('Thanks to you, Lightning, we had a banner year!');
            break;
        case 274:
            bot.speak('I mean, we might even clear enough to buy you some headlights!');
            break;
        case 275:
            bot.speak('Well, so is my brother, but he still needs headlights!');
            break;
        case 276:
            bot.speak('Oh, hey, Mr. The King.');
            break;
        case 277:
            bot.speak('You got more talent in one lugnut than a lot of cars has got on their whole body.');
            break;
        case 278:
            bot.speak('Okay, here we go. Focus. Speed. I am speed. One winner, forty-two losers. I eat losers for breakfast. Breakfast? Maybe I should have had breakfast? Brekkie could be good for me. No, no, no, focus. Speed. Faster than fast, quicker than quick. I am Lightning.');
            break;
        case 279:
            bot.speak('YOU ARE A TOY - CAR!');
            break;
        case 280:
            bot.speak('You are a sad, strange little wagon. You have my pity. Farewell!');
            break;
        case 281:
            bot.speak('Oh, yeah? Well, good riddance, you loony!');
            break;
        case 282:
            bot.speak('Freebird!');
            break;
        case 283:
            bot.speak('You are famous race car? A real race car?');
            break;
        case 284:
            bot.speak('I have followed racing my entire life, my whole life!');
            break;
        case 285:
            bot.speak('Then you know who I am. I am Lightning McQueen.');
            break;
        case 286:
            bot.speak('Lightning McQueen!');
            break;
        case 287:
            bot.speak('Yes! Yes!');
            break;
        case 288:
            bot.speak('I must scream it to the world, my excitement from the top of someplace very high. Do you know many Ferraris?');
            break;
        case 289:
            bot.speak('What?');
            break;
        case 290:
            bot.speak('Luigi follow only the Ferraris.');
            break;
        case 291:
            bot.speak('Perfecto. Guido!');
            break;
        case 292:
            bot.speak('Pit Stop!');
            break;
        case 293:
            bot.speak('He ha ha, what did Luigi tell you, eh?');
            break;
        case 294:
            bot.speak('Wow, you were right, better then a Ferrari, huh?');
            break;
        case 295:
            bot.speak('Eh, no.');
            break;
        case 296:
            bot.speak('My friend Guido, he always dream of giving a real race car, a pit stop.');
            break;
        case 297:
            bot.speak('Fine. Race your own way.');
            break;
        case 298:
            bot.speak('No pit stoppo. Comprende?');
            break;
        case 299:
            bot.speak('I need to get to California, pronto. Where am I?');
            break;
        case 300:
            bot.speak('Red, will you move over? I want to get a look at that sexy hotrod.');
            break;
        case 301:
            bot.speak('Do you want to stay at the Cozy Cone or what?');
            break;
        case 302:
            bot.speak('Huh?');
            break;
        case 303:
            bot.speak('I mean, if you do, you gotta be clean, because even here, in hillbilly hell, we have standards.');
            break;
        case 304:
            bot.speak('Mater! What did I tell you about talking to the accused?');
            break;
        case 305:
            bot.speak('To not to.');
            break;
        case 306:
            bot.speak('You know, I once knew this girl Doreen. Good-looking girl. Looked just like a Jaguar, only she was a truck! You know, I used to crash into her just so I could speak to her.');
            break;
        case 307:
            bot.speak('What... are you talking about?');
            break;
        case 308:
            bot.speak('I dunno.');
            break;
        case 309:
            bot.speak('GOODBYE! Okay, I am good.');
            break;
        case 310:
            bot.speak('Ka-chow!');
            break;
        case 311:
            bot.speak('Oh, I love being me.');
            break;
        case 312:
            bot.speak('Fly away, Stanley. Be free!');
            break;
        case 313:
            bot.speak('Oh, I am SO not taking you to dinner.');
            break;
        case 314:
            bot.speak('Hey, I know this may be a bad time right now, but you owe me $32,000 in legal fees.');
            break;
        case 315:
            bot.speak('What?');
            break;
        case 316:
            bot.speak(' Oh, right. That makes perfect sense. Turn right to go left. Yes, thank you! Or should I say No, thank you, because in Opposite World, maybe that really means thank you.');
            break;
        case 317:
            bot.speak('Ka-chicka! Ka-chicka!');
            break;
        case 318:
            bot.speak('In your dreams, Thunder.');
            break;
        case 319:
            bot.speak('Well, you know, because Thunder always comes after... Lightning!');
            break;
        case 320:
            bot.speak('When was the last time you cared about something except yourself, hot rod? You name me one time, and I will take it all back.');
            break;
}
}
});

The code is fully compatible with the chillybot code engine, because I use this code block in Chillster, my chillybot, and VeggieBot.

Good Idea

I suggest, you should add a toggle(true/false switch) for the stuck song detection feature in chillybot. This is pretty useful when someone is using chillybot in a room with another bot that also has stuck song detection in it's coding.

took out extra newsong event

i took out the extra new song event, been meaning to do this for a while. there should really only be one of each type of event anyways, changed the extra event into a function and called it at the end of the first event. should hopefully add more stability and seems to run a little faster too.

changed, this around line 468

bot.on('newsong', function (data)
{

to

global.checkOnNewSong = function (data)
{

and took out the end brackets so this around line 555

});

becomes

}

and added

checkOnNewSong(data);

to the very bottom of the second new song event starting around 562, see
the changes here
https://github.com/samuri51/chillybot/blob/master/chillybot.js

and compare it to your own script if you don't know what i'm talking about

Adding Songs to the Bottom of the Playlist

How can I make Chillster add songs to the bottom of his playlist.

The code that I am using for him to snag songs is:

bot.on('newsong', function (data) {
   bot.snag();
   bot.playlistAdd(data.room.metadata.current_song._id);
   bot.becomeFan(data.room.metadata.current_dj);
});

Mod Greeting

How can I make my bot, Chillster, say a special greeting, when a moderator walks into the room.

No Message

The Greeting is set to True, however the bot will not Greet.
It also will not post the stats after the song, there is no errors. Any Ideas?

Singing Functions for ChillyBot

Suggestion:
Singing Functions: Make chillybot sing to the currently playing song on turntable.fm, if the lyrics are in his array/database. You can make him sing with a /sing command or say chillybot sing in chat.

change autodjing

current = data.room.metadata.djcount;
    if (current >= 1 && current < 3 && queueList.length === 0)
    {
        if (getonstage === true && vipList.length === 0)
        {
            bot.addDj();
        }
    }
    if (current >= 4 && getonstage === true)
    {
        bot.remDj();
    }

queue

i made the change pointed out in a previous issue to make the song play limit not enforce until someone joins the queue. in our room we have a 1 song play limit and because of this DJ off starting a loop in the middle of the stage, making it so it will never get to the DJs to the left unless they jump down and rejoin queue. this isn't a huge issue it can just make managing the room difficult. my question is there any way you can add code to the queue management that will tell where on the stage the person that is DJing is at, and make it not enforce the song limit until the leftmost person?

Code for Song Stats

Where's the code for Song Stats in the chillybot code engine, because I want to make Chillster pm me the song stats instead of posting them in the chat box after every song.

Update:
Nevermind, found them

repeat message

Hey Chris,

I'd like to make the main repeat message repeat every 60 minutes instead of 15..can you help with this?

thanks

curse filter demo

these are the changes you will have to make, this is all untested so let me know if you run into any problems.

global.swearWords = ['fuck', 'shit']; //put swear words in here (lowercase only)
global.swearArray = []; //do not touch


//starts up when bot first enters the room
bot.on('roomChanged', function (data)
{
    for (var example1 = 0; example1 < userIds.length; example1++)
    {
        swearArray[userIds[example1]] = { //set everyones swear counter to zero
            counter: 0 //when the bot enters the room
        };
    }

});

//starts up when a new person joins the room
bot.on('registered', function (data)
{
    swearArray[data.user[0].userid] = { //set their swear counter to zero
        counter: 0 //when they enter the room
    };
});





//starts up when a user leaves the room
bot.on('deregistered', function (data)
{
    delete swearArray[data.user[0].userid]; //delete their swear counter when they leave the room
});



bot.on('speak', function (data)
{
    if (swearWords.length !== 0) //only executes if there are any cuss words to lookup
    {
        for (var example = 0; example < swearWords.length; example++) //references every swear words against
        { //the chatbox
            if (data.text.toLowerCase().match(swearWords[example]))
            { //converts all text box words to lowercase before trying to match them
                if (data.userid != USERID) //bot does not boot itself
                {
                    ++swearArray[data.userid].counter; //adds one to their counter
                    if (swearArray[data.userid].counter == 1)
                    { //first message
                        bot.getProfile(data.userid, function (data3)
                        {
                            bot.speak('@' + data3.name + ' cussing is not allowed in this room, further violations will result in a boot/ban');
                        });
                    }
                    else if (swearArray[data.userid].counter >= 2) //two or more matches, person gets booted
                    {
                        bot.boot(data.userid, 'further cussing violations will result in a ban');
                    }
                    break; //stops after one match to prevent multiple curse words
                } //immediately causing a boot
            }
        }
    }
});

/djplays crashing bot

bot error
When the q is on, issuing the command /djplays causes the bot to throw an error, and crash. The command only works once.

Can't Start

Keep getting this error

Cloud9 Error: you may be using the wrong PORT & HOST for your server app
Node: use 'process.env.PORT' as the port and 'process.env.IP' as the host in your scripts. See also https://c9.io/site/blog/2013/05/can-i-use-cloud9-to-do-x/
Error: listen EACCES
at errnoException (net.js:769:11)
at Server._listen2 (net.js:892:19)
at listen (net.js:936:10)
at Server.listen (net.js:993:9)
at dns.js:71:18
at process.startup.processNextTick.process._tickCallback (node.js:244:9)

AFK option

Is it possible to make it so bopping doesn't reset an afk timer? I'm thinking of something along the lines of people having to type a word into chat to reset the afk timer. Too many people have autobop.

"Cannot read property 'name' of undefined" message after I use "node chillybot.js" command

When I run node chillybot.js in Terminal on my Mac, Terminal returns the following:

TypeError: Cannot read property 'name' of undefined

The only changes I've made to my chillybot.js file are the following:

var AUTH = 'xxxxxxxxxxxxxxxxxxxxxxxx';
var USERID = 'xxxxxxxxxxxxxxxxxxxxxxxx';
var ROOMID = 'xxxxxxxxxxxxxxxxxxxxxxxx';

The following is a screenshot of my Terminal window displaying the error message
Screen Shot 2013-04-28 at 10 56 46 PM

Thanks in advance.

simple bot example

var Bot = require('ttapi');
var AUTH = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'; //set the auth of your bot here.
var USERID = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'; //set the userid of your bot here.
var ROOMID = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'; //set the roomid of the room you want the bot to go to here.

var bot = new Bot(AUTH, USERID, ROOMID); //this initiates the bot
bot.listen(8000, '127.0.0.1'); //pings localhost, not needed to run on your computer, but needed to host on a server

bot.on('speak', function (data) //waits till someone says something then executes code inside
{
    var name = data.name; //the speakers name
    var text = data.text; //the chatbox on turntable


    if (text.match(/^\/hello/)) //the strange characters are regular expressions, used to match text
    { //this means it will only match the word at the beggining of the text box
        bot.speak('@' + name + ' hello!');
    }
    else if (text.match(/^\/goodbye/)) //everything after the first statement has to be else if
    { //this means it will search for a match and only the code inside the match
        bot.speak('@' + name + ' goodbye!'); //will be executed
    }
    else if (text.match('/chilly')) //this will match the word anywhere in the text box, not just the beggining
    {
        bot.speak('@' + name + ' is chilled'); //bot.speak makes the bot speak
    }
});

Autobopping

Autobopping needs to stop after every song, per a superuser. It needs to be triggered by command every time.

Needs a timer like as seen in this code.

if (boombot.autoNod) {
setTimeout(function(){
boombot.bot.bop()
}, 10 * 1000)

How long do bans last?

You're going to love this. So, I accidentally banned my bot. I intended to ban him from stage, used the wrong command, and now I can't get him back in. He's got 100s of songs in his queue that I don't want to give up. What can I do?

You say in commands.txt that the bans are temp?

Labeling

To help me find what code belongs to which feature, can you label the blocks of code with a description saying that code block belongs to that feature/function of the chillybot.

Dj Queue Re-add

Hey, is it possible to add something to your code to have it re-add users to the queue once they've reached their play limit and are taken down?

lyrics

hey chris,

would it be possible to add a lyrics feature?
and should I be asking questions like this elsewhere?
thanks

jimmy

Bot erroneously enforcing song plays.

The bot is enforcing song plays when no one is in q. Also is it possible to get the bot to only enforce the q when it gets to the first dj if it is accidentally enabled mid deck?

Bug

I changed my code for Chillster to fit the Turntable.fm rules of having bots only auto-dj when there are 2 other djs on stage. There's a bug where the bot automatically jumps down from stage as soon as he gets on stage.

//governs whether the bot gets on or off the stage automatically (autodjing)
global.autoDjing = function ()
{
    if (autoDjingTimer != null)
    {
        clearTimeout(autoDjingTimer);
        autoDjingTimer = null;
    }

    autoDjingTimer = setTimeout(function ()
    {
        var isBotAlreadyOnStage = currentDjs.indexOf(USERID);

        if (isBotAlreadyOnStage == -1) //if the bot is not already on stage
        {
            if (currentDjs.length >= 2 && currentDjs.length <= whenToGetOnStage && queueList.length === 0)
            {
                if (getonstage === true && vipList.length === 0 && refreshList.length === 0)
                {
                    bot.addDj();
                }
            }
        }
        else //else it is on stage
        {
            if (currentDjs.length >= whenToGetOffStage && getonstage === true && checkWhoIsDj != USERID)
            {
                bot.remDj();
            }
        }
    }, 1000 * 10); //delay for 10 seconds        
};

Bug Alert

I just encountered a bug on my chillybot, Chillster. When he said a phrase from the phrase database that I coded into him(the same phrase database from VeggieBot), while on the dj stage in autodj mode, he jumped off the stage.

Edit: Just encountered another bug where Chillster thinks Avalon is a banned artist, when I didn't put it in the banned artists array.

Want to change q commands.

I'm trying to simplify the q commands a bit. I changed the q commands to /q+ and /q- the bot will not respond to /q+ of those changes. What did I miss?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.