Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Discord = require("discord.js");
- const client = new Discord.Client()
- const prefix = "#"
- client.login("Njg4MDYxMDcyNTYxMDEyNzU1.Xncv8A.CBJk7bqzbj88a0kZ1J-89_y-nfM")
- client.on("ready",()=>{
- client.user.setActivity("Hello world",{type:"PLAYING"});
- console.log("Ready")
- })
- client.on("message",(msg)=>{
- if(msg.content.indexOf(prefix) !== 0) return;
- if(msg.author.bot) return;
- if(!msg.guild) return
- const args = msg.content.slice(prefix.length).trim().split(/ +/g);
- const command = args.shift().toLowerCase();
- if(command == "help")
- {
- sendMessageHelp(0, msg.author,msg.author).then(() => {
- msg.react("✅").catch(() => {})
- }).catch(()=>{
- msg.react("❌").catch(() => {})
- })
- }
- })
- /**
- *
- * @param {number} pageNumber Page number... easy
- * @param {Discord.TextChannel} sendTo How you want send [channel or user]
- * @param {Discord.Message} [message] If you want edit on meesage
- * @param {Discord.user} user who can add reaction for help message
- */
- async function sendMessageHelp(pageNumber, sendTo, user, message) {
- const commands = require("./commands")
- return new Promise((res,rej) => {
- /**
- * @type {Array<{command:string,description:string}>}
- */
- let data = []
- /**
- * @type {Array<data>}
- */
- let pages = []
- for (let cmd of commands) {
- data.push(cmd)
- if(data.length >= 10) {
- pages.push(data);
- data = []
- } else if(cmd.command == commands[commands.length -1].command) {
- pages.push(data);
- }
- }
- let embed = new Discord.MessageEmbed()
- .setTitle("**commands**")
- .setFooter(`[${pageNumber + 1} / ${pages.length}] pages`)
- .setTimestamp()
- if(pages[pageNumber]){
- embed.setDescription(pages[pageNumber].map(cmd=>`**${cmd.command.replace("%p%",prefix)}:** ${cmd.description}`).join("\n"))
- }
- (message ? message.edit(" ",embed) : sendTo.send(embed)).then(async m => {
- res(null)
- if(pages.length > 1) {
- await m.react("⬅️")
- await m.react("⏹️")
- await m.react("➡️")
- } else await m.react("⏹️")
- let previous = m.createReactionCollector((reaction, user) => reaction.emoji.name === "⬅️" && user.id === user.id,{max:1,time:50*1000})
- let stop = m.createReactionCollector((reaction, user) => reaction.emoji.name === "⏹️" && user.id === user.id,{max:1,time:50*1000})
- let next = m.createReactionCollector((reaction, user) => reaction.emoji.name === "➡️" && user.id === user.id,{max:1,time:50*1000})
- previous.on("collect",(reaction, user)=>{
- let number = pageNumber - 1
- stop.stop()
- next.stop()
- if(!pages[number]) number = pages.length - 1
- if(!pages[number]) number = 0
- sendMessageHelp(number,sendTo,user ,m)
- })
- stop.on("collect",(reaction, user)=>{
- previous.stop()
- next.stop()
- m.delete()
- })
- next.on("collect",(reaction, user)=>{
- let number = pageNumber + 1
- stop.stop()
- previous.stop()
- if(!pages[number]) number = 0
- sendMessageHelp(number,sendTo,user,m)
- })
- }).catch(() => rej(null))
- })
- }
- بتسوي ملف اسم commands.js
- وتحطيه فيه االاوامر مثل النموذج دا
- module.exports = [
- {
- command:"%p%help",
- description:"To see this message"
- },
- {
- command:"%p%ping",
- description:"To see ping of bot"
- }
- ]
- وستمتع بالكود, لو بدكم اطور فيه اكتر من هيك ما تنسو :tickgreen:
Add Comment
Please, Sign In to add comment