如何让机器人在一段时间后删除消息
Posted
技术标签:
【中文标题】如何让机器人在一段时间后删除消息【英文标题】:How to make a bot delete messages after a certain time period 【发布时间】:2019-06-02 17:26:13 【问题描述】:我试图让我的机器人在 15 秒后删除 4 条消息,但我不知道如何让它这样做。
const commando = require('discord.js-commando');
class HitOrMissCommand extends commando.Command
constructor(client)
super(client,
name: 'hitormiss',
group: 'simple',
memberName: 'hitormiss',
description: 'i bet he doesnt kiss yah!'
);
async run(message, args)
message.reply("I guess they never miss, huh?")
message.reply("you got a boyfriend i bet he doesnt kiss yah!, MWAH!")
message.reply("He gon find another girl and he wont miss yah")
message.reply("He gon skirt and hit the dab like wiz khalifa")
module.exports = HitOrMissCommand;
【问题讨论】:
Discord.js: Send message and shortly delete it的可能重复 【参考方案1】:可能想看看这个问题here.
正如该帖子中所回答的那样,最好的方法是在 x 秒后删除该消息。
message.reply('Hit or miss.')
.then(msg =>
msg.delete(10000)
)
.catch(); /*Used for error handling*/
应归功于用户 LW001,他回答了我提到的帖子中的问题。
【讨论】:
【参考方案2】:由于this question 相似,您可以使用相同的技术 - 添加删除超时。在您回复后,.then()
使用您的 15 秒计时器(15000 毫秒)删除该消息:
message.reply("I guess they never miss, huh?").then(message => message.delete(15000)).catch(err => throw err);
或者如果你不能使用箭头语法:
message.reply("I guess they never miss, huh?").then(function(message)
message.delete(15000);
).catch(function(err)
throw err;
);
【讨论】:
【参考方案3】:可以这样。
var replyM = message.reply("I guess they never miss, huh?")
setTimeout(function()
replyM.delete
, 1000);
【讨论】:
【参考方案4】:if (message.content.startsWith(`!test`))
await message.channel.send('Hello').then(r => r.delete( timeout: 5000 ))
console.log("test");
【讨论】:
嗨,欢迎来到 Stack Overflow!只是为了让您知道:当您回答问题时,请尝试发布比代码更完整的内容,也许添加一些关于作者错误以及您如何修复它的解释。我告诉您这是因为您的答案已在“低质量帖子”队列中被标记为删除。您可以使用“编辑”按钮编辑您的答案,或点击此处:edit以上是关于如何让机器人在一段时间后删除消息的主要内容,如果未能解决你的问题,请参考以下文章
如何让我的机器人在特定频道中发送消息,然后在一段时间后将其删除