首页 > 解决方案 > Bot 未定义或 Client.channel.get 不是函数...为什么?

问题描述

我有一个小问题。我想announcement为我的 Discord 机器人创建一个命令。我在一个主题中找到了一个“引用代码”,但是当我使用它时,调试控制台会向我发送“bot is not defined”或者当我用客户端替换 bot 时“Client.channels.get”不是一个函数。你能解释一下吗我怎么了?

const msg = message.content;
const announceChannel = bot.channels.get("778027412435763233");

if (cmd === '${prefix}announce') {
   let announceEmbed = new Discord.RichEmbed()
   .setTitle(":flag_jp: **Annonce** :flag_jp:")
   .setDescription(msg)
   .setColor("#ff0000");

   return announceChannel.send(announceEmbed);
}

截屏

标签: javascriptdiscorddiscord.jsbots

解决方案


在您的示例中,您正在使用Client.login,所以我必须假设那Client是您的机器人。然后你可以简单地做:

let announceChannel = Client.channels.cache.get('Channel ID Here');

您也在使用RichEmbed,这意味着您使用的是过时版本的 discord.js,或者您不知道它MessageEmbed在 discord.js v12 中。输入npm i discord.js@latest您的终端(或为您的机器人安装软件包的任何地方)。然后替换RichEmbed()MessageEmbed()使用我的第一个频道示例。


推荐阅读