mirror of
https://github.com/SrIzan10/Recluse-Bot.git
synced 2026-05-01 10:55:24 +00:00
248 lines
5.7 KiB
JavaScript
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);
|