Discord.js 向特定频道发送消息

Dan*_*nov 11 bots send node.js discord.js

我没有实现一些非常简单的事情。我无法向特定频道发送消息。我浏览了有关堆栈溢出的文档和类似线程。

client.channels.get().send()

不起作用。它不是一个函数。我也不认为它是官方文档中 Channel 类的方法,但到目前为止我发现的每个线程都告诉我使用它。

我设法让机器人通过监听消息然后使用来回复消息,message.reply()但我不想要那样。我希望我的机器人在特定频道中说些什么client.on('ready')

我错过了什么?

Gil*_*sch 24

你没有提供任何你已经测试过的代码,所以我会给你准备好的事件的代码!

    client.on('ready', client => {
        client.channels.get('CHANNEL ID').send('Hello here!');
    })
Run Code Online (Sandbox Code Playgroud)

请注意您的频道 ID 是一个字符串。

让我知道它是否有效,谢谢!

2020 年 6 月 13 日编辑:

Discord.js 更新cache在 get 方法之前需要频道成员。

如果您的模块是旧的,则上述方法仍然有效。我最近的解决方案可以按如下方式更改发送行。

        client.channels.cache.get('CHANNEL ID').send('Hello here!')
Run Code Online (Sandbox Code Playgroud)


小智 7

对于 v12 来说,它将是以下内容:

  client.on('messageCreate', message => {
        client.channels.cache.get('CHANNEL ID').send('Hello here!');
    })
Run Code Online (Sandbox Code Playgroud)

编辑:我将其更改为记录消息。

  • 我使用 Typescript 并收到错误“‘GuildChannel’类型上不存在属性‘发送’。” (2认同)