提问者:小点点

使用discord.js传递消息


我想知道如何在#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”。


共2个答案

匿名用户

我认为您在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);