我想知道如何制作,以便机器人进入每个公会,它将发出邀请并将其放入控制台。它一直给我所有这些烦人的打字错误。
TypeError: Cannot read property 'first' of undefined
我尝试更改和弄乱变量。
doopliss.on('ready', guild => {
doopliss.guilds.channels.first().createInvite()
.then(invite => console.log(invite.url))
.catch(err => console.error());
});
expect:该机器人会为其所在的每个服务器发出邀请并将其发布到控制台中 实际结果:机器人死亡并释放出令人讨厌的typeerrors
答案 0 :(得分:0)
您可以使用forEach()
循环来获取公会邀请的所有 。例如...
doopliss.guilds.forEach(guild => {
guild.channels.first().createInvite()
.then(inv => console.log(`${guild.name} | ${inv.url}`));
// Outputs the guild name + the invite URL
});
请参见Map.forEach()
。
答案 1 :(得分:0)
在使用foreach()
ofc之前,您需要使用.cache
doopliss.guilds.cache.forEach(guild => {
let channel = guild.channels.cache.last();
createLink(channel,guild,message);
});
async function createLink(chan,guild,message) {
let invite = await chan.createInvite().catch(console.error);
try{
message.channel.send(guild.name + '|' + invite);
}catch (e) {
message.channel.send(guild.name + '|' + 'no link available');
}
}