久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Discord.js V12 消息收集器“錯誤"?

Discord.js V12 Message Collector quot;bugquot;?(Discord.js V12 消息收集器“錯誤?)
本文介紹了Discord.js V12 消息收集器“錯誤"?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在創建一個名冊命令,這是我到目前為止的代碼,錯誤是當涉及到管理員時,它會像圖片中一樣出現錯誤并且它不會繼續......它還保存了所有答案在一個文件中.因此,管理員執行 $roster setup 并開始為每個文件的名稱保存回復.這是我目前唯一完成的部分,所以設置.我在那里遇到了那個錯誤,控制臺中沒有錯誤.

I am making a roster command, and this is my code so far, the error is when it comes to the admin it bugs out like in the picture and it doesn't continue... It also saves all of the answers in a file. So an admin does $roster setup and it starts saving replies for the names of each file. This is the only part I've done for now, so the setup. And I am getting that bug there, there's no error in the console.

client.on('message', async message => {
    if (message.content.startsWith(prefix + "roster")) {
    if (!message.member.hasPermission('ADMINISTRATOR')) return message.channel.send('You do not have that permission! :x:').then(message.react(':x:'))
    if (message.author.bot){}
        else {
            !fs.existsSync(`./roster/` + message.guild.id) && fs.mkdirSync(`./roster/` + message.guild.id, { recursive: true })
            const args = message.content.slice(prefix.length + 7).split(/ +/)
            let uReply = args[0];
            if(!uReply) return message.channel.send("Please use the following options: `setup`, `send`, `add` or `remove`!")

            //SETUP
            if(uReply === "setup") {
                const collector = new Discord.MessageCollector(message.channel, m => m.author.id === message.author.id, { time: 10000 });
            
                message.channel.send("Please write the exact role name of leader role (with emojis if it has).")
                collector.on('collect', message => {
                    let leaderRole = message.content
                    fs.writeFileSync(`./roster/${message.guild.id}/`+ `Leader`+".txt", message.content, (err) => console.error);
                    message.channel.send(`Ok, the leader role is called `${leaderRole}`.`) 
                    collector.off
                

                message.channel.send("Now, whats the role name of co-leader or co-owner role (with emojis if it has)?")
                collector.on('collect', message => {
                    let coleaderRole = message.content
                    fs.writeFileSync(`./roster/${message.guild.id}/`+ `Co-Leader`+".txt", message.content, (err) => console.error);
                    message.channel.send(`Ok, the co-leader/co-owner role is called `${coleaderRole}`.`) 
                    collector.off


                message.channel.send("Now, whats the role name of admin role (with emojis if it has)?")
                collector.on('collect', message => {
                    let adminRole = message.content
                    fs.writeFileSync(`./roster/${message.guild.id}/`+ `Admin`+".txt", message.content, (err) => console.error);
                    message.channel.send(`Ok, the admin role is called `${adminRole}`.`) 
                    collector.off
 

                message.channel.send("Awesome, now whats the role name of staff role (with emojis if it has)?")
                collector.on('collect', message => {
                    let staffRole = message.content
                    fs.writeFileSync(`./roster/${message.guild.id}/`+ `Staff`+".txt", message.content, (err) => console.error);
                    message.channel.send(`Ok, the staff role is called `${staffRole}`.`)
                    collector.off


                message.channel.send("Cool, now whats the role name of tiny-staff role (with emojis if it has)?")
                collector.on('collect', message => {
                    let tinyStaffRole = message.content
                    fs.writeFileSync(`./roster/${message.guild.id}/`+ `Tiny-Staff`+".txt", message.content, (err) => console.error);
                    message.channel.send(`Ok, the tiny-staff role is called `${tinyStaffRole}`.`)
                    collector.off


                message.channel.send("Just a few more, now whats the role name of higher ranked members role (with emojis if it has)?")
                collector.on('collect', message => {
                    let HigherRankedRole = message.content
                    fs.writeFileSync(`./roster/${message.guild.id}/`+ `HigherRanked`+".txt", message.content, (err) => console.error);
                    message.channel.send(`Ok, the higher ranked members role is called `${HigherRankedRole}`.`)
                    collector.off


                message.channel.send("Last one, whats the role name of the normal members role (with emojis if it has)?")
                collector.on('collect', message => {
                    let NormalMembersRole = message.content
                    fs.writeFileSync(`./roster/${message.guild.id}/`+ `NormalMembers`+".txt", message.content, (err) => console.error);
                    message.channel.send(`Awesome, the normal members role is called `${NormalMembersRole}`.`)
                    message.channel.send("That's it for setup.")
                    collector.off


                })})})})})})})





            }
            
        }
    }});

圖片:

推薦答案

我認為錯誤來自原始 MessageCollector 偵聽器未正確禁用,因此原始偵聽器仍然會為每條附加消息觸發.

I believe that the error comes from the original MessageCollector listener not being properly disabled, so the original listener still triggers for each additional message.

看起來您嘗試使用 collector.off 來停止原始偵聽器,但因為這是一個語句而不是函數調用,所以它沒有做任何事情.此外,如果它確實起作用,它將結束父收集器,并且后續的 collector.on 回調將不起作用.

It looks like you tried to stop the original listener with collector.off, but because this is a statement instead of a function call, it doesn't do anything. Furthermore, if it did function, it would end the parent collector and none of the subsequent collector.on callbacks would work.

相反,我會將 collector.on 函數替換為 collector.once 并刪除 collector.off 語句.將其更改為 collector.once 會在偵聽器接收到第一個事件后自動結束它,這正是您在這種情況下想要的.如果您想接收多個事件,則必須使用其他東西.

Instead, I would replace the collector.on functions with collector.once and remove the collector.off statements. Changing it to collector.once automatically ends the listener after it receives the first event, which is what you want in this scenario. If you wanted to receive more than one event, you'd have to use something else.

例如,監聽器看起來像這樣:

For example, the listener would look something like this:

collector.once('collect', message => {
    let leaderRole = message.content
    fs.writeFileSync(`./roster/${message.guild.id}/`+ `Leader`+".txt", message.content, (err) => console.error);
    message.channel.send(`Ok, the leader role is called `${leaderRole}`.`)

    /* ... Rest of code ... */

}

這篇關于Discord.js V12 消息收集器“錯誤"?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

discord.js v12: How do I await for messages in a DM channel?(discord.js v12:我如何等待 DM 頻道中的消息?)
how to make my bot mention the person who gave that bot command(如何讓我的機器人提及發出該機器人命令的人)
How to fix Must use import to load ES Module discord.js(如何修復必須使用導入來加載 ES 模塊 discord.js)
How to list all members from a specific server?(如何列出來自特定服務器的所有成員?)
Discord bot: Fix ‘FFMPEG not found’(Discord bot:修復“找不到 FFMPEG)
Welcome message when joining discord Server using discord.js(使用 discord.js 加入 discord 服務器時的歡迎消息)
主站蜘蛛池模板: 精品免费 | 一级片在线视频 | 中文字幕一区二区三区四区五区 | 天天看天天爽 | 亚洲精品乱码久久久久久蜜桃91 | 91精品久久久久久综合五月天 | 欧美在线视频免费 | 日本三级电影在线看 | 精品欧美一区二区精品久久 | 91国内精精品久久久久久婷婷 | 日韩中文字幕在线观看视频 | 国产蜜臀97一区二区三区 | 亚洲永久免费观看 | 精品在线一区 | 91久久 | 欧美色综合一区二区三区 | 国产日韩一区二区三区 | 日韩欧美在线播放 | 中文字幕一区二区三区四区 | 中文字字幕一区二区三区四区五区 | 男人的天堂中文字幕 | 欧美中文在线 | 伊人性伊人情综合网 | 欧美三级三级三级爽爽爽 | 天天草天天 | 91久操网| 亚洲一区二区三区在线视频 | 日本成人福利 | 欧美日在线 | 精品产国自在拍 | 一级大片网站 | 国产午夜av片 | 国产福利在线小视频 | 国产精品一二三区 | 国产亚洲一区二区三区 | 久草热播 | 激情免费视频 | 日本精品一区二区三区在线观看视频 | 日韩性在线 | 成人小视频在线观看 | 国产精品一区二区三区久久 |