Discord.js如何从客户端获取频道

时间:2020-03-13 05:54:42

标签: node.js discord discord.js

我有一个名为userUpdate.js的discord.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");

1 个答案:

答案 0 :(得分:1)

您不确定,因为您尝试在公会集合中查找频道。

对于不和谐的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;

对于不和谐的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")