微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让我的自定义不和谐机器人在发送消息后的几秒钟内删除它发送的嵌入

如何解决如何让我的自定义不和谐机器人在发送消息后的几秒钟内删除它发送的嵌入

我希望我的机器人删除它在有人使用脏话时发出的嵌入内容。我希望它在 5-6 秒内删除嵌入需要 5 或 6 秒,因此它在该区域占用的空间更少。

const discord = require('discord.js');
const { Client,MessageEmbed } = require('discord.js');
const bot = new Client();
const token = 'tokenhere';

bot.on('ready',() =>{
    bot.user.setActivity('YOU',{ type: 'WATCHING' });
    console.log('This bot is online!');
});

bot.on('message',message=>{
  const user = message.author;
  const swearWords = ["fuck","dick","pussy","vagina","bsdk","saale","kutte","bitch","die","mf","bish","fag","ass","nigga","nigger","fack"];
  if (swearWords.some(word => message.content.toLowerCase().includes(word)) ) {
      const embed = new MessageEmbed()
                 .setTitle('Chat F!lter')
                  .setColor(0xff0000)
                  .setDescription('<@' + message.author.id + '> You have been caught being toxic!,You are muted for a minute');
                  message.channel.send(embed);
                  const role = message.guild.roles.cache.find(x => x.name == 'muted'); 
    message.member.roles.add(role);
        setTimeout(() => {message.member.roles.remove(role)},60*1000);
  }});

bot.login(token);

解决方法

message.channel.send() 返回一个 promise,您可以解析该 promise,然后使用 <message>.delete({ timeout: 'time-goes-here' }) 方法,因此您的代码将如下所示。

const Discord = require('discord.js');
const { Client,MessageEmbed } = require('discord.js');
const bot = new Client();
const token = 'token-goes-here';

bot.on('ready',() =>{
    bot.user.setActivity('YOU',{ type: 'WATCHING' });
    console.log('This bot is online!');
});

bot.on('message',message=>{
  const user = message.author;
  const swearWords = ["fuck","dick","pussy","vagina","bsdk","saale","kutte","bitch","die","mf","bish","fag","ass","nigga","nigger","fack"];
  if (swearWords.some(word => message.content.toLowerCase().includes(word)) ) {
      const embed = new MessageEmbed()
                 .setTitle('Chat F!lter')
                  .setColor(0xff0000)
                  .setDescription('<@' + message.author.id + '> You have been caught being toxic!,You are muted for a minute');
                  // send and deleting the embed
                  message.channel.send(embed).then(msg => msg.delete({ timeout: 5000 })); // delete embed after 5 seconds (5000 ms)
                  const role = message.guild.roles.cache.find(x => x.name == 'muted'); 
    message.member.roles.add(role);
        setTimeout(() => {message.member.roles.remove(role)},60*1000);
  }});

bot.login(token);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。