Discord.js:message.guild.channels.forEach 不是函数

Posted

技术标签:

【中文标题】Discord.js:message.guild.channels.forEach 不是函数【英文标题】:Discord.js: message.guild.channels.forEach is not a function 【发布时间】:2020-07-27 20:57:55 【问题描述】:

我正在使用 Discord.js 创建一个 Discord 机器人

我正在创建静音命令,但是当我想为每个频道禁用静音角色的发言权限时,我收到此错误:

TypeError: message.guild.channels.forEach is not a function

我有 V12。 我查看了其他一些选项,但找不到任何可行的选项。

  if(!toMute) return message.reply('It looks like you didnt specify the user!');
  if(toMute.hasPermission('MANAGE_MESSAGES')) return message.reply("can't mute them");
  let muterole = message.guild.roles.cache.find(r => r.name === 'muted');
  if(!muterole)
    try
      muterole = await message.guild.roles.create(
        name: "muted",
        color: "#000000",
        permissions: []
      )
      message.guild.channels.forEach(async (channel, id) => 
        await channel.overwritePermission(muterole, 
          SEND_MESSAGES: false,
          ADD_REACTIONS: false
        );
      );
    catch(e)
      console.log(e.stack);
    
   return message.channel.send('Cant')


  let mutetime = args[1];
  if(!mutetime) return message.reply('You didnt specify the time');

  await(toMute.addRole(muterole.id));
  message.reply(`Successfully muted <@$toMute.id> for $ms(mutetime)`);

  setTimeout(function()
    toMute.removeRole(muterole.id);
    message.channel.send(`<@$toMute.id> has been unmuted!`);
  , ms(mutetime));


【问题讨论】:

【参考方案1】:

请尝试

message.guild.channels.cache.forEach((channel)=>
 ...
)

参考:https://discord.js.org/#/docs/main/stable/class/GuildChannelManager?scrollTo=cache

【讨论】:

【参考方案2】:

就像错误所说的那样。 message.guild.channels.forEach 不是函数!

您可能正在使用 discord.js v12。 在此版本中,message.guild.channels 不返回集合,而是返回 ChannelManager。要获取所有频道的集合,请使用 message.guild.channels.cache。 现在你可以使用.forEach()

message.guild.channels.cache.forEach((channel) => 

 // your code here

);

【讨论】:

以上是关于Discord.js:message.guild.channels.forEach 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js,message.guild.owner 返回 null

message.guild.createRole无效-discord.js

Discord.js 级别角色

“fn 不是函数” discord.js

Discord.js 查找频道时的问题

discord.js 用 1 个命令添加 3 个角色