Discord.js如何从客户端搜索频道



我有一个名为userUpdate.js的不协调.js事件,其参数为client,oldUser, newUser

我试过

var log = client.guilds.channels.find(ch => ch.name.includes('log')) ;
if (!log) return;
if (!log.permissionsFor(client.user).has(["SEND_MESSAGES","EMBED_LINKS"])) return;

但我得到的是通道没有定义

log.send("message here");

由于您试图在公会集合中找到通道,所以您得到了未定义的通道。

对于discord v11版本

let log = client.channels.find(ch => ch.name.includes('log')) ;
if (!log) return;
if (!log.permissionsFor(client.user).has(["SEND_MESSAGES","EMBED_LINKS"])) return;

用于discord v12版本

let log = client.channels.cache.find(ch => ch.name.includes('log')) ;
if (!log) return;
if (!log.permissionsFor(client.user).has(["SEND_MESSAGES","EMBED_LINKS"])) return;

更好地使用的通道ID

let logChannel = client.channels.get("ID")
if (!logChannel) return;
if (!logChannel.permissionsFor(client.user).has(["SEND_MESSAGES","EMBED_LINKS"])) return;

对于v12,将client.channels.get("ID")替换为client.channels.cache.get("ID")

最新更新