const { default_prefix } = require("./config.json"); const { config } = require("dotenv"); const { keep_alive } = require("./keep_alive"); const fetch = require("node-fetch"); const db =require("quick.db"); const moment = require("moment"); const { CanvasSenpai } = require("canvas-senpai") const canva = new CanvasSenpai(); const discord = require("discord.js"); const client = new discord.Client({ disableEveryone: false }); const yts = require('yt-search') client.queue = new Map(); client.vote = new Map(); const { ready } = require("./handlers/ready.js") //Made by Atreya YT dont remove credit client.commands = new discord.Collection(); client.aliases = new discord.Collection(); ["command"].forEach(handler => { require(`./handlers/${handler}`)(client); }); client.on("message", async message => { const prefixMention = new RegExp(`^<@!?${client.user.id}>( |)$`); if (message.content.match(prefixMention)) { return message.reply(`My prefix is \`${default_prefix}\``); } if (message.author.bot) return; if (!message.guild) return; if (!message.content.startsWith(default_prefix)) return; if (!message.member) message.member = await message.guild.fetchMember(message); const args = message.content .slice(default_prefix.length) .trim() .split(/ +/g); const cmd = args.shift().toLowerCase(); if (cmd.length === 0) return; let command = client.commands.get(cmd); if (!command) command = client.commands.get(client.aliases.get(cmd)); if (command) command.run(client, message, args); }); client.on("guildMemberAdd", async member => { let chx = db.get(`welchannel_${member.guild.id}`); if (chx === null) { return; } let data = await canva.welcome(member, { link: "https://i.pinimg.com/originals/f3/1c/39/f31c39d56512dc8fbf30f9d0fb3ee9d3.jpg" }) const attachment = new discord.MessageAttachment( data, "welcome-image.png" ); client.channels.cache.get(chx).send("Welcome to our Server " + member.user.username, attachment); }); //ctabot client.on("message", async message => { if (message.channel.name == "chatbot") { if (message.author.bot) return; message.content = message.content.replace(/@(everyone)/gi, "everyone").replace(/@(here)/gi, "here"); if (message.content.includes(`@`)) { return message.channel.send(`**:x: Please dont mention anyone**`); } message.channel.startTyping(); if (!message.content) return message.channel.send("Please say something."); fetch(`https://api.affiliateplus.xyz/api/chatbot?message=${encodeURIComponent(message.content)}&botname=${client.user.username}&ownername=Atreya#0513`) .then(res => res.json()) .then(data => { message.channel.send(`> ${message.content} \n <@${message.author.id}> ${data.message}`); }); message.channel.stopTyping(); } }); //LEVEL const { addexp } = require("./handlers/xp.js") //LEVEL client.on("message", async message => { if(message.author.bot) return; if(!message.guild) return; return addexp(message) }) client.snipes = new Map() client.on('messageDelete', function(message, channel){ client.snipes.set(message.channel.id, { content:message.content, author:message.author.tag, image:message.attachments.first() ? message.attachments.first().proxyURL : null }) }) const { GiveawaysManager } = require("discord-giveaways"); // Starts updating currents giveaways const manager = new GiveawaysManager(client, { storage: "./handlers/giveaways.json", updateCountdownEvery: 10000, default: { botsCanWin: false, exemptPermissions: [ "MANAGE_MESSAGES", "ADMINISTRATOR" ], embedColor: "#FF0000", reaction: "🎉" } }); // We now have a giveawaysManager property to access the manager everywhere! client.giveawaysManager = manager; client.on("message", async message => { if(!message.guild) return; let prefix = db.get(`default_prefix${message.guild.id}`) if(prefix === null) prefix =default_prefix; if(!message.content.startsWith(default_prefix)) return; }) client.on("guildCreate", guild => { const { MessageEmbed } = require("discord.js"); //Subscribe to Atreya YT const ID = "826469181129359380"; //Subscribe to Atreya YT const channel = client.channels.cache.get(ID); const sowner = guild.owner.user; if (!channel) return; const embed = new MessageEmbed() .setTitle("**I Joined a Server!**") .addField(`**SERVER NAME**`, `\`\`\`${guild.name}\`\`\``) .addField(`**SERVER ID**`, `\`\`\`${guild.id}\`\`\``) .addField(`**SERVER OWNER**`, `\`\`\`${sowner.tag}\`\`\``) .addField(`**OWNER ID**`, `\`\`\`${sowner.id}\`\`\``) .addField(`**CREATED ON**`, `\`\`\`${guild.createdAt}\`\`\``) .addField(`**MEMBERS**`, `\`\`\`${guild.memberCount}\`\`\``) .setTimestamp() .setColor("32CD32") .setFooter(`Servers Count - ${client.guilds.cache.size}`); channel.send(embed); }); // Set the bot's online/idle/dnd/invisible status client.on("ready", () => { client.user.setStatus("dnd"); console.log("recluse is ready ") }); //Made by Atreya YT //Subscribe to Atreya YT client.on("message", async message => { if(!message.guild) return; let prefix = db.get(`prefix_${message.guild.id}`) if(prefix === null) prefix = default_prefix; if(!message.content.startsWith(prefix)) return; }) client.on('voiceStateUpdate', (old, New) => { if(old.id !== client.user.id) return if(old.channelID && !New.channelID) client.queue.delete(old.guild.id) }) client.on('ready', () => { var channel = client.channels.cache.get('826469181129359380'); if (channel) channel.join(); }); client.on client.on("ready", () => { client.user.setActivity(`?help |Servers ${client.guilds.cache.size}`, { type: "WATCHING"}) }) //Subscribe to Atreya YT client.login(process.env.TOKEN);