将消息发送到Discord通道(channel.send不是功能)

时间:2019-05-12 22:21:39

标签: javascript node.js discord discord.js

因此,正如我在documentation中看到的那样,我可以调用tc.send("foo");,但是它在我的代码中不起作用:

    client.on('ready', () => {
       var tc = client.guilds.get('547536528533094401').channels.get('547537490651774987')
       console.log(tc.name) // Squad 1
       tc.send('foo') // tc.send us not a function
    })

在控制台中,我获得了正确的频道名称(小队1),但我也获得了

TypeError: tc.send is not a function

我想这不是铸造问题

client.guilds.get('547536528533094401').channels.get('547537490651774987').send('foo')

也不起作用。

当我做console.log(Object.getOwnPropertyNames(client.guilds.get('577240924162359312').channels.get('577240924162359321')))

我得到:

[
  'client',
  'type',
  'deleted',
  'id',
  'name',
  'position',
  'parentID',
  'permissionOverwrites',
  'bitrate',
  'userLimit',
  'guild',
  'members'
]

我正在使用discord.js@11.5.0

1 个答案:

答案 0 :(得分:0)

所以,这是一个愚蠢的错误。我正在复制语音通用频道(General)的ID,而不是 text 通用频道(#general)的ID。

因此,当尝试访问TextChannel.send()方法时,没有发现任何内容,因为它是VoiceChannel。 (都扩展了GuildChannel,又扩展了Channel)。

我仍然想知道为什么tc.type返回Object而不是GuildChannel,因为我不太喜欢javascript的弱类型,但是至少现在可以了。

特别感谢@slothiful