【问题标题】:How to send a message from inside a function (Discord.js)如何从函数内部发送消息(Discord.js)
【发布时间】:2020-11-22 08:23:39
【问题描述】:

所以我正在为我和我的朋友制作的游戏开发一个机器人,并希望包含一个秘密命令。当它被触发时,它会倒计时(同时以特定间隔发送一些消息)然后执行特定操作。 为了让时间正确,我使用了setTimeout 功能,但现在我遇到了一个问题:由于某种原因,我无法从函数内部发送消息。有没有办法绕过这个限制?或者,是否有其他方法可以在一定延迟后完成命令?

if(command === 'purge') {
    console.log('Starting first message/countdown')
    message.channel.send('WARNING: PURGE PRECEPT INITATED. THIS SERVER WILL BE DELETED IN: 60 SECONDS.')
    setTimeout(purge1, 15000);
}

function purge2() {
    console.log('Starting third message/countdown')
    message.channel.send('WARNING: PURGE PRECEPT INITIATED. THIS SERVER WILL BE DELETED IN: 30 SECONDS.');
    setTimeout(purge3, 15000)
}

不太清楚如何格式化代码,抱歉。是的,我确实有其他东西(准备客户端、登录等),但这是与问题相关的主要部分。

【问题讨论】:

  • 请出示一些代码。
  • 完成@Lioness100。抱歉,格式很糟糕。
  • 你能在 if 语句中发送消息吗?而不是在 purge2() 函数内?我没有看到你调用 purge2(),或者是在代码的其他地方完成的?

标签: javascript discord discord.js bots


【解决方案1】:

它不起作用的原因是message 没有在函数中定义,所以你应该做的是: 在函数中添加message参数,然后在调用函数时传递,例如:

client.on('message', async message => {
    SendHello(message);
}
function SendHello(message){
    message.channel.send('Hello');
}

【讨论】:

  • 为了清楚起见,我是留下消息参数还是替换我想要发送的消息?如果我要发送多条消息(在 dms 内)怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2018-08-25
  • 2020-08-04
  • 1970-01-01
  • 1970-01-01
  • 2021-04-22
相关资源
最近更新 更多