// B O T O require('dotenv').config(); const tmi = require('tmi.js'); console.log(process.env.API_HOST); const client = new tmi.Client({ options: { debug: true }, connection: { secure: true, reconnect: true }, identity: { username: process.env.TTV_BOT_USERNAME, password: process.env.TTV_BOT_OAUTH }, channels: [ process.env.TTV_CHANNELS ] }); client.connect(); // SCAN MSG | START client.on('message', (channel, tags, message, self) => { if(self) return; const badges = tags.badges || {}; // Scan Badges const isBroadcaster = badges.broadcaster; // Define Streamer const isMod = badges.moderator; // Define Mod const isModUp = isBroadcaster || isMod; // Permission Merge = Mod+Streamer const isSub = badges.subscriber || badges.founder; // Define Subs const botUserState = client.userstate[channel]; // MOD Status Check const amMod = botUserState !== undefined && botUserState.mod === true; // Define Mod Status if(self || !message.startsWith('!')) return; // Command Parser const args = message.slice(1).split(' '); const command = args.shift().toLowerCase(); // !COMMAND => command if(isModUp) { // !MODS | START console.log('Captians Log: MOD used a command...'); // Log for ALL commands Mods use Mod/Sub/General if(command === 'so' || command === 'shoutout') { client.say(channel, `/me Smash @${args.join(' ')}'s follow button at: https://twitch.tv/${args.join(' ')}`); } else if(command === 'mute' || command === 'slap' || command === 'timeout' || command === 'warn') { client.say(channel, `/timeout ${args.join(' ')} 33`); client.say(channel, `/me Mods cast a 33sec Timeout Curse on @${args.join(' ')}, resistence to Bans is decreased!`); client.say(channel, `!kappagen sarimoRAGE sarimoNERD`); } } // !MODS | END if(isSub) { // !SUBS | START console.log('Captians Log: SUB used a command...'); // Log console.log(tags.username, 'is a subscriber'); } // !SUBS | END if { // !ALL | START console.log('LOG: Non-Mod command used!'); } // !ALL | END }); // SCAN MSG | END