【问题标题】:"TypeError: Cannot read property 'send' of undefined" while writing discord bot“TypeError:在编写不和谐机器人时无法读取未定义的属性‘发送’”
【发布时间】:2020-06-16 12:23:40
【问题描述】:

我一直在尝试创建一个机器人,它可以将消息从主机服务器中继到机器人被邀请到的所有其他服务器。有人向我提供了此代码供我使用,我已经朝着正确的方向轻推。

const channels = ['broadcast', 'start'];
 let announcement = args.slice(1).join(' ');
bot.guilds.cache.forEach(guild => {
let channel = guild.channels.cache.first();
 channels.forEach(c => {
  const ch = message.guild.channels.cache.find(channel => channel.name === c);
  ch.send(announcement);

不幸的是,控制台以错误响应,说要么是send is undefined,要么是ch.send is not a real function。有人可以告诉我我做错了什么吗?我对编码还是很陌生。

编辑:这是类型错误

TypeError: Cannot read property 'send' of undefined

更新:感谢帮助我现在更接近解决方案的人。我现在遇到了这个错误

C:\Users\profile\Desktop\Discord Bot\node_modules\@discordjs\collection\dist\index.js:160
            if (fn(val, key, this))
                ^

TypeError: fn is not a function

【问题讨论】:

  • 请不要用近似值说话。复制粘贴您遇到问题的 exact 错误。说“我遇到错误”没有帮助。向我们展示错误文本通常可以在精确的问题上归零,作为奖励,其他有相同错误的人可以搜索并找到这个问题,如果它得到回答。
  • 这是一些非常令人困惑的代码,你想做什么?向每个公会的第一频道发送消息?错误可能是您尝试在语音通道或类别上调用.send。另一个可能的错误是您正在重用变量。
  • 知道了,我重新编辑,让它更具体。
  • 不要将其添加为评论,编辑您的帖子(并删除评论)。此外,错误不是“一行”,显示 your 代码哪里出错的堆栈跟踪在哪里?因为现在你只显示一行,关于 discord 自己的库中的代码,这绝对不是错误所在:它会在 your 代码中最终落入该行你在展示。所以在这一点上,是时候考虑遵循how to ask a good question 上的指南并发布minimal reproducible example 而不是仅仅几行未连接的代码。
  • 如果我有点天真,我真的很抱歉。这是我的第一个重大项目,我不像你们所有人那样有经验。我会尽我所能理解我所问的,

标签: javascript discord discord.js


【解决方案1】:

感谢大家的帮助,但事实证明,我想得太多了。下面的代码实现了我的跨服务器中继的想法。

if(command === "test" ) {

const Detail = args.join(" ");
bot.guilds.cache.forEach(guild => {
guild.channels.cache.find(t => t.name == 'association').send(Detail);

});

【讨论】:

    【解决方案2】:

    您在forEach 循环中犯了一个小错误。看,c 包含有关频道的所有信息(id、名称、公会等),因此,如果您想找到它,您需要执行以下操作:

    // Inside the forEach loop
    const ch = message.guild.channels.cache.find(channel => channel.name === c.name);
    if(ch) ch.send(announcement);
    

    我还添加了if 语句,以防止在找不到频道时弹出错误。

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 2020-07-31
      • 2019-04-19
      • 2021-05-25
      • 2021-03-27
      • 2019-01-27
      • 2020-08-30
      • 2021-09-25
      • 2020-11-10
      • 2020-11-11
      相关资源
      最近更新 更多