【问题标题】:I need help making a discord bot direct message someone on typing a command我需要帮助在输入命令时向某人发送不和谐机器人直接消息
【发布时间】:2018-04-29 06:33:37
【问题描述】:

我目前正在尝试创建一个不和谐的机器人,但对我正在尝试执行的命令感到困惑。该命令应该是机器人发送的秘密 DM 消息。我想知道是否有办法做到这一点?该命令应该如下所示:

/dm @PLAYER#000 [message_goes_here]

请帮忙!!

【问题讨论】:

    标签: node.js discord dm discord.js


    【解决方案1】:

    让我们一步一步来:

    如果@Player#0000 是提及,您可以使用msg.mentions[0]. 获取Player#0000 的User 对象现在继续向该用户发送消息:

    首先,您需要将消息与命令分开: 使用msg.toString(),您将能够获取将提及转换为 的消息,这也将说明用户名中的空格。现在使用msg.toString().split(' ')shift() 拆分消息两次、join(' ') 拆分消息,然后您将收到消息。

    使用User.send(),您将能够向该用户发送消息。

    最终结果如下所示:

    bot.on('message', message => {
        if (message.content.startsWith('/dm ') && message.mentions.users.size) {
            var v=message.toString().split(' ').shift().shift().join(' ') // Takes the DM content from the message
            var member=message.mentions.users[0] // The mentioned user
            member.send(v) // send that user a DM
        }
    })
    

    请注意,此示例并未真正涵盖错误(以防消息未发送等)

    【讨论】:

    • 当我尝试运行此代码时,我收到错误 message.startsWith is not a function on line 2。这是为什么呢?
    • 我的错,message.content.startsWith(),消息不是字符串。
    • 那么我应该用什么替换message.content.startsWith()
    • 我应该用then替换什么message.content.startsWith()
    • NVM。现在它给了我错误:message.toString(...).split(...).shift(...).shift is not a function。那是什么意思?我只是将其更改为message.content.toString(...).split(...).shift(...).shift 吗? @LW001
    猜你喜欢
    • 2018-11-29
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2018-01-13
    • 2021-04-03
    • 2019-12-10
    • 1970-01-01
    相关资源
    最近更新 更多