Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Discord = require('discord.js');//taino
- const toArray = require('lodash.toarray');//taino
- const { database } = require('./firebase');//taino
- var palette = require("google-palette");//taino
- //taino
- const client = new Discord.Client();//taino
- const prefix = ".";//taino
- const reactRolesQueue = new Set();//taino
- //taino
- client.on('message', async (message) => {//taino
- if (message.author.bot) return;//taino
- if (message.content.indexOf(prefix) != 0) return;//taino
- //taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
- const [command, ...args] = message.content.slice(prefix.length).split(/ +/g);//taino
- //taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
- let order;//taino//taino//taino//taino//taino//taino//taino//taino
- switch (command) {//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//ta//taino//taino//taino//tainoino
- case 'reactrole'://taino
- if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("تنقصك صلاحيات ادمن لاستخدم هذا الامر")//taino
- if (reactRolesQueue.has(message.guild.id)) return;//taino
- order = args.shift();//taino
- switch (order) {//taino
- case 'add'://taino//taino
- let roleName = args.join(" ");//taino
- let role = message.mentions.roles.first() || message.guild.roles.find(role => role.name == roleName);//taino
- if (!role) return message.channel.send('لا يوجد رول بهذا الاسم');//taino
- reactRolesQueue.add(message.guild.id);//taino
- await message.channel.send("يرجاء وضع رياكشن الان");//taino//taino
- let { reaction, user } = await collectReaction(message.author.id);//taino
- await database.addReactionRole(reaction, role.id);//taino
- reactRolesQueue.delete(message.guild.id)//taino
- reaction.message.react(reaction.emoji.name).catch(O_=>O_)//taino
- break;//taino
- case 'clear'://taino//taino//taino
- await database.clearReactionRoles(message.guild.id);//taino
- message.channel.send("تم مسح جميع رولات الرياكشن بنجاح");//taino
- break;//taino//taino//taino//taino//taino
- default://taino
- message.channel.send(`${prefix}reactrole <add | clear>`)//taino//taino
- break;//taino
- }//taino//taino
- break;//taino//taino
- case 'colors'://taino
- if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("تنقصك صلاحيات ادمن لاستخدم هذا الامر")//taino
- order = args.shift();//taino
- switch (order) {//taino//taino
- case 'generate'://taino
- let size = args.shift() || 10;//taino//taino
- if (size < 10 || size > 50) return message.channel.send('يمكن ادخال رقم ما بين العشرة والخمسين فقط');//taino
- let colors = palette('rainbow', size);//taino
- colors.map((color, idx) => {//taino
- setTimeout(() => {//taino//taino
- message.guild.createRole({ name: idx + 1, color, permissions: [] }).catch(console.error);//taino
- }, idx * 200)//taino
- });//taino
- break;//taino
- case 'clear'://taino
- let timer = 0;
- message.guild.roles.filter(role => !isNaN(role.name)).map(role => {//taino//taino
- setTimeout(() => {//taino
- role.delete();//taino//taino
- }, ++timer * 200);//taino
- })//taino
- break;
- default:
- break;
- }
- break;
- }
- });
- //taino//taino//taino//taino//taino//taino//taino//taino//taino
- //taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
- //taino//taino//taino
- client.on('raw', raw => {//taino//taino//taino//taino//taino
- if (!['MESSAGE_REACTION_ADD', 'MESSAGE_REACTION_REMOVE'].includes(raw.t)) return;//taino
- var channel = client.channels.get(raw.d.channel_id);//taino//taino//taino//taino
- if (channel.messages.has(raw.d.message_id)) return;//taino//taino
- channel.fetchMessage(raw.d.message_id).then(message => {//taino
- var reaction = message.reactions.get((raw.d.emoji.id ? `${raw.d.emoji.name}:${raw.d.emoji.id}` : raw.d.emoji.name));
- if (raw.t === 'MESSAGE_REACTION_ADD') return client.emit('messageReactionAdd', reaction, client.users.get(raw.d.user_id));
- if (raw.t === 'MESSAGE_REACTION_REMOVE') return client.emit('messageReactionRemove', reaction, client.users.get(raw.d.user_id));//taino
- });//taino//taino
- });//taino
- function ReactionHandler(reaction, user, userID) {//taino
- return new Promise((resolve, reject) => {
- if (userID == user.id) {//taino
- client.off('messageReactionAdd', ReactionHandler);//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
- resolve(reaction);//taino
- }//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
- })//taino
- }//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
- //taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
- function collectReaction(userID) {
- return new Promise((resolve, reject) => {
- client.on('messageReactionAdd', async (reaction, user) => {
- let collected = await ReactionHandler(reaction, user, userID);
- resolve({ reaction: collected, user })
- });//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
- });//taino//taino//taino//taino//taino//taino//taino//taino//taino
- }//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
- //taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
- client.on('messageReactionAdd', async (reaction, user) => {//taino
- if (user.id == client.user.id) return;//taino
- let reactionRole = await database.getReactionRole(reaction)//taino
- if (!reactionRole) return;//taino
- if (reactionRole.emoji.name != reaction.emoji.name) return reaction.remove(user);//taino
- let role = reaction.message.guild.roles.get(reactionRole.role_id);//taino
- reaction.message.guild.members.get(user.id).addRole(role);//taino
- });//taino
- //taino
- client.on('messageReactionRemove', async (reaction, user) => {//taino
- if (user.id == client.user.id) return;//taino
- let reactionRole = await database.getReactionRole(reaction)
- if (!reactionRole) return;//taino
- let role = reaction.message.guild.roles.get(reactionRole.role_id);
- reaction.message.guild.members.get(user.id).removeRole(role);//taino
- });//taino
- //taino
- client.login("bot token");//taino
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement