Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Discord = require('discord.js'),
- YTDL = require("ytdl-core"),
- FFMPEG = require("ffmpeg"),
- YouTube = require('simple-youtube-api'),
- YTapi = new YouTube(process.env.ytapikey ? process.env.ytapikey : require("./config.json").ytapikey);
- prefix = process.env.prefix ? process.env.prefix : require("./config.json").prefix,
- bot = new Discord.Client({
- messageCacheMaxSize: 10,
- messageCacheLifetime: 0,
- messageSweepInterval: 2600,
- disableEveryone: true,
- fetchAllMembers: false,
- disabledEvents: [
- 'channelCreate', 'channelDelete', 'channelPinsUpdate', 'channelUpdate', 'clientUserGuildSettingsUpdate',
- 'clientUserSettingsUpdates', 'emojiCreate', 'emojiDelete', 'guildBanAdd', 'guildBanRemove', 'guildCreate',
- 'guildDelete', 'guildMemberAdd', 'guildMemberAvailable', 'guildMemberRemove', 'guildMembersChunck',
- 'guildMemberSpeaking','guildMemberUpdate','guildUnavailable','guildUpdate','messageDelete', 'meesageDeleteBulk',
- 'messageReactionAdd', 'messageReactionRemove', 'messageReactionRemoveAll', 'messageUpdate', 'presenceUpdate',
- 'roleCreate', 'roleDelete', 'roleUpdate', 'typingStart', 'typingStop', 'userNoteUpdate', 'userUpdate', 'voiceStateUpdate'
- ],
- ws: { large_threshold: 250, compress: false }
- });
- const util = require('util')
- //variables:
- rand = 0;
- chactivity = 999;
- //functions:
- function randomInteger(min, max) {
- var rand = min + Math.random() * (max - min)
- rand = Math.round(rand);
- return rand;
- }
- //auto changing activity
- function clean(text) {
- if (typeof(text) === "string")
- return text.replace(/`/g, "`" + String.fromCharCode(8203)).replace(/@/g, "@" + String.fromCharCode(8203));
- else
- return text;
- }
- console.log(process.pid);
- bot.on(`ready`, () => {
- console.log(`${bot.user.username} ready!`)
- bot.user.setActivity('para ' + bot.users.size + ' usuários | ' + bot.guilds.size + ' servidores.', { type: "streaming", url: "https://www.twitch.tv/soloqtkiller" });
- chactivity = 0;
- });
- process.on('unhandledRejection', console.error);
- bot.login(process.env.token ? process.env.token : require("./config.json").token);
- if(chactivity == 0) {
- setTimeout(function(){
- message.channel.send("changed to 1")
- bot.user.setActivity(`! SoloQTKiller#9085 é meu desenvolvedor`, { type: "playing"});
- chactivity = 1;
- }, 10000);
- }
- if(chactivity == 1) {
- setTimeout(function(){
- message.channel.send("changed to 2")
- bot.user.setActivity(`cpm bugs/${prefix}help`, { type: "playing"});
- chactivity = 2;
- }, 10000);
- }
- if(chactivity == 2) {
- setTimeout(function(){
- message.channel.send("changed to 0")
- bot.user.setActivity(`Música perfeita/${prefix}help`, { type: "playing"});
- chactivity = 0;
- }, 10000);
- }
- var servers = {};
- function queueShift(server) {
- server.queueList.shift();
- server.queueNames.shift();
- server.queueAuthor.shift();
- server.queueImage.shift();
- server.queueLength.shift();
- server.queueMessages.shift();
- server.skipNum = 0;
- server.skipUsers = [];
- }
- function end_Connection(bot, server, connect, msg) {
- if (server.queueList.length > 1) {
- queueShift(server);
- play(connect, msg, bot);
- } else {
- queueShift(server);
- connect.disconnect();
- let endem = new Discord.RichEmbed()
- .setColor("0x00ff0a")
- .setDescription(`Parou de tocar em ${connect.channel.name}`)
- .setAuthor(`${bot.user.username}`, bot.user.avatarURL);
- msg.channel.send({ embed: endem }).then(m => m.delete(25000));
- }
- }
- function play(connect, msg, bot) {
- let server = servers[msg.guild.id];
- //if (server.queueLength[0] !== 1800) {
- if (server.queueLength[0] !== "0:0:0") {
- let em = new Discord.RichEmbed()
- .setColor("0x00ff0a")
- .setAuthor(`${bot.user.username}`, bot.user.avatarURL)
- .setThumbnail(server.queueImage[0])
- .setDescription(`Tocando agora : **${server.queueNames[0]}** em ${connect.channel.name}\n\n**Solicitado por:** ${server.queueAuthor[0]}\n**Link:** ${server.queueList[0]}\n**Tempo:** ${server.queueLength[0]}`)
- .setFooter(`Solicitado por: ${server.queueMessages[0].author.tag}`, server.queueMessages[0].author.avatarURL);
- msg.channel.send({ embed: em });
- server.dispatcher = msg.guild.voiceConnection.playStream(YTDL(server.queueList[0], { audioonly: true }), { passes: process.env.passes ? process.env.passes : require("./config.json").passes});
- // passes -- can be increased to reduce packetloss at the expense of upload bandwidth, 4-5 should be lossless at the expense of 4-5x upload
- server.dispatcher.on("end", (reason) => {
- end_Connection(bot, server, connect, msg);
- });
- } else {
- end_Connection(bot, server, connect, msg);
- let em = new Discord.RichEmbed()
- .setColor("0x00ff0a")
- .setAuthor(`${bot.user.username}`, bot.user.avatarURL)
- .setThumbnail(server.queueImage[0])
- .setDescription(`Pulou **${server.queueNames[0]}** in ${connect.channel.name}\n\n** Razão: ** Erro ao vivo`);
- msg.channel.send({ embed: em });
- }
- }
- function removedat(msg) {
- if (msg.channel.type === "dm") return;
- if (!msg.deletable) {
- return;
- }
- msg.delete();
- }
- function parseTime(hour, min, seconds) {
- var hourt = hour !== 0 ? `${hour}` : "";
- var mint = min !== 0 ? `${min}` : "";
- var secondst = seconds !== 0 ? `${seconds}` : "";
- hourt = hourt < 10 && hourt !== 0 ? `0${hourt}` : `${hourt}`;
- mint = mint < 10 && mint !== 0 ? `0${mint}` : `${mint}`;
- secondst = secondst < 10 && secondst !== 0 ? `0${secondst}` : `${secondst}`;
- return `${hourt==""?"":hourt + ":"}${mint==""?"":mint + ":"}${secondst==""?"":secondst}`;
- }
- function parseUpload(bot, server, link, message, playlist) {
- // YTDL.getInfo(link).then(info => {
- YTapi.getVideo(link).then(info => {
- let length = parseTime(info.duration.hours, info.duration.minutes, info.duration.seconds);
- if (length == "0:0:0") {
- if (!playlist) {
- let em = new Discord.RichEmbed()
- .setColor("0x00ff0a")
- .setAuthor(`${bot.user.username}`, bot.user.avatarURL)
- .setThumbnail(info.thumbnails.default.url)
- .setDescription(`Não foi possível adicionar **${info.title}** para tocar em ${message.member.voiceChannel.name}\n\n**Motivo:** Transmissão ao vivo`)
- .setFooter(`Adicionado por: ${message.author.tag}`, message.author.avatarURL);
- message.channel.send({ embed: em }).then(m => m.delete(5000));
- return;
- }
- }
- //console.log(info);
- server.queueList.push(link);
- server.queueNames.push(info.title);
- server.queueAuthor.push(info.channel.title);
- server.queueImage.push(info.thumbnails.default.url);
- server.queueLength.push(length);
- server.queueMessages.push(message);
- if (!message.guild.voiceConnection) {
- message.member.voiceChannel.join().then(function(connection) { play(connection, message, bot); });
- } else {
- if (!playlist) {
- let em = new Discord.RichEmbed()
- .setColor("0x00ff0a")
- .setAuthor(`${bot.user.username}`, bot.user.avatarURL)
- .setThumbnail(info.thumbnails.default.url)
- .setDescription(`:white_check_mark: Adicionado **${info.title}** para tocar ${message.member.voiceChannel.name}\n\n**Por:** ${info.channel.title}\n**Link:** ${link}\n**Tempo:** ${length} `)
- .setFooter(`Solicitado por: ${message.author.tag}`, message.author.avatarURL);
- message.channel.send({ embed: em });
- }
- }
- })
- .catch(console.log);
- }
- //CLEVERBOT
- var cleverbot = require("cleverbot.io"),
- cbot = new cleverbot("MLjiZF48MyvQ6wMG", "3ZvkOvKwqVH1DQaedAVsFQvXcBSBDLbt");
- cbot.setNick("reflex");
- cbot.create(function (err, session) {
- bot.on(`message`, (message) => {
- if(message.content.indexOf(".talk") + 1) {
- args = message.content.split(".talk");
- args = args[1];
- cbot.ask(args, function (err, response) {
- console.log(response); // Will likely be: "Living in a lonely world"
- message.reply(response);
- });
- }
- })
- });
- bot.on(`message`, (message) => {
- if (message.author.bot) return;
- if (!message.content.startsWith(`${prefix}`)) return;
- if (message.channel.type == "dm") return;
- var args = message.content.substring(prefix.length).split(" ");
- switch (args[0].toLowerCase()) {
- case "help":
- let em = new Discord.RichEmbed()
- .setColor("0x00ff0a")
- .setAuthor(`${bot.user.username}`)
- .setFooter(`Help`, bot.user.avatarURL)
- .setDescription("Feito por: SoloQTKiller qualquer erro ou duvida entre em contato comigo!")
- .addField(`Meu prefixo é:`, `e!`)
- .addField(`prefixo + help`, `Envia esta mensagem.`)
- .addField(`COMANDOS DE MÚSICA`, `Experimente música de qualidade e perfeita!`)
- .addField(`prefixo + play (link/nome/lista de reprodução)`, `Reproduz uma música no canal atual.`)
- .addField(`prefixo + skip`, `Pula a música atual.`)
- .addField(`prefixo + stop`, `Para a musica e reseta a lista.`)
- .addField(`prefixo + queue`, `Mostra as primeiras 5 músicas na fila.`)
- .addField(`prefixo + np`, `Mostra o que está tocando agora.`)
- .addField(`prefixo + volume "volume"`, `Altera o volume da música.`)
- .addField(`prefixo + bb`, `Ativa "bassboost" xd.`)
- message.channel.send({ embed: em });
- break;
- case "play":
- if (!message.member.voiceChannel) {
- message.channel.send(":x: Você precisa estar em um canal de voz!");
- break;
- }
- if (!message.member.voiceChannel.joinable || message.member.voiceChannel.full) {
- message.channel.send(":x: Eu não posso conectar nesse canal de voz.");
- break;
- }
- if (!args[1]) {
- message.channel.send(":x: Faltou você colocar o link da música!");
- break;
- }
- message.channel.send(`<@${message.author.id}>, Agora irei processar o nome da música/link!`).then(m => m.delete(5000));
- if (!servers[message.guild.id]) {
- servers[message.guild.id] = { queueList: [], queueNames: [], queueAuthor: [], queueImage: [], queueLength: [], queueMessages: [], skipNum: 0, skipUsers: [] };
- }
- if (!args[1].match(/^https?:\/\/(www.youtube.com|youtube.com)/)) {
- // message.channel.send(":x: Are you sure thats a Youtube link?")
- var server = servers[message.guild.id];
- YTapi.searchVideos(args.slice(1).join(" "), 11).then(videos => {
- // console.log(videos)
- let choice = new Discord.RichEmbed()
- .setColor("0x00ff0a")
- .setAuthor(`${bot.user.username}`)
- .setDescription(`Forneça um valor para selecionar um dos resultados de pesquisa que vão de 1 a 10`)
- .setFooter(`Cancelando em 10 segundos`, bot.user.avatarURL)
- .setTimestamp()
- .addField(`**1.** ${videos[0].title}`, `[${videos[0].channel.title}](https://www.youtube.com/channel/${videos[0].channel.id}) `)
- .addField(`**2.** ${videos[1].title}`, `[${videos[1].channel.title}](https://www.youtube.com/channel/${videos[1].channel.id}) `)
- .addField(`**3.** ${videos[2].title}`, `[${videos[2].channel.title}](https://www.youtube.com/channel/${videos[2].channel.id}) `)
- .addField(`**4.** ${videos[3].title}`, `[${videos[3].channel.title}](https://www.youtube.com/channel/${videos[3].channel.id}) `)
- .addField(`**5.** ${videos[4].title}`, `[${videos[4].channel.title}](https://www.youtube.com/channel/${videos[4].channel.id}) `)
- .addField(`**6.** ${videos[5].title}`, `[${videos[5].channel.title}](https://www.youtube.com/channel/${videos[5].channel.id}) `)
- .addField(`**7.** ${videos[6].title}`, `[${videos[6].channel.title}](https://www.youtube.com/channel/${videos[6].channel.id}) `)
- .addField(`**8.** ${videos[7].title}`, `[${videos[7].channel.title}](https://www.youtube.com/channel/${videos[7].channel.id}) `)
- .addField(`**9.** ${videos[8].title}`, `[${videos[8].channel.title}](https://www.youtube.com/channel/${videos[8].channel.id}) `)
- .addField(`**10.** ${videos[9].title}`, `[${videos[9].channel.title}](https://www.youtube.com/channel/${videos[9].channel.id}) `)
- message.channel.send({ embed: choice });
- message.channel.awaitMessages(m => m.content > 0 && m.content < 10, {
- max: 1,
- max: 1,
- time: 10000,
- errors: ['time']
- })
- .then(collected => {
- collected.first().delete();
- // message.channel.send(`Okay I'll now add **${videos[collected.first().content-1].title}**`).then(m => m.delete(5000))
- parseUpload(bot, server, `https://www.youtube.com/watch?v=${videos[collected.first() - 1].id}`, message);
- })
- .catch(err => {
- console.log(err);
- //console.log(collected.first().author.id);
- message.channel.send(`** Cancelado **`);
- });
- });
- } else {
- if (args[1].match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
- YTapi.getPlaylist(args[1]).then(list => {
- message.channel.send(`⏱ Analisando a lista de reprodução: **${list.title}**\nPor favor, dê um tempo. Isso também inclui o poder de análise do servidor e a quantidade de vídeos fornecidos.`);
- list.getVideos().then(videos => {
- for (const video of Object.values(videos)) {
- YTapi.getVideoByID(video.id).then(vid => {
- parseUpload(bot, servers[message.guild.id], `https://www.youtube.com/watch?v=${vid.id}`, message, true);
- });
- }
- message.channel.send(`:white_check_mark: Playlist: **${list.title}** [${videos.length > 50 ? '50+' : videos.length} vídeos] foi adicionado à fila!`);
- });
- });
- } else {
- parseUpload(bot, servers[message.guild.id], args[1], message);
- }
- }
- break;
- case "skip":
- if (!message.member.voiceChannel) {
- message.channel.send(":x: Você precisa estar em um canal de voz!");
- break;
- }
- var server = servers[message.guild.id];
- if (!server) return;
- if (!message.guild.voiceConnection) return;
- if (!message.member.voiceChannel) {
- message.channel.send(":x: Você precisa estar em um canal de voz!");
- break;
- }
- if (server.dispatcher) server.dispatcher.end();
- break;
- case "stop":
- if (!message.member.voiceChannel) {
- message.channel.send(":x: Você precisa estar em um canal de voz!");
- break;
- }
- var server = servers[message.guild.id];
- if (!server) return;
- server.queueList = [];
- server.queueNames = [];
- server.queueAuthor = [];
- server.queueImage = [];
- server.queueLength = [];
- server.queueMessages = [];
- server.skipNum = 0;
- server.skipUsers = [];
- if (message.guild.voiceConnection) message.guild.voiceConnection.disconnect();
- break;
- case "queue":
- var server = servers[message.guild.id];
- if (!server) {
- return;
- } else if (server.queueNames.length == 0) {
- return;
- }
- var queue = ` **Fila para ${message.guild.name}** [ ${server.queueNames.length} musica${server.queueNames.length>1?"s":""} total ]\n\n `;
- var queueLength = server.queueNames.length > 5 ? 5 : server.queueNames.length;
- for (var i = 0; i < queueLength; i++) {
- var temp = ` ${i + 1}: ${i === 0 ? "*(Música atual)*":""} ${server.queueNames[i].includes("*")?server.queueNames[i].replace('*', ''):server.queueNames[i]}\n **Adicionada por:** ${server.queueMessages[i].author.tag }\n\n`;
- queue = queue + temp;
- }
- if (queueLength == 5 && server.queueNames.length > 5) {
- var addition = `***+ ${server.queueNames.length-5} mais músicas***`;
- queue = queue + addition;
- }
- let queue_embed = new Discord.RichEmbed()
- .setColor("0x00ff0a")
- .setAuthor(`${bot.user.username }`)
- .setDescription(queue)
- .setThumbnail(message.guild.iconURL !== null ? message.guild.iconURL : "https://maxcdn.icons8.com/Share/icon/Logos//discord_logo1600.png")
- .setFooter(`Server Queue`, bot.user.avatarURL);
- message.channel.send({ embed: queue_embed });
- break;
- case "playing":
- var server = servers[message.guild.id];
- if (!server) { return message.channel.send(`:x: Nada está tocando agora ...`); }
- if (!server.queueList[0]) { return message.channel.send(`:x: Nada está tocando agora ...`); }
- let npem = new Discord.RichEmbed()
- .setColor("0x00ff0a")
- .setAuthor(`${bot.user.username }`)
- .setThumbnail(server.queueImage[0])
- .setDescription(`**Tocando agora** \n\n **Nome: ** ${server.queueNames[0]}\n **Por: ** ${server.queueAuthor[0]}\n **Link: ** ${server.queueList[0]}\n **Tempo:** ${server.queueLength[0]}\n **Adicionado por: ** ${server.queueMessages[0].author.tag}`)
- .setFooter(`Tocando agora`, bot.user.avatarURL);
- message.channel.send({ embed: npem });
- break;
- case "ping":
- let um = new Discord.RichEmbed()
- .setColor("0x00ff0a")
- .setAuthor(`${bot.user.username}`, bot.user.avatarURL)
- .setThumbnail()
- .setDescription(`Pong!`)
- .setFooter(``);
- message.channel.send({ embed: um });
- break;
- case "eval":
- if(message.member.id !== "477567345439801345") {
- try {
- if(message.content.indexOf(".eval") + 1) {
- const args = message.content.split(".eval");
- eval(args[1]);
- }
- }
- catch(err) {
- message.channel.sendMessage("*Saída de depuração:* ```xl\n" + clean(err) + "\n```");
- }
- return;
- }
- if(message.member.id !== "477567345439801345") {
- message.channel.send("Não vá tão longe! Você não é o dono deste bot para usar esse comando!");
- }
- break;
- case "volume":
- if(message.content.indexOf(".volume") + 1) {
- if (!message.member.voiceChannel) {
- message.channel.send(":x: Você precisa estar em um canal de voz!");
- break;
- }
- if (message.member.voiceChannel) {
- args = message.content.split(".volume");
- args = message.content.split(" ");
- args = args[1];
- let volumeint = parseInt(args);
- if(volumeint < 101) {
- if(volumeint > -1) {
- if(volumeint !== NaN) {
- try {
- message.guild.voiceConnection.player.dispatcher.setVolume(volumeint/100);
- message.channel.send(":white_check_mark: volume agora é " + volumeint);
- break;
- }
- catch (err) {
- message.channel.send(":x: um erro inesperado aconteceu ao mudar o volume! Certifique-se de que qualquer música está tocando!");
- }
- } else {
- message.channel.send(":x: valor de volume inválido! (" + volumeint + ")");
- break;
- }
- } else {
- message.channel.send(":x: valor de volume inválido! (" + volumeint + ")");
- break;
- }
- }
- if(message.content.indexOf(".volume chk") + 1) {
- message.channel.send("Agora o volume é " + message.guild.voiceConnection.player.dispatcher.volume * 100 + ", o volume normal é 100, o volume máximo é 200.");
- break;
- }
- }
- }
- }
- //message.delete();
- });
- bot.on(`message`, (message) => {
- console.log(message.author + " - '" + message.content + "'");
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement