Discord.js 不发送消息(无错误)

Posted

技术标签:

【中文标题】Discord.js 不发送消息(无错误)【英文标题】:Discord.js not sending messages (no errors) 【发布时间】:2020-02-26 04:06:24 【问题描述】:

我刚刚开始使用 discord.js 为我的 discord 服务器创建一个机器人。我试图让机器人发送消息,但它就是不这样做。我什至没有得到任何错误。 这是一段不起作用的代码片段:

bot.on('voiceStateUpdate', (oldMember, newMember) => 
    let newUserChannel = newMember.voiceChannel
    let oldUserChannel = oldMember.voiceChannel

    if(oldUserChannel === undefined && newUserChannel !== undefined) 
        // User Joins a voice channel
        console.log("Join");

        if(newMember = manu) 
            console.log("kyllä")
            bot.on('message', msg => 
                msg.channel.send("Manu, oletko käynyt parturissa? \n Kirjoita vastauksesi numero. \n 1. Olen \n 2. En");
            )

            bot.on('message', msg => 
                if(msg.content === "2") 
                msg.channel.send("Ja parturin kautta takasin");
                
                else if(msg.content === "1") 
                    msg.channel.send("Hyvvö");
                
                else 
                    msg.channel.send("Puhu suomea");
                
            )
        
    
        else if(newUserChannel === undefined)
        // User leaves a voice channel
        console.log("Leave");
    
)

如果你能理解文本部分的语言,请注意这个机器人只是为了好玩:D。

我做错了什么?

【问题讨论】:

在有条件的情况下使用消息收集器比使用侦听器更好......我认为它不会起作用 我知道它来晚了,但不要使用 bot.on 来使用消息收集器 【参考方案1】:

我认为问题在于:您将 bot.on 放在 bot.on 中。您可以做的是将第二个 bot.on 与消息放在另一个 bot.on 下方,它应该可以解决您的问题。

【讨论】:

【参考方案2】:

你写了if(newMember = manu) 。您需要使用===== 来比较两个值。仅使用 = 为变量赋值。

【讨论】:

您现在有错误吗?还是比以前的其他行为? 我看不到任何变化。没有错误,也没有更早的错误。早些时候,我尝试为 if 语句制作控制台日志并且它有效。但由于某种原因,机器人不会发送不和谐的消息。 discord ID 是可变的,我已经检查过它是否有效。 if(newMember === "YOURID")一样使用假值测试 没有任何改变。代码应该检测某人何时加入语音频道(它确实如此),然后检查加入的用户是否是特定用户,如果是,它将在文本频道上询问一个问题,然后根据答案执行操作。我尝试将console.log("It works") 用于用户识别部分。它记录了它,所以它工作了。它只是不会将消息发送到不和谐。其他一切似乎都在工作。

以上是关于Discord.js 不发送消息(无错误)的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 无法向该用户发送消息

Discord.js 每隔 1 分钟发送一条消息

Discord.js 代码无法发送嵌入消息 [关闭]

使用 Discord.js 跨渠道发送消息会产生“未定义”错误

Discord.js 票务系统不发送临时消息

discord.js 编辑发送给用户 dm 的消息