代码之家  ›  专栏  ›  技术社区  ›  kohi

如何消除以前的不和。消息将数据嵌入Discord。js公司

  •  0
  • kohi  · 技术社区  · 2 年前

    我正试图为dc机器人发出snipe命令,但无法重置嵌入。尝试将embed={}放在不同的位置,然后它下次尝试发送一条空消息并出错。此外,它让嵌入现在,因为我是测试,尝试康斯特第一。编辑:现在在检查其他地方的消息时可以工作,应该先这样做。代码:

    bot.on('messageDelete', message => {
            let embed = new Discord.MessageEmbed()
              .setAuthor(`${message.author.username} (${message.author.id})`, message.author.avatarURL())
              .setDescription(message.content || "None")
              
              bot.on('message', message => {
              const args = message.content.slice(PREFIX.length).split(/ +/);
    
              const cmd = args.shift().toLowerCase();
          
                  if (cmd === 'msg'){
                    message.channel.send(embed)
                    }
                  
                })
    
          })
    
    2 回复  |  直到 2 年前
        1
  •  1
  •   Syfy    2 年前

    你不需要 embed = {} ,而不是使用 client.snipes = new Map() 作为收集器。因此,如果有人在机器人联机时删除消息,机器人可以检测到它。

    client.snipes = new Map()
    client.on('messageDelete', function(message, channel) {
        client.snipes.set(message.channel.id, {
            content: message.content,
            author: message.author,
            image: message.attachments.first() ? message.attachments.first().proxyURL : null
        })
    }) //This will be your collector on your index file.
    

    然后创建一个命令文件。

    const msg = client.snipes.get(message.channel.id)
          if(!msg) return message.channel.send("Didn't find any deleted messages.")
            
          const embed = new MessageEmbed()
          .setDescription(`Your_Message`)
          .setTimestamp()
            
          if(msg.image) embed.setImage(msg.image) //If image deleted, it will go here.
          message.channel.send({ embeds: [embed] })
    
        2
  •  0
  •   abney317    2 年前

    每次删除邮件时,您都会重新订阅邮件事件。 我建议将其中一些逻辑置于该范围之外。

    let embed = null;
    
    bot.on('messageDelete', message => {
        embed = new Discord.MessageEmbed()
            .setAuthor(`${message.author.username} (${message.author.id})`, message.author.avatarURL())
            .setDescription(message.content || "None")
    })
    
    bot.on('message', message => {
        const args = message.content.slice(PREFIX.length).split(/ +/);
        const cmd = args.shift().toLowerCase();
    
        if (cmd === 'msg' && embed){
            message.channel.send(embed)
        }
    })