Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.52 KB | None | 0 0
  1. const Discord = require('discord.js');//taino
  2. const toArray = require('lodash.toarray');//taino
  3. const { database } = require('./firebase');//taino
  4. var palette = require("google-palette");//taino
  5. //taino
  6. const client = new Discord.Client();//taino
  7. const prefix = ".";//taino
  8.  
  9.  
  10. const reactRolesQueue = new Set();//taino
  11. //taino
  12. client.on('message', async (message) => {//taino
  13. if (message.author.bot) return;//taino
  14. if (message.content.indexOf(prefix) != 0) return;//taino
  15. //taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
  16. const [command, ...args] = message.content.slice(prefix.length).split(/ +/g);//taino
  17. //taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
  18. let order;//taino//taino//taino//taino//taino//taino//taino//taino
  19. switch (command) {//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//ta//taino//taino//taino//tainoino
  20. case 'reactrole'://taino
  21. if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("تنقصك صلاحيات ادمن لاستخدم هذا الامر")//taino
  22. if (reactRolesQueue.has(message.guild.id)) return;//taino
  23. order = args.shift();//taino
  24. switch (order) {//taino
  25. case 'add'://taino//taino
  26. let roleName = args.join(" ");//taino
  27. let role = message.mentions.roles.first() || message.guild.roles.find(role => role.name == roleName);//taino
  28. if (!role) return message.channel.send('لا يوجد رول بهذا الاسم');//taino
  29. reactRolesQueue.add(message.guild.id);//taino
  30. await message.channel.send("يرجاء وضع رياكشن الان");//taino//taino
  31. let { reaction, user } = await collectReaction(message.author.id);//taino
  32. await database.addReactionRole(reaction, role.id);//taino
  33. reactRolesQueue.delete(message.guild.id)//taino
  34. reaction.message.react(reaction.emoji.name).catch(O_=>O_)//taino
  35. break;//taino
  36. case 'clear'://taino//taino//taino
  37. await database.clearReactionRoles(message.guild.id);//taino
  38. message.channel.send("تم مسح جميع رولات الرياكشن بنجاح");//taino
  39. break;//taino//taino//taino//taino//taino
  40. default://taino
  41. message.channel.send(`${prefix}reactrole <add | clear>`)//taino//taino
  42. break;//taino
  43. }//taino//taino
  44. break;//taino//taino
  45. case 'colors'://taino
  46. if (!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("تنقصك صلاحيات ادمن لاستخدم هذا الامر")//taino
  47. order = args.shift();//taino
  48. switch (order) {//taino//taino
  49. case 'generate'://taino
  50. let size = args.shift() || 10;//taino//taino
  51. if (size < 10 || size > 50) return message.channel.send('يمكن ادخال رقم ما بين العشرة والخمسين فقط');//taino
  52. let colors = palette('rainbow', size);//taino
  53. colors.map((color, idx) => {//taino
  54. setTimeout(() => {//taino//taino
  55. message.guild.createRole({ name: idx + 1, color, permissions: [] }).catch(console.error);//taino
  56. }, idx * 200)//taino
  57. });//taino
  58. break;//taino
  59. case 'clear'://taino
  60. let timer = 0;
  61. message.guild.roles.filter(role => !isNaN(role.name)).map(role => {//taino//taino
  62. setTimeout(() => {//taino
  63. role.delete();//taino//taino
  64. }, ++timer * 200);//taino
  65. })//taino
  66. break;
  67. default:
  68. break;
  69. }
  70. break;
  71. }
  72. });
  73. //taino//taino//taino//taino//taino//taino//taino//taino//taino
  74. //taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
  75. //taino//taino//taino
  76. client.on('raw', raw => {//taino//taino//taino//taino//taino
  77. if (!['MESSAGE_REACTION_ADD', 'MESSAGE_REACTION_REMOVE'].includes(raw.t)) return;//taino
  78. var channel = client.channels.get(raw.d.channel_id);//taino//taino//taino//taino
  79. if (channel.messages.has(raw.d.message_id)) return;//taino//taino
  80. channel.fetchMessage(raw.d.message_id).then(message => {//taino
  81. var reaction = message.reactions.get((raw.d.emoji.id ? `${raw.d.emoji.name}:${raw.d.emoji.id}` : raw.d.emoji.name));
  82. if (raw.t === 'MESSAGE_REACTION_ADD') return client.emit('messageReactionAdd', reaction, client.users.get(raw.d.user_id));
  83. if (raw.t === 'MESSAGE_REACTION_REMOVE') return client.emit('messageReactionRemove', reaction, client.users.get(raw.d.user_id));//taino
  84. });//taino//taino
  85. });//taino
  86.  
  87. function ReactionHandler(reaction, user, userID) {//taino
  88. return new Promise((resolve, reject) => {
  89. if (userID == user.id) {//taino
  90. client.off('messageReactionAdd', ReactionHandler);//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
  91. resolve(reaction);//taino
  92. }//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
  93. })//taino
  94. }//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
  95. //taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
  96. function collectReaction(userID) {
  97. return new Promise((resolve, reject) => {
  98. client.on('messageReactionAdd', async (reaction, user) => {
  99. let collected = await ReactionHandler(reaction, user, userID);
  100. resolve({ reaction: collected, user })
  101. });//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
  102. });//taino//taino//taino//taino//taino//taino//taino//taino//taino
  103. }//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
  104. //taino//taino//taino//taino//taino//taino//taino//taino//taino//taino
  105. client.on('messageReactionAdd', async (reaction, user) => {//taino
  106. if (user.id == client.user.id) return;//taino
  107. let reactionRole = await database.getReactionRole(reaction)//taino
  108. if (!reactionRole) return;//taino
  109. if (reactionRole.emoji.name != reaction.emoji.name) return reaction.remove(user);//taino
  110. let role = reaction.message.guild.roles.get(reactionRole.role_id);//taino
  111. reaction.message.guild.members.get(user.id).addRole(role);//taino
  112. });//taino
  113. //taino
  114. client.on('messageReactionRemove', async (reaction, user) => {//taino
  115. if (user.id == client.user.id) return;//taino
  116. let reactionRole = await database.getReactionRole(reaction)
  117. if (!reactionRole) return;//taino
  118. let role = reaction.message.guild.roles.get(reactionRole.role_id);
  119. reaction.message.guild.members.get(user.id).removeRole(role);//taino
  120. });//taino
  121. //taino
  122. client.login("bot token");//taino
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement