Lurk_Bots/node/autoban.js

51 lines
1.7 KiB
JavaScript

const tmi = require('tmi.js');
require('dotenv').config();
const colors = require('colors');
const config = require("./db/lurk_bots");
console.log(`ANTI / Lurk Bots`.black.bgBrightRed);
console.log(`v 0.1 | BETA`.black.bgBrightRed);
console.log(`Loading... | Lurk Bot DB`.black.bgGreen);
const {botlist} = lurk_bots
console.log(`Loading... | Setting from .env file`.black.bgGreen);
const client = new tmi.Client({
options: { debug: true },
connection: {
secure: true,
reconnect: true
},
identity: {
username: process.env.TTV_STREAMER_USERNAME,
password: process.env.TTV_STREAMER_OAUTH
},
channels: [ process.env.TTV_STREAMER_CHANNEL ]
});
console.log(`Loading... | TTV IRC Login`.black.bgGreen);
client.connect();
console.log(`Loading... | Chatbot`.black.bgGreen);
client.on('message', (channel, tags, message, self) => {
if(botlist) 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 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
// Mods + Streamer
if(isModUp) {
if(command === 'banbots') {
client.say(channel, `/ban `+ botlist);
}
if(command === 'unbanbots') {
client.say(channel, `/ban `+ botlist);
}
}
});
console.log(process.env.API_HOST);