Discord.js:手动触发事件

Sil*_*doz 3 node.js discord.js

我有一个基本的审核机器人discord.js,用node.js. 我需要在机器人上运行一些测试,但要这样做,我需要切换一个事件。我知道node.js有一个e.dispatchEvent(event)但是,据我所知,discord.js没有这样的功能。

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

小智 10

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

// Assuming 'client' is a Client, 'member' is a GuildMember
client.emit('guildMemberAdd', member);
Run Code Online (Sandbox Code Playgroud)

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


slo*_*ful 8

在 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.');
Run Code Online (Sandbox Code Playgroud)