Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Discord Bot不使用命令发送消息_Javascript_Discord_Discord.js - Fatal编程技术网

Javascript Discord Bot不使用命令发送消息

Javascript Discord Bot不使用命令发送消息,javascript,discord,discord.js,Javascript,Discord,Discord.js,我有一些在后台运行的代码,24/7,当然是JavaScript。我想设置一个discord.js bot,以便在持续运行的代码上发生错误时输出消息 如何在不监听消息的情况下向任何频道发送消息?所有教程都会创建依赖命令的命令,以使机器人“回复”给您。我想让机器人成为发送第一条消息的人,然后读回我的回复并相应地采取行动 我目前正在使用discord.js节点库() 这可能吗?按名称从通道缓存中获取通道列表,并为“到”窗口添加事件侦听器。检测到错误时,将消息发送到: 按名称从通道缓存中获取通道列表,并

我有一些在后台运行的代码,24/7,当然是JavaScript。我想设置一个discord.js bot,以便在持续运行的代码上发生错误时输出消息

如何在不监听消息的情况下向任何频道发送消息?所有教程都会创建依赖命令的命令,以使机器人“回复”给您。我想让机器人成为发送第一条消息的人,然后读回我的回复并相应地采取行动

我目前正在使用discord.js节点库()


这可能吗?

按名称从通道缓存中获取通道列表,并为“到”窗口添加事件侦听器。检测到错误时,将消息发送到:


按名称从通道缓存中获取通道列表,并为“到”窗口添加事件侦听器。检测到错误时,将消息发送到:


@GalAppelbaum它应该是
channel.sendMessage()
,其中
channel
应该是您的目标频道,因为
client
是bot本身。而且,这也是可能的。Ori Drori在这里所做的是,只有在检测到错误时,机器人才会首先向目标通道发送消息。显然,您可以用其他一些EventHandler替换它。(例如:让它在机器人登录时发送消息,或让它在新用户进入服务器时发送消息。)@GalAppelbaum-抱歉。我使用了一个较旧的版本,API有所改变。我已将答案更新为新版本。由于客户端找不到频道,
channel
变量未定义。尝试按id搜索频道。正如文勤所说,我将其包装在一个错误处理程序中,因为您希望发送错误消息。JSFIDLE不起作用,因为它不需要discordjs,所以它是不相关的。未定义的错误是因为它找不到频道,并且返回
undefined
。创建一个新频道,然后尝试在频道集合中找到它。@GalAppelbaum我建议您这样做
var channel=client.channels.get('name',nameOfChannel)onReady
eventhandler中的code>。正如您所知,让bot登录到discord需要时间。因此,在bot准备好并登录之前,尝试执行
client.channels…
将始终返回undefined,因为您告诉bot查找频道,即使它尚未登录。因此确保需要
客户端
(或通常是机器人)来获取频道、用户等的东西总是在机器人准备好后完成。@GalAppelbaum-你成功地让它工作了吗?您需要添加/更改什么?@GalAppelbaum它应该是
channel.sendmages()
,其中
channel
应该是您的目标频道,因为
client
本身就是bot。而且,这也是可能的。Ori Drori在这里所做的是,只有在检测到错误时,机器人才会首先向目标通道发送消息。显然,您可以用其他一些EventHandler替换它。(例如:让它在机器人登录时发送消息,或让它在新用户进入服务器时发送消息。)@GalAppelbaum-抱歉。我使用了一个较旧的版本,API有所改变。我已将答案更新为新版本。由于客户端找不到频道,
channel
变量未定义。尝试按id搜索频道。正如文勤所说,我将其包装在一个错误处理程序中,因为您希望发送错误消息。JSFIDLE不起作用,因为它不需要discordjs,所以它是不相关的。未定义的错误是因为它找不到频道,并且返回
undefined
。创建一个新频道,然后尝试在频道集合中找到它。@GalAppelbaum我建议您这样做
var channel=client.channels.get('name',nameOfChannel)onReady
eventhandler中的code>。正如您所知,让bot登录到discord需要时间。因此,在bot准备好并登录之前,尝试执行
client.channels…
将始终返回undefined,因为您告诉bot查找频道,即使它尚未登录。因此确保需要
客户端
(或通常是机器人)来获取频道、用户等的东西总是在机器人准备好后完成。@GalAppelbaum-你成功地让它工作了吗?您需要添加/更改什么?
var client = new Discord.Client();
var channel = client.channels.get('name', nameOfChannel); // or client.channels.get("the channel id")

window.addEventListener('onError', function(e) {
    channel.send(e.error.message) // or client.sendMessage(channel, e.error.message) in older versions;
});