javascript - 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);
}
解决方案
在您的示例中,您正在使用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()
使用我的第一个频道示例。
推荐阅读
- django - Django 模型会自动索引 pk 和 unique_together,我该如何取消呢?
- c# - 在 Unity 上的 Klak Siphon 中以交互方式更改流的分辨率
- android - 在 SQLite 上插入或替换不起作用
- sql - 子 ID 父 ID 概念
- c# - 创建并注册 C# COM Dll
- javascript - 为什么在使用 setTimeout 的后续调用中未定义 retry_interval
- powerapps - Powerapps:使用 Excel 数据源,屏幕空白
- java - 杰克逊自定义反序列化器委托回到默认值
- mediawiki - mediawiki 默认类别中的类别
- keras - 如何在 CNN 中训练卷积核?