Files
archived-Recluse-Bot/server.js
2021-04-25 12:46:26 +05:45

248 lines
5.7 KiB
JavaScript

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);