我不知道问题是什么,这是我正在使用的代码,包括将其发送到指定频道的行:
const Discord = require('discord.js')
const client = new Discord.Client();
const Discord = require('discord.js')
const client = new Discord.Client();
client.on("message", message => {
const embed = new Discord.messageEmbed()
embed.setAuthor(`Phaze Bot`)
embed.setTitle(`Commands List`)
embed.setDescription(`$kick: kicks a member \n $ban: bans a member \n $help music:
displays music commands \n $help: displays the help screen`)
client.guild.channels.cache.get(`801193981115367496`).send(embed)
})
client.login('login in here');
它不会将此嵌入发送到频道(通过 ID)。谁能看出我错在哪里?
更新 它现在正在工作,但是当我在其中发送消息时仍然没有将代码发送到频道。终端也显示这个:
TypeError: Cannot read property 'channels' of undefined
答案 0 :(得分:2)
每当用户在任何频道中发送消息时,此机器人都会发送一个嵌入内容。
您的 client.on("message", (_message) => {
也有错别字
这需要:
client.on("message", message => {
此外,您需要将 client#channels#cache#get
设为:
message.guild.channels.cache.get('801193981115367496').send(embed);
由于ID是字符串,所以需要用引号或引号括起来。
正如 Rémy Shyked 所提到的,引用了来自 VSCode 的 linter:
<块引用>绝对值等于或大于 2^53 的数字文字太大而无法准确表示为整数
ID 值太大,不能准确地作为整数处理
如上所述,每次发送消息时,您的机器人都会发送此嵌入内容。以下是如何让它响应基本的帮助命令(不使用处理程序):
const Discord = require('discord.js')
const client = new Discord.Client();
client.on("message", message => {
if (message.content.toLowerCase() === '!help') {
const embed = new Discord.messageEmbed()
embed.setAuthor(`Phaze Bot`)
embed.setTitle(`Commands List`)
embed.setDescription(`$kick: kicks a member \n $ban: bans a member \n $help music:
displays music commands \n $help: displays the help screen`)
message.guild.channels.cache.get('801193981115367496').send(embed);
};
});
client.login('client login here');
另外,请使用分号,并在不需要时停止使用反引号 (`) - 这样可以在以后避免很多错误。