我是Discord.js的新开发人员,我想知道如何向我的机器人所在的所有公会/服务器发送消息。
以前有一些答案,但都是针对旧版本的,有人可以帮忙吗?我已经尝试了这段简洁的代码,但是在当前版本中不起作用。
Bot.on('message', async (message) => {
if (message.content === "e") {
var guildList = Bot.guilds.array();
try {
guildList.forEach(guild => guild.defaultChannel.send("message"));
} catch (err) {
console.log("Could not send message to " + guild.name);
}
}
});
答案 0 :(得分:0)
我已将.defaultChannel
替换为以下内容,试图获得一个名为 general 的频道。如果不能,它将尝试获取第一个频道。如果同样失败,则会记录错误:
const channel = guild.channels.cache.find(channel => channel.name === 'general') || guild.channels.cache.first();
if (channel) {
...
} else {
console.log('The server ' + guild.name + ' has no channels.');
}
我也已更改为Discord.Collection()
.each()
方法,而不是将集合转换为数组并使用.forEach()
。
Bot.on('message', async (message) => {
if (message.content === "e") {
Bot.guilds.each(guild => {
try {
const channel = guild.channels.cache.find(channel => channel.name === 'general') || guild.channels.cache.first();
if (channel) {
channel.send('message');
} else {
console.log('The server ' + guild.name + ' has no channels.');
}
} catch (err) {
console.log('Could not send message to ' + guild.name + '.');
}
});
}
});