diff --git a/node/boto.js b/node/boto.js index 5c5ca5e..9efbac2 100644 --- a/node/boto.js +++ b/node/boto.js @@ -39,390 +39,12 @@ client.on('message', (channel, tags, message, self) => { const isBroadcaster = badges.broadcaster; const isMod = badges.moderator; const isModUp = isBroadcaster || isMod; + const botUserState = client.userstate[channel]; + const amMod = botUserState !== undefined && botUserState.mod === true; + if(isModUp && message.toLowerCase().startsWith('!mod')) { + console.log('LOG: Mod command used!'); + } + if(message.toLowerCase().startsWith('!mod')) { + console.log('LOG: Non-Mod command used!'); + } }); -if(isModUp) { - // - } -// !COMMAND START -// ================================== -client.on('message', (channel, tags, message, self) => { - if(self || !message.startsWith('!')) return; - // !COMMAND => command - // ---------------------------------- - const args = message.slice(1).split(' '); - const command = args.shift().toLowerCase(); - // Checks if bot has mod permissions in channel - // ---------------------------------- - const botUserState = client.userstate[channel]; - const amMod = botUserState !== undefined && botUserState.mod === true; - - - // M O D S Q U A D - // ---------------------------------- - //let isMod = user.mod || user['user-type'] === 'mod'; - //let isBroadcaster = channel.slice(1) === user.username; - //let isModUp = isMod || isBroadcaster; - //if(isModUp) { - // if(command === 'mod') { - // client.say(channel, `Mod test command`); - // } - // if else(command === 'mods') { - // client.say(channel, `Mod test command`); - // } - // else { - // NULL - // } - //} - - // I N F O - // ================================== - // The Cord - // ---------------------------------- - if(command === 'cord' || - command === 'discord') { - client.say(channel, `/me The Cord by Sarimoko is joinable & sharable at: https://cord.sarimoko.com/`); - } - // The Template - // ---------------------------------- - else if(command === 'template' || - command === 'example') { - client.say(channel, `/me @${tags.username} says ${args.join(' ')} BLEEP! BLOOP!`); - } - // The Boto - // ---------------------------------- - else if(command === 'boto' || - command === 'sariboto' || - command === 'sari-boto') { - client.say(channel, `/me Bleep! Bloop! Twitch IRC connected... LETS PARTY!!!`); - client.say(channel, `!kappagen imGlitch EarthDay imGlitch EarthDay imGlitch`); - } - // The Color - // ---------------------------------- - else if(command === 'color') { - client.say(channel, `/color ${args.join(' ')}`); - client.say(channel, `/me Bleep! Bloop! New color is ${args.join(' ')}`); - } - // The Dojo - // ---------------------------------- - else if(command === 'dojo') { - client.say(channel, `/me Learn the methods of a madman at: https://dojo.sarimoko.com/`); - } - // The Echo - // ---------------------------------- - else if(command === 'echo') { - client.say(channel, `/me @${tags.username} says ${args.join(' ')}`); - } - // The Hair - // ---------------------------------- - else if(command === 'hair' || - command === 'hairflip' || - command === 'bang' || - command === 'headbang') { - client.say(channel, `!kappagen sarimoBANG sarimoHAIR sarimoBANG sarimoHAIR sarimoBANG sarimoHAIR `); - } - // The Hugs - // ---------------------------------- - else if(command === 'hug' || - command === 'hugs') { - client.say(channel, `/me @${tags.username} just gave ${args.join(' ')} a big'o'hug! `); - } - // The Kick - // ---------------------------------- - else if(command === 'kick' || - command === 'attack' || - command === 'punch') { - client.say(channel, `/me @${tags.username} just hit ${args.join(' ')}! I'm telling! `); - } - // The Lurk - // ---------------------------------- - else if(command === 'lurk' || - command === 'lurking' || - command === 'lurkin' || - command === 'brb') { - client.say(channel, `/me Enjoy your lurk ${tags.username}, thanks for the viewership! GL out there ${args.join(' ')}`); - client.say(channel, `!kappagen sarimoLURKbrb sarimoKO sarimoLURKbrb sarimoKO sarimoLURKbrb sarimoKO `); - } - // The Mote - // ---------------------------------- - else if(command === 'mote' || - command === 'emote' || - command === 'emotes') { - client.say(channel, `!kappagen sarimoBOTO sarimoDEAD sarimoDUDE sarimoGAME sarimoMASK sarimoGEAR sarimoHAIR sarimoHYPE sarimoLURK sarimoMILK sarimoNERD sarimoRAID sarimoSALT sarimoSOUP sarimoRIDE sarimoKO `); - client.say(channel, `sarimoBANG sarimoFREEDOM sarimoLURKbrb sarimoSALTplz sarimoTRIP `); - } - // The Sale - // ---------------------------------- - else if(command === 'sale' || - command === 'buygames' || - command === 'humble' || - command === 'bundle' || - command === 'humblebundle') { - client.say(channel, `Get sales & give to charity! Win + win, right?! Check out HumbleBundle, use this affiliated link to support the stream: https://www.humblebundle.com/?partner=rusttv`); - } - // The Time - // ---------------------------------- - else if(command === 'time' || - command === 'pst' || - command === 'pac') { - client.say(channel, `BLEEP! BLOOP! PST | 2-Pac Standard Time`); - } - // The trip - // ---------------------------------- - else if(command === 'trip' || - command === 'trippin' || - command === 'tripping') { - client.say(channel, `BLEEP! BLOOP! I'm trippin dragon ballz! Did @trip_228 spike my bios?!`); - client.say(channel, `!kappagen sarimoTRIP sarimoTRIP sarimoTRIP`); - client.say(channel, `Stay calm... Just remember your name & ip address... @Sarimoko 127.0.0.1... @Sarimoko 127.0.0.1...`); - } - // The Wish - // ---------------------------------- - else if(command === 'wish' || - command === 'wishlist' || - command === 'amazon' || - command === 'gift') { - client.say(channel, `/me First off, thank you ${tags.username} for even considering contributing directly! Amazon Wishlists have been split into sub-categories and are available at: https://wish.sarimoko.com/ `); - } - - // K A P P A - // ================================== - // FX | Bad Game - // ---------------------------------- - else if(command === 'badgame' || - command === 'antigg' || - command === 'notgg') { - client.say(channel, `!kappagen sarimoDEAD sarimoGAME `); - } - // FX | Hi - // ---------------------------------- - else if(command === 'hi' || - command === 'hello' || - command === 'welcome' || - command === 'greeting' || - command === 'greetings') { - client.say(channel, `!kappagen HeyGuys bleedPurple HeyGuys bleedPurple HeyGuys`); - client.say(channel, `/me Hi Hello Howdy Hola こんにちは Oi 你好 여보세요 Здравствуйте Bonjour Hej Hiya Heyo Yo`); - } - // FX | Clap - // ---------------------------------- - else if(command === 'clap' || - command === 'claps' || - command === 'applaude') { - client.say(channel, `!kappagen :clap: FBCatch :clap: FBCatch :clap: `); - } - // FX | Sup - // ---------------------------------- - else if(command === 'sup' || - command === 'whatsup' || - command === 'sups' || - command === 'wazzup' || - command === 'soup' || - command === 'soups') { - client.say(channel, `!kappagen sarimoTRIP sarimoSOUP sarimoTRIP sarimoSOUP sarimoTRIP sarimoSOUP `); - client.say(channel, `/me Yo @${tags.username}, how goes it?`); - } - // FX | Salt - // ---------------------------------- - else if(command === 'salt' || - command === 'yoho' || - command === 'rage' || - command === 'rip' || - command === 'sassy' || - command === 'salty' || - command === 'bitter') { - client.say(channel, `!kappagen PJSalt PanicVis PJSalt WutFace PJSalt PunOko PJSalt BabyRage PJSalt`); - } - - - // G E N E R A L - // ================================== - // Uptime - // ---------------------------------- - // if(commandName === 'uptime') { - // let timestamp = new Date(body.stream.created_at).getTime(); - // uptime = countdown(timestamp, Date.now(), 158); - // reply(uptime); - //} - - // The 2Pac Timezone - // ---------------------------------- - //else if(command === '2pac' || command === 'pst' || command === 'timezone') { - // client.say(channel, `/me Off in the distance @${tags.username} screams...`); - // client.say(channel, `" ${args.join(' ')} ${args.join(' ')} ${args.join(' ')} ${args.join(' ')} ${args.join(' ')} " can be heard to all those around!`); - //} - - // Backend - // ---------------------------------- - //else if(command === 'ad' || command === 'ads' || command === 'dab30' || command === 'intermission') { - // client.say(channel, `Bleep! Bloop! Sub to bypass ads! `); - // client.commercial("channel", 30) - // .then((data) => { - // // data returns [channel, seconds] - // }).catch((err) => { - // // - // }); - //} - // T H E V I E W E R S - // ================================== - // TODO Followerage - // TODO Total Followers - // TODO Total Channel Views - // TODO Current Viewers - // ---------------------------------- - - // T H E R A I D - // ================================== - // Being Raided - // ---------------------------------- - //else if(command === 'raid' || command === 'raided') { - // client.say(channel, `!kappagen sarimoRAID sarimoFREEDOM sarimoRAID sarimoFREEDOM sarimoRAID sarimoFREEDOM`); - // client.say(channel, `/me Did @${tags.username} say RAID!?! I believe ${args.join(' ')}, was mentioned as well!`); - //} - // Raiding Someone - // ---------------------------------- - else if(command === 'raid' || - command === 'raidcall' || - command === 'spam' || - command === 'spamwars') { - client.say(channel, `!kappagen sarimoRAID sarimoFREEDOM sarimoRAID sarimoFREEDOM sarimoRAID sarimoFREEDOM`); - client.say(channel, `/me Thanks everyone for watching!!! PREPARE TO SPAM!`); - client.say(channel, `/me Copy'n'Paste the following: (Yes, even if you don't have a sub... We know your a sub at PrideHeartL PrideHeartR LuvHearts`); - client.say(channel, `sarimoRAID sarimoFREEDOM You may take us viewers, but you'll NEVER take our FREEDOM!`); - } - // Shoutout - // ---------------------------------- - else if(command === 'so' || - command === 'shoutout') { - client.say(channel, `BLEEP! BLOOP! On behave of The Sarimoko Show, I'd like the thank my producers, my agents, & @${args.join(' ')} for making all of this possible! https://twitch.tv/${args.join(' ')}`); - } - - // S T R E A M E L E M E N T S - // ================================== - else if(command === 'accountage') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'bet') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'chatstats') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'commands') { - // SE handles it so nothing here to prevent throwing an ERROR - } - // Sub only - else if(command === 'editcounter') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'enter') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'followage') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'kappagen') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'leaderboard') { - // SE handles it so nothing here to prevent throwing an ERROR - } - // Sub only - else if(command === 'permit') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'points') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'quote') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'rename') { - // SE handles it so nothing here to prevent throwing an ERROR - } - // MOD only - else if(command === 'setgame') { - // SE handles it so nothing here to prevent throwing an ERROR - } - // MOD only - else if(command === 'setpoints') { - // SE handles it so nothing here to prevent throwing an ERROR - } - // MOD only - else if(command === 'settitle') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'top') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'uptime') { - // SE handles it so nothing here to prevent throwing an ERROR - } - else if(command === 'watchtime') { - // SE handles it so nothing here to prevent throwing an ERROR - } - // E R R O R S - // ================================== - // NOT FOUND FUNCTION - else { - client.say(channel, `/me Bleep! Bloop! Error! Sorry, @${tags.username} hopefully SE/SL/Nitebot has ya covered...`); - } -}); -// !COMMAND END -// ================================== - -// TTV Re-Active -// ================================== -client.on("anongiftpaidupgrade", (channel, username, userstate) => { - client.whisper(username, `BLEEP! BLOOP! Anon-Sub upgraded!!!`); -}); -client.on("ban", (channel, username, reason, userstate) => { - client.say(channel, `/me BYE FELICIA!!!`); - client.say(channel, `!kappagen BOP BOP BOP `); -}); -client.on("cheer", (channel, userstate, message) => { - client.say(channel, `/me BLEEP! BLOOP! O'SNAP! Bit hype!!! sarimoBANG`); - client.say(channel, `!kappagen sarimoHYPE sarimoBITS`); -}); -client.on("clearchat", (channel) => { - client.say(channel, `Chat Rule Reminder`); - client.say(channel, `/me 1. Do NOT feed the Trolls!`); - client.say(channel, `/me 2. Do NOT be a Troll!`); - client.say(channel, `/me 3. #NSFQ in cord.sarimoko.com ONLY!`); - client.say(channel, `/me 4. Do NOT be another brick in the wall!`); -}); -client.on("giftpaidupgrade", (channel, username, sender, userstate) => { - // Huh? Tier 1 => Tier2 -}); -client.on("hosting", (channel, target, viewers) => { - client.say(channel, `/me BLEEP! BLOOP! @Sarimoko got hosted! Do something entertaining!`); -}); -// ***ANNOYING*** User IRC Connect/Disconnect -client.on("join", (channel, username, self) => { - // client.say(channel, `/me +1 Chatter! Viewer or Bot...? Time will tell!`); -}); -client.on("part", (channel, username, self) => { - // client.say(channel, `/me -1 Chatter! Where's my bounty hunters? Essemble the *air-qoutes* search-party *air-qoutes*`); -}); -client.on("raided", (channel, username, viewers) => { - client.say(channel, `/me Welcome raiders!!! We may take your viewership, but we'll never take your FREEDOM!!!`); - client.say(channel, `!kappagen sarimoRAID sarimoFREEDOM sarimoRAID sarimoFREEDOM sarimoRAID sarimoFREEDOM`); -}); -client.on("subgift", (channel, username, streakMonths, recipient, methods, userstate) => { - let senderCount = ~~userstate["msg-param-sender-count"]; - client.say(channel, `/me Thank you for supporting The Sarimoko Show with Gift-Subs!`); -}); -client.on("submysterygift", (channel, username, numbOfSubs, methods, userstate) => { - let senderCount = ~~userstate["msg-param-sender-count"]; - client.say(channel, `/me BLEEP! BLOOP! Am I getting hacked? Anon just Gift-Subbed! If I get erased... I love you all!`); -}); -client.on("resub", function (channel, username, months, message, userstate, methods) { - client.say(channel, `/me BLEEP! BLOOP! Thanks for the Re-Sub! We're just 2 lost souls, swimming in a fish bowl, sub after sub...`); -}); -client.on("subscription", function (channel, username, method, message, userstate) { - client.say(channel, `/me BLEEP! BLOOP! New subscriber! Spam your new emotes!!! Let's see you're fav!`); - client.say(channel, `!kappagen sarimoKO sarimoNERD`); -}); -client.on("whisper", (from, userstate, message, self) => { - if (self) return; - client.say(channel, `/me Bleep! Bloop! Sariboto's Inbox (+1): SEXT Message Recieved!`); -}); \ No newline at end of file