Javascript 当被邀请加入公会时,通过随机渠道发送欢迎信息
无论何时邀请bot,我都希望它向服务器中的某个通道发送消息,类似于Dank Memer和Members+过去的做法。但是,我不希望它选择一个频道名称,我希望它每次都选择一个随机频道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.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行,您正在代码执行之前关闭事件