避免重复消息?

时间:2018-11-22 21:42:01

标签: discord.js

在这里我需要一些帮助,我有一个代码,该消息显示每2秒更新一次消息,但我希望有一条消息可以替换自身。

let channel = guild.channels.find(channel => channel.name === guilds[guild.id].digitchan);
let channel2 = guild.channels.find(channel => channel.name === guilds[guild.id].countdownchan);
if (channel && channel2) {
  channel.send(embed);
  scrims[guild.id] = {
    timer: setTimeout(function() {
      channel2.join().then(connection => {
        const dispatcher = connection.playFile('./Audio/test.mp3');
        console.log('dispatcher');
        console.log(dispatcher == null);
        dispatcher.on('end', () => {
          channel2.leave();
          const embed2 = new RichEmbed()
            .setColor(0xc1d9ff)
            .addField("message x", false);
          channel.send(embed2);
          scrims[guild.id].codes = true;
          scrims[guild.id].codedata = {};
          scrims[guild.id].playerinterval = setInterval(function() {
            const embed4 = new RichEmbed()
              .setColor(0xc1d9ff)
              .setTitle("codes:");
            Object.keys(scrims[guild.id].codedata).forEach(function(key) {
              let codeobj = scrims[guild.id].codedata[key];
              let user_str = "";
              Object.keys(scrims[guild.id].codedata[key]).every(function(key2, count) {
                let user = scrims[guild.id].codedata[key][key2];
                user_str = user_str + user + "\n"
                if (count >= 15) {
                  if (count > 15) user_str = user_str + "and more";
                  return false;
                };
              })
              embed4.addField(key + " (" + Object.keys(codeobj).length + " codes)", user_str, true);
            })
            channel.send(embed4);
          }, 2000);
          scrims[guild.id].timer2 = setTimeout(function() {
            scrims[guild.id].codes = false;
            clearInterval(scrims[guild.id].playerinterval);
            const embed3 = new RichEmbed()
              .setColor(0xc1d9ff)
              .setTitle("codes:");
            Object.keys(scrims[guild.id].codedata).forEach(function(key) {
              let codeobj = scrims[guild.id].codedata[key];
              let user_str = "";
              Object.keys(scrims[guild.id].codedata[key]).every(function(key2, count) {
                let user = scrims[guild.id].codedata[key][key2];
                user_str = user_str + user + "\n"
                if (count >= 15) {
                  if (count > 15) user_str = user_str + "y mas..";
                  return false;
                };
              })
              embed3.addField(key + " (" + Object.keys(codeobj).length + " codes)", user_str, true);
            })
            channel.send(embed3);
          }, 1 * 60000);
        });
      });
    }, time * 60000);
  };
};

这是不和谐的行为:

Codes:
Codes:
Codes:
Codes:
Codes:
Codes:
Codes:
Codes: 3c5
Codes: 3c5

在重新发送相同消息之前,可能是某种消息删除,请让我知道该怎么做或更改某种代码。

1 个答案:

答案 0 :(得分:1)

只需使用message.edit()来编辑邮件。

message.edit() on discord.js docs