我如何让机器人删除特定频道中的所有消息,然后发送一条消息并循环播放此消息



这段代码在3秒后删除特定通道中的任何消息

client.on("messageCreate", async message =>{
if (message.channel.id === '899644830848798755')
{
setTimeout(() => message.delete(), 3000)
}
}); 

我想要的是5分钟后,它会删除自己的消息,并发送一个消息而不删除它。像这样:

client.on('ready', () => {
setInterval(() => {
message.channel.bulkDelete.then(() => {
client.channels.cache.get('899644830848798755').send('Hello here!')
}, 300000);
})

,谁能告诉我setTimeout()setInterval()的区别是什么?

您正在使用bulkDelete方法,它将每5分钟删除消息。您需要创建一个函数来创建您的循环,您也可以使用setInterval

使用setInterval方法:

client.on('ready', () => {
setInterval(() => {
const chan = client.channels.cache.get('899644830848798755');
chan.send('Hello here!')
}, 300000);
})

使用function方法:

client.on('ready', () => {
async function repeat() { //First loop of function declined.
setTimeout(() => {
const chan = client.channels.cache.get('899644830848798755');
chan.send('Hello here!')
repeat(); //Second loop Accepted for loop
}, 300000)
}
repeat(); //First loop function accepted. Then ignore
})

SetInterval:

setInterval()方法,在Window和Worker接口上提供,重复调用一个函数或执行一个代码片段,每次调用之间有固定的时间延迟。

setInterval源链接:点击这里

SetTimeout:

全局setTimeout()方法设置一个计时器,一旦计时器到期,该计时器将执行一个函数或指定的代码段。

setTimeout源链接:点击这里

相关内容

最新更新