gaber-elsayed

help reaction Darkey

May 14th, 2020
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. const Discord = require("discord.js");
  2. const client = new Discord.Client()
  3. const prefix = "#"
  4. client.login("Njg4MDYxMDcyNTYxMDEyNzU1.Xncv8A.CBJk7bqzbj88a0kZ1J-89_y-nfM")
  5. client.on("ready",()=>{
  6. client.user.setActivity("Hello world",{type:"PLAYING"});
  7.  
  8. console.log("Ready")
  9. })
  10. client.on("message",(msg)=>{
  11.  
  12. if(msg.content.indexOf(prefix) !== 0) return;
  13. if(msg.author.bot) return;
  14. if(!msg.guild) return
  15. const args = msg.content.slice(prefix.length).trim().split(/ +/g);
  16. const command = args.shift().toLowerCase();
  17. if(command == "help")
  18. {
  19.  
  20. sendMessageHelp(0, msg.author,msg.author).then(() => {
  21.  
  22. msg.react("✅").catch(() => {})
  23.  
  24. }).catch(()=>{
  25.  
  26. msg.react("❌").catch(() => {})
  27.  
  28. })
  29. }
  30. })
  31.  
  32. /**
  33. *
  34. * @param {number} pageNumber Page number... easy
  35. * @param {Discord.TextChannel} sendTo How you want send [channel or user]
  36. * @param {Discord.Message} [message] If you want edit on meesage
  37. * @param {Discord.user} user who can add reaction for help message
  38. */
  39. async function sendMessageHelp(pageNumber, sendTo, user, message) {
  40. const commands = require("./commands")
  41. return new Promise((res,rej) => {
  42. /**
  43. * @type {Array<{command:string,description:string}>}
  44. */
  45. let data = []
  46.  
  47. /**
  48. * @type {Array<data>}
  49. */
  50. let pages = []
  51.  
  52. for (let cmd of commands) {
  53. data.push(cmd)
  54. if(data.length >= 10) {
  55. pages.push(data);
  56. data = []
  57. } else if(cmd.command == commands[commands.length -1].command) {
  58. pages.push(data);
  59. }
  60. }
  61.  
  62. let embed = new Discord.MessageEmbed()
  63. .setTitle("**commands**")
  64. .setFooter(`[${pageNumber + 1} / ${pages.length}] pages`)
  65. .setTimestamp()
  66.  
  67. if(pages[pageNumber]){
  68. embed.setDescription(pages[pageNumber].map(cmd=>`**${cmd.command.replace("%p%",prefix)}:** ${cmd.description}`).join("\n"))
  69. }
  70.  
  71. (message ? message.edit(" ",embed) : sendTo.send(embed)).then(async m => {
  72. res(null)
  73. if(pages.length > 1) {
  74. await m.react("⬅️")
  75. await m.react("⏹️")
  76. await m.react("➡️")
  77. } else await m.react("⏹️")
  78. let previous = m.createReactionCollector((reaction, user) => reaction.emoji.name === "⬅️" && user.id === user.id,{max:1,time:50*1000})
  79. let stop = m.createReactionCollector((reaction, user) => reaction.emoji.name === "⏹️" && user.id === user.id,{max:1,time:50*1000})
  80. let next = m.createReactionCollector((reaction, user) => reaction.emoji.name === "➡️" && user.id === user.id,{max:1,time:50*1000})
  81. previous.on("collect",(reaction, user)=>{
  82. let number = pageNumber - 1
  83. stop.stop()
  84. next.stop()
  85. if(!pages[number]) number = pages.length - 1
  86. if(!pages[number]) number = 0
  87. sendMessageHelp(number,sendTo,user ,m)
  88.  
  89. })
  90. stop.on("collect",(reaction, user)=>{
  91.  
  92. previous.stop()
  93. next.stop()
  94. m.delete()
  95.  
  96. })
  97. next.on("collect",(reaction, user)=>{
  98.  
  99. let number = pageNumber + 1
  100. stop.stop()
  101. previous.stop()
  102. if(!pages[number]) number = 0
  103. sendMessageHelp(number,sendTo,user,m)
  104.  
  105. })
  106.  
  107. }).catch(() => rej(null))
  108. })
  109. }
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120. بتسوي ملف اسم commands.js
  121. وتحطيه فيه االاوامر مثل النموذج دا
  122. module.exports = [
  123. {
  124. command:"%p%help",
  125. description:"To see this message"
  126. },
  127. {
  128. command:"%p%ping",
  129. description:"To see ping of bot"
  130. }
  131. ]
  132.  
  133. وستمتع بالكود, لو بدكم اطور فيه اكتر من هيك ما تنسو :tickgreen:
Add Comment
Please, Sign In to add comment