启动服务器时如何在 discord.js 中调用 client.on(..) 函数

Posted

技术标签:

【中文标题】启动服务器时如何在 discord.js 中调用 client.on(..) 函数【英文标题】:How to invoke client.on(..) function in discord.js when I start my server 【发布时间】:2021-07-27 03:53:08 【问题描述】:

目标:每当我启动服务器时,如何在 client.on("message", message =>...) 函数中使用任何给定字符串发出事件。 一种解决方法是在集成了此机器人的通道上键入“测试”,然后侦听在上述方法中发出的函数。

在一个不和谐的机器人上工作,想知道如何使用如下命令调用 client.on(..) 函数调用:

client.on("message", "test");

我使用 npm start 运行的 server.js 文件如下:

client.once("ready", () => 
        //some code
    );

client.login(discord_token); // starts the bot up

client.on("message", message =>  // runs whenever a message is sent

    //message.content
    var textMessage = message.content;
    textMessage = textMessage.toLowerCase();

    if (textMessage === "test".toLocaleLowerCase()) 
        //some code
    

编辑:代码运行时出现以下错误

 UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "listener" argument must be of type function. Received type string ('test')  
    at checkListener (events.js:111:11)

【问题讨论】:

您的代码不起作用吗?因为你的代码在我看来很好。 您能否更具体地说明您想要发出哪个事件+您想要传递什么信息?你的目标是什么? 【参考方案1】:

您可以在client.on("ready") 中发送消息,以便它尽快发送您的命令。例如:

client.once("ready", () => 
                        // vv id of the channel you want to test in
    client.channels.fetch("id").then(channel => 
        channel.send("your message here")
    )
)

【讨论】:

谢谢你,这完全符合我的要求!要获得频道 ID,我必须: 在不和谐中进入开发人员模式。右键单击服务器>频道以获取“频道”ID 没问题!如果这是您问题的答案,您能否通过点击答案旁边的复选标记 (✓) 将其标记为答案。谢谢!

以上是关于启动服务器时如何在 discord.js 中调用 client.on(..) 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 discord.js 调用 SubCommand 的选项? (v13)

如何从 discord.js 中的 JSON 对象中检索消息作为对象?

如何在 index.js [机器人的启动文件] 中创建一个 discord.js 命令,该命令在发送包含“hi”的消息时删除该消息

使用 Discord.js,如何在触发 webhook 时触发机器人?

(Discord 机器人)当用户加入 Discord 服务器(discord.js)时,如何发送欢迎消息?

Discord js中的messageDelete问题