//Define our function responsible for extending the bot.
function extend() {
//If the bot hasn't been loaded properly, try again in 1 second(s).
if (!window.bot) {
return setTimeout(extend, 1 * 1000);
}
//Precaution to make sure it is assigned properly.
var bot = window.bot;
//Load custom settings set below
bot.retrieveSettings();
/*
Extend the bot here, either by calling another function or here directly.
Model code for a bot command:
bot.commands.commandCommand = {
command: 'cmd',
rank: 'user/bouncer/mod/manager',
type: 'startsWith/exact',
functionality: function(chat, cmd){
if(this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if( !bot.commands.executable(this.rank, chat) ) return void (0);
else{
//Commands functionality goes here.
}
}
}
*/
bot.commands.baconCommand = {
command: 'bacon', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me Bacon!!!");
}
}
},
bot.commands.baitCommand = {
command: 'bait', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/zbl1OON.gif");
}
}
},
bot.commands.ohmuCommand = {
command: 'ohmu', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/gNM8cpl.png");
}
}
},
bot.commands.jackCommand = {
command: 'jack', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/VF7F5Tf.png");
}
}
},
bot.commands.psyCommand = {
command: 'psy', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/r3aDdfY.png");
}
}
},
bot.commands.ktvCommand = {
command: 'ktv', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/pWx1tFs.png");
}
}
},
bot.commands.shrCommand = {
command: 'shr', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/2o6o9ZP.png");
}
}
},
bot.commands.assCommand = {
command: 'ass', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/LlJGcPg.png");
}
}
},
bot.commands.jepCommand = {
command: 'jep', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/MTmwzqE.png");
}
}
},
bot.commands.dealCommand = {
command: 'deal', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/GCn5BGT.gif");
}
}
},
bot.commands.victorfm = {
command: 'victorfm', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me when the bass drop¿");
}
}
},
bot.commands.tupCommand = {
command: 'tup', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/hhf39vN.gif");
}
}
},
bot.commands.rektCommand = {
command: 'rekt', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me NOT REKT ☐ REKT ☑ ");
}
}
},
bot.commands.slapCommand = {
command: 'slap',
rank: 'user',
type: 'startsWith',
cookies: ['Slaps your face with his dick.',
'Slaps your ass',
'Slaps your face.',
'Slaps your face with a fish http://38.media.tumblr.com/13352b0f83d5c06144376c26af1b0a24/tumblr_mh14njBlKV1qzfebyo1_400.gif'
],
getCookie: function () {
var c = Math.floor(Math.random() * this.cookies.length);
return this.cookies[c];
},
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!basicBot.commands.executable(this.rank, chat)) return void (0);
else {
var msg = chat.message;
var space = msg.indexOf(' ');
if (space === -1) {
API.sendChat(basicBot.chat.eatcookie);
return false;
}
else {
var name = msg.substring(space + 2);
var user = basicBot.userUtilities.lookupUserName(name);
if (user === false || !user.inRoom) {
return API.sendChat(subChat(basicBot.chat.nousercookie, {name: name}));
}
else if (user.username === chat.un) {
return API.sendChat(subChat(basicBot.chat.selfcookie, {name: name}));
}
else {
return API.sendChat(subChat(basicBot.chat.cookie, {nameto: user.username, namefrom: chat.un, cookie: this.getCookie()}));
}
}
}
}
},
bot.commands.nipafaceCommand = {
command: 'nipaface', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/iKY3GNW.png");
}
}
},
bot.commands.riggedCommand = {
command: 'rigged', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me Roulette not even rigged :opieop:");
}
}
},
bot.commands.hpCommand = {
command: 'hp', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me heil Hornpub :forsensheffy:7:forsensheffy:/");
}
}
},
bot.commands.krCommand = {
command: 'kr', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/x4YcuTx.jpg");
}
}
},
bot.commands.yoshiiCommand = {
command: 'yoshii', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/gVfApTR.png");
}
}
},
bot.commands.chatripCommand = {
command: 'chatrip', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me RIP in peace Chat :kappa:");
}
}
},
bot.commands.vaxCommand = {
command: 'vax', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/RlJUTnH.png");
}
}
},
bot.commands.gayCommand = {
command: 'gay', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/XiStfc6.png");
}
}
},
bot.commands.cancerCommand = {
command: 'cancer', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/7EFlunu.gif");
}
}
},
bot.commands.sanicCommand = {
command: 'sanic', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me :sanic::sanic: GOTTA GO FAST!!!!!");
}
}
},
bot.commands.scotlandCommand = {
command: 'scotland', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me :scotland: FOREVVVVAAAHHHHH!!!!!");
}
}
},
bot.commands.wtfCommand = {
command: 'wtf', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me WHAT IN THE FUCK ARE WE DOING HERE!!!!");
}
}
},
bot.commands.flyinCommand = {
command: 'flyin', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me fly in mouth, dafuq i can't see!!");
}
}
},
bot.commands.fegCommand = {
command: 'feg', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me You're all faggots :keepo:");
}
}
},
bot.commands.notgayCommand = {
command: 'notgay', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me not gay at all :kappa:");
}
}
},
bot.commands.lolCommand = {
command: 'lol', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me LoL is for roleplayers :keepo:");
}
}
},
bot.commands.notsanicCommand = {
command: 'notsanic', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me not :sanic: :kappa:");
}
}
},
bot.commands.fatdarudeCommand = {
command: 'fatdarude', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/S5UL4NB.jpg");
}
}
},
bot.commands.cptjeppeCommand = {
command: 'cptjeppe', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://imgur.com/BdDjTlC");
}
}
},
bot.commands.ruckaCommand = {
command: 'rucka', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me rucka rucka :dansgame:");
}
}
},
bot.commands.clapCommand = {
command: 'clap', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/urrL82C.gif");
}
}
},
bot.commands.kevCommand = {
command: 'kev', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me https://dl.dropboxusercontent.com/u/2458938/rottiboard/rottiboard.html");
}
}
},
bot.commands.winCommand = {
command: 'win', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me http://i.imgur.com/WmRiO.gif");
}
}
},
bot.commands.kolentoCommand = {
command: 'kolento', //The command to be called. With the standard command literal this would be: !bacon
rank: 'user', //Minimum user permission to use the command
type: 'exact', //Specify if it can accept variables or not (if so, these have to be handled yourself through the chat.message
functionality: function (chat, cmd) {
if (this.type === 'exact' && chat.message.length !== cmd.length) return void (0);
if (!bot.commands.executable(this.rank, chat)) return void (0);
else {
API.sendChat("/me :kolentohappy: http://i.imgur.com/nj1dvtu.gif");
}
}
};
//Load the chat package again to account for any changes
bot.loadChat();
}
//Change the bots default settings and make sure they are loaded on launch
localStorage.setItem("basicBotsettings", JSON.stringify({
botName: "CptJack Bot :keepo: (Madeby Keni)",
language: "english",
chatLink: "https://rawgit.com/Yemasthui/basicBot/master/lang/en.json",
maximumAfk: 5000,
afkRemoval: false,
maximumDc: 125,
bouncerPlus: true,
lockdownEnabled: false,
lockGuard: false,
maximumLocktime: 10,
cycleGuard: false,
maximumCycletime: 10,
timeGuard: true,
maximumSongLength: 11,
autodisable: true,
commandCooldown: 1,
usercommandsEnabled: true,
lockskipPosition: 2,
lockskipReasons: [
["theme", "This song does not fit the room theme. "],
["op", "This song is on the OP list. "],
["history", "This song is in the history. "],
["mix", "You played a mix, which is against the rules. "],
["sound", "The song you played had bad sound quality or no sound. "],
["nsfw", "The song you contained was NSFW (image or sound). "],
["unavailable", "The song you played was not available for some users. "]
],
afkpositionCheck: 1000,
afkRankCheck: "ambassador",
motdEnabled: true,
motdInterval: 5,
motd: "Bot Commands: http://pastebin.com/U4hS11n3 Rules: http://pastebin.com/6NEPtZW9 **While Forsen is streaming: No Sanic, Scotland, MLG*",
filterChat: false,
etaRestriction: false,
welcome: false,
opLink: "http://pastebin.com/N2xAtwS6",
rulesLink: "http://pastebin.com/6NEPtZW9",
themeLink: "http://i.imgur.com//nNSnshB.png",
fbLink: "https://twitter.com/forsensc2",
youtubeLink: "https://twitch.tv/hornpub :kappa:",
website: "http://twitch.tv/forsenlol",
intervalMessages: [],
messageInterval: 1,
songstats: false,
commandLiteral: "!",
blacklists: {
NSFW: "https://rawgit.com/Yemasthui/basicBot-customization/master/blacklists/ExampleNSFWlist.json",
OP: "https://rawgit.com/Yemasthui/basicBot-customization/master/blacklists/ExampleOPlist.json"
}
}));
//Start the bot and extend it when it has loaded.
$.getScript('https://rawgit.com/Yemasthui/basicBot/master/basicBot.js', extend);
}).call(this);