当前位置: 首页 > 知识库问答 >
问题:

discord.js-不使用客户端EventEmitter无法获取通道属性

东方和煦
2023-03-14

我还没有更好地掌握Node.js,但是当我在修补我的Discord bot时,我似乎无法找到一种方法,不将它放入EventEmitter中就可以获得bot所在的频道列表。我很困惑为什么这不起作用,是不是我遗漏了什么?

代码:

const Discord = require("discord.js");
const client = new Discord.Client();
require('dotenv').config();

//this works
client.on('ready', ()=> {
    const channelID = '803359668054786118';
    const channel = client.channels.cache.get(channelID);
    channel.send('working'); //this works
});

//this doesn't work
//intially tried using a wait function to see if the reason was because bot didn't have enough time to log on properly
setTimeout(function() {
    const channelID = '803359668054786118';
    const channel = client.channels.cache.get(channelID);
    console.log(client.channels); //this is telling me that there's no channels in the collection...
    //channel.send('working');
}, 500);

共有1个答案

滑乐逸
2023-03-14

这是因为客户端没有在您的代码的那一点登录。在文件的编译阶段,编译器运行您的代码并编译事件侦听器之外的所有内容。调用client#login()之后,客户端就有了它的上下文。所有的事件监听器(就绪、消息等)绑定到客户端。

换句话说,当编译事件外部的代码时,不登录Discord客户端。一旦客户端登录,事件内部的代码就会执行&事件本身就会发出。

 类似资料:
  • 您可以get get client-go的一个版本,例如get get k8s.io/client-go/1.4/...或者获取k8s.io/client-go/1.4/kubernetes。 现在当我这么做的时候。这是输出- 警告:“k8s.io/client-go/1.4/...”匹配的无包无法加载包:包。:/users/shubhadeeproychowdhury/projects/Go/s

  • 我想制造一个播放音频文件的不和谐机器人。现在,它加入语音通道并播放音频文件,但之后拒绝离开。我的代码在下面。谁能建议一些修复,使我的机器人将离开语音频道?

  • 假设我的表如下所示, 因此,我想获取不属于组“a”的ID 最优雅的方式是什么。现在我使用类似的东西,但我的结果并不完全是我所需要的。因为这也得到了ID5和7

  • 问题内容: 我想获取使用我网站的客户IP地址。我正在使用PHP superglobal: 但是我看到它不能使用此提供正确的IP地址。我得到了我的IP地址,发现它与我的IP地址不同,并且我还可以在某些网站上看到我的IP地址,例如: 我粘贴了提供PHP功能的IP地址,但是此网站未显示任何结果。这个问题是怎么发生的,如何获得客户端的IP地址? 问题答案: 获取访问者/客户的IP地址的最简单方法是使用或变

  • 我正在对一个不和谐的机器人进行编码,我想在其中执行命令并且它将从id为的特定通道(该通道可能是发送的不同通道,也可能不是)拉出一个随机的of消息。我一直在查看文档中的discord.js,但我找不到一种方法,可以通过它的ID获取一个TextChannel,然后使用TextChannels函数,从而获得MessageManager和一个消息集合。 我知道我可以使用获得公会(其中是的触发器)或获得特克

  • 简介 TensorFlow serving提供了通用的gRPC接口,我们也考虑实现通用的gRPC客户端,由于用户模型的输入数据不同,因此我们通过JSON定义数据,并且集成到Xiaomi Cloud-ML中。 使用Xiaomi Cloud-ML 安装cloudml命令工具后,我们可以创建模型服务,请求的数据保存到本地JSON文件中。 { "keys_dtype": "int32", "key