我想知道如何在#channel1
中键入命令,并让Discord bot
在#channel2
中发送消息(并计划将来也要将消息弄清楚
这是我的代码:
const Discord = require('discord.js');
Bot = new Discord.Client();
gbot = new Discord.Guild();
const token = '....';
bot.on('message', msg =>{
if(msg.content === 'Hello'){
var channel2 =
gbot.channels.find(val =>
val.name === "channel2")
msg.channel2.send("hey");
}
}
bot.login(token);
这是我得到的错误:
无法读取客户端未定义的属性“send”。
我认为您在msg.channel2.send(“hey”)
处有一个错误,它应该是channel2.send(“hey”)
,另外,正如Kareem提到的,您不应该初始化一个新的公会对象,您应该使用消息的一部分。
const Discord = require('discord.js');
bot = new Discord.Client();
const token = '....';
bot.on('message', msg =>{
if(msg.content === 'Hello'){
var channel2 =
msg.guild.channels.find(val =>
val.name === "channel2");
channel2.send("hey");
}
}
bot.login(token);
就像Rafeal说的那样,您希望使用channel2.send()
,另外,您获取通道的方式有点奇怪。看起来你正在创建一个新的公会,而不是从发送消息的那个公会。您可以在message对象中找到它。
请改用此代码。
const Discord = require('discord.js');
const bot = new Discord.Client();
const token = '....';
bot.on('message', msg =>{
if(msg.content === 'Hello'){
var channel2 =
msg.guild.channels.find(val =>
val.name === "channel2")
channel2.send("hey");
}
}
bot.login(token);