const Discord = require('discord.js'); const client = new Discord.Client(); const config = require('./config.json'); const { readdirSync } = require('fs'); const { join } = require('path'); client.commands = new Discord.Collection(); const mongopref = require("discord-mongodb-prefix"); client.prefix = new Map(); mongopref.setURL(config.mongoURL); client.defaultprefix = config.defaultPrefix; const { GiveawaysManager } = require('discord-giveaways'); const blacklist = require(`./blacklist.json`) const fetch = require(`node-fetch`) const mongoose = require('mongoose') const commandFiles = readdirSync(join(__dirname, "commands")).filter(file => file.endsWith(".js")); for (const file of commandFiles) { const command = require(join(__dirname, "commands", `${file}`)); client.commands.set(command.name, command); } client.on("error", console.error); client.giveawaysManager = new GiveawaysManager(client, { storage: "./giveaways.json", updateCountdownEvery: 5000, default: { botsCanWin: false, exemptPermissions: ["MANAGE_MESSAGES", "ADMINISTRATOR"], embedColor: "RANDOM", reaction: "🎉" } }); client.on('ready', () => { console.log('Block is ready!'); client.user.setPresence({status: "dnd"}) client.setInterval(() => { let memberCount = client.guilds.cache.reduce((a, g) => a + g.memberCount, 0) let serverCount = client.guilds.cache.size const activities = [ "PLAYING: Minecraft | Ping me for prefix", "WATCHING: The Chat | Ping me for prefix", "LISTENING: The Music | Ping me for prefix", "WATCHING: Your Back LOL | Ping me for prefix", "PLAYING: BAN HAMMERS | Ping me for prefix", "WATCHING: Youtube | Ping me for prefix", "LISTENING: Spotify | Ping me for prefix", `WATCHING: ${serverCount} servers! | Ping me for prefix`, `PLAYING: With ${memberCount} users! | Ping me for prefix` ] let index = activities[Math.floor(Math.random() * activities.length)] client.user.setActivity(index.split(":")[1], { type: index.split(":")[0] }) }, 30000); }); client.on("message", async message => { const fetchprefix = await mongopref.fetch(client, message.guild.id); if (message.mentions.users.has(client.user.id) && !message.author.bot) { let args = message.content.split(" ") if(args.length > 1) { fetch("https://api.udit.gq/api/chatbot?message=" + message.content) .then(res => res.json()) .then(json => { if(!json.message) return; message.channel.startTyping() setTimeout(function(){ message.reply(json.message) }, 2000) .then(message.channel.stopTyping(true)) }).catch(err => {}); } else { message.reply(`\nMy prefix is \`>\`\nFor help say \`>help\``) } }; if(blacklist.users.some(uID => uID == message.author.id)) return; if(blacklist.servers.some(uID => uID == message.guild.id)) return; if(message.author.bot) return; if(message.channel.type === 'dm') return; if(message.content.startsWith(fetchprefix.prefix)) { const args = message.content.slice(fetchprefix.prefix.length).trim().split(/ +/); const command = args.shift().toLowerCase(); if(!client.commands.has(command)) return; try { client.commands.get(command).run(client, message, args); } catch (error){ console.error(error); } } }) client.login(config.token);