JSTQL-JS-Transform/output.js

120 lines
No EOL
3.6 KiB
JavaScript

require("@risingstack/trace");
const Discord = require("discord.js");
const ytdl = require("ytdl-core");
const bot = new Discord.Client();
const fs = new require("fs");
const path = require("path");
const probe = require("pmx").probe();
const jsonfile = require("jsonfile");
const commandCooldown = require("./helpers/commandCooldown.js");
let cleverbot = require("cleverbot.io"),
clever = new cleverbot("jp6wu9XZbYdoICmo", "54jV1VcMNxGQyc2cdKUFUpjkPVo3bTr2");
const log = require("./helpers/log.js");
bot.on("ready", () => {
bot.user.setGame(".help");
(function loop(i) {
setTimeout(function () {
bot.guilds.size |> guilds.set(%);
if (true) {
loop(i);
}
}, 1000);
})(10);
log(`Ready to serve ${bot.users.size} users, in ${bot.channels.size} channels of ${bot.guilds.size} servers.`);
});
fs.readFile("config.json", (err, data) => {
if (err) {
log("Config file does not exist, creating one.");
let obj = {
discordToken: "TOKEN",
discordBotsToken: "TOKEN"
};
jsonfile.spaces = 4;
jsonfile.writeFile("config.json", obj, err => {
err |> console.log(%);
});
process.exit(1);
} else {
config = require("./config.json");
config.discordToken |> bot.login(%);
}
});
global.skips = {};
global.queue = {
test: "test"
};
global.dispatchers = new Map();
global.connections = new Map();
global.voices = new Map();
global.streams = new Map();
let config = "ERR";
global.allstreams = 0;
global.counter = probe.counter({
name: "Streams"
});
let guilds = probe.metric({
name: "Guilds"
});
let userCooldown = new Map();
bot.commands = new Discord.Collection();
bot.aliases = new Discord.Collection();
fs.readdir("./commands/", (err, files) => {
if (err) err |> console.error(%);
log(`Loading a total of ${files.length} commands.`);
files.forEach(f => {
let props = require(`./commands/${f}`);
log(`Loading Command: ${props.info.name}. :ok_hand:`);
bot.commands.set(props.info.name, props);
/*
props.conf.aliases.forEach(alias => {
bot.aliases.set(alias, props.info.name);
});
*/
});
});
bot.on("message", msg => {
const prefix = ".";
let id = bot.user.id;
let clevername = new RegExp(`^<@!?${id}>`);
if (msg.content.startsWith(prefix)) {} else if (clevername.test(msg.content)) {} else return;
if (msg.author.bot) return;
if (msg.guild) {
if (!queue[msg.guild.id]) {
queue[msg.guild.id] = [];
}
} else return;
let command = msg.content.split(" ")[0].slice(prefix.length);
let params = msg.content.split(" ").slice(1);
//let perms = bot.elevation(msg);
let cmd;
if (!userCooldown.get(msg.author.id)) {
userCooldown.set(msg.author.id, 0);
}
if (bot.commands.has(command)) {
if (!commandCooldown(userCooldown.get(msg.author.id))) {
userCooldown.set(msg.author.id, Date.now());
cmd = bot.commands.get(command);
} else msg.channel.sendMessage("You're sending commands too quickly!");
} else if (bot.aliases.has(command)) {
cmd = bot.commands.get(bot.aliases.get(command));
}
if (cmd) {
cmd.run(bot, msg, params);
}
if (clevername.test(msg.content)) {
msg.author.username + " (" + msg.author.id + ") issued command: " + msg.content |> console.log(%);
let string = msg.content;
string = msg.content.split(" ");
string.shift();
" " |> string.join(%);
msg.author.username |> clever.setNick(%);
clever.create(function (err, session) {
if (err) log(err);
clever.ask(string, function (err, response) {
if (err) log(err);
msg.channel.sendMessage(response).then(msg => log(`Sent message: ${msg.content}`)).catch(console.error);
});
});
}
});