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

新手上路,请多包涵

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

client.channels.get().send()

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

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

我错过了什么?

原文由 Danislav Kamenov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 421
2 个回答

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

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

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

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

2020 年 6 月 13 日编辑:

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

如果您的模块是遗留的,上述仍然可以工作。我最近的解决方案可以按如下方式更改发送行。

         client.channels.cache.get('CHANNEL ID').send('Hello here!')

如果您使用的是 TypeScript,则需要转换通道才能使用 TextChannel.send(message) 方法而不会出现编译器错误。

 import { TextChannel } from 'discord.js';

( client.channels.cache.get('CHANNEL ID') as TextChannel ).send('Hello here!')

原文由 Gilles Heinesch 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

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

原文由 CodeNationGroup 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进