我的目标是将消息发送到名称为global-chat
的频道。
我尝试过:
const Discord = require("discord.js")
const client = new Discord.Client();
client.on("message", async(msg) => {
if(msg.channel.name !== "global-chat")return;
let message = msg.content
await client.channels.find("name", "global-chat").send(message)
})
但是当我在一台服务器上的global-chat
通道中发送消息时,它不会发送到其他服务器上的global-chat
。谁能帮我解决这个问题?
答案 0 :(得分:2)
如果我正确理解了您的问题,您想在所有其他行业中以相同的名称向频道发送消息。
此行将同时将消息中继到漫游器正在监视的名为global-chat
的频道的 all 。它是这样工作的...
Promise.all()
以并行方式执行Promises。Client.channels
是机器人正在观看的Collection个频道。使用Collection.filter()
,您可以仅使用名为global-chat
的频道来构成一个新集合。Collection.map()
返回为集合中每个值提供的函数返回的值的数组。在这种情况下,它将返回一组Promise.all()
供使用的Promises。await Promise.all(client.channels.filter(c => c.name === 'global-chat').map(c => c.send(msg.content)))
答案 1 :(得分:0)
如果您使用 discord.js v12,则需要将 client.channels.filter 替换为 client.channels。cache.filter。