Javascript 当被邀请加入公会时,通过随机渠道发送欢迎信息

Javascript 当被邀请加入公会时,通过随机渠道发送欢迎信息,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,无论何时邀请bot,我都希望它向服务器中的某个通道发送消息,类似于Dank Memer和Members+过去的做法。但是,我不希望它选择一个频道名称,我希望它每次都选择一个随机频道 bot.on(“guildCreate”,()=>{ const embed=new Discord.MessageEmbed() .setAuthor(bot.user.username,bot.user.avatarURL) .addField(`:wave:Welcome!`,`感谢您为服务器添加灌木丛。`)

无论何时邀请bot,我都希望它向服务器中的某个通道发送消息,类似于Dank Memer和Members+过去的做法。但是,我不希望它选择一个频道名称,我希望它每次都选择一个随机频道

bot.on(“guildCreate”,()=>{
const embed=new Discord.MessageEmbed()
.setAuthor(bot.user.username,bot.user.avatarURL)
.addField(`:wave:Welcome!`,`感谢您为服务器添加灌木丛。`)
.addField(`Getting Started`,`首先,这个bot仍在开发中,并且经常发生更改。我们正在寻找开发人员。`)
.addField(`使用命令t.help查看所有命令!`)
.setColor(0x00ff00)
.setFooter(`谢谢添加灌木丛,祝你好运!`);
message.channel.send(嵌入);
});

如果第一部分正确,则在bot加入服务器时使用
guildCreate
事件

要获得一个随机频道,你必须获得你加入的帮会,
。在(“guildCreate”,(guild))
,然后你可以通过
guild.channels
获得频道,这将让你进入该频道

现在,按照discord.js缓存的工作方式,您现在需要进入通道缓存,使用
guild.channels.cache
,然后您将拥有一个集合

要确保您只获取文本频道,而不获取语音、类别等。您可以对集合使用筛选器
。筛选器(x=>x.type=='Text')
,它将返回一个新的筛选集合

使用新的,您可以使用
.random(1)
从中返回1个随机结果。然后你会有一个新的开始

实现这一点的代码是

bot.on('guildCreate',(guild)=>{
guild.channels.cache
.filter(x=>x.type=='text')
.random(1)[0]
.发送(嵌入);
});

那么这是对的:是的:)这很好。好的,我遇到了错误你遇到了什么错误?事实上,我现在看到问题了。看第11行,您正在代码执行之前关闭事件