Discord.js:手动触发事件

4

我在node.js中编写了一个基本的discord.js管理机器人。我需要对这些机器人进行一些测试,但是为此,我需要切换事件。我知道node.js有一个e.dispatchEvent(event),但据我所知,discord.js没有类似的函数。

我想知道它的等效物是什么。

2个回答

15

Discord客户端扩展了Node.js的EventEmitter,因此您可以使用EventEmitter#emit()方法调用附加到事件的监听器函数。例如...

// Assuming 'client' is a Client, 'member' is a GuildMember
client.emit('guildMemberAdd', member);

您可以在此处找到由客户端通常发出的完整事件列表。


感谢您的帮助! - Silveradoz

7
在 Discord.js 中,Client 类是 Node.js EventEmitter 类的扩展。因此,您可以使用 EventEmitter.emit() 方法自己触发事件。
简单示例:
// Instantiate a Discord Client
const { Client } = require('discord.js');
const client = new Client();

// Attach a listener function
client.on('test', console.log);

// Emit the event
client.emit('test', 'These params', 'will be logged', 'via the listener.');

1
非常感谢!我在文档中可能漏看了这一点。 - Silveradoz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接