首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何不发送机器人消息编辑discord.js

如何不发送机器人消息编辑discord.js
EN

Stack Overflow用户
提问于 2021-02-20 19:50:57
回答 2查看 66关注 0票数 0

我有一个消息编辑日志,但我想停止发送日志,如果一个暴徒消息被更新,我尝试了一些代码,如

代码语言:javascript
运行
复制
if(bot.oldMessage.content.edit()){
return;
}

它的表现和错误

代码语言:javascript
运行
复制
cannot read property 'edit' of undefined

然后我删除了编辑,然后内容就没有定义了。消息更新的代码如下所示。

代码

代码语言:javascript
运行
复制
module.exports = async (bot, oldMessage, newMessage) => {
     let channels = JSON.parse(
    fs.readFileSync('././database/messageChannel.json', 'utf8')
  );
  let channelId = channels[oldMessage.guild.id].channel;
  let msgChannel = bot.channels.cache.get(channelId);

  if (!msgChannel) {
    return console.log(`No message channel found with ID ${channelId}`);
  }
if (oldMessage.content === newMessage.content){
  return;
}

  let mEmbed = new MessageEmbed()
  .setAuthor(oldMessage.author.tag, oldMessage.author.displayAvatarURL({dynamic: true}))
  .setColor(cyan)
  .setDescription(`**Message Editied in <#${oldMessage.channel.id}>**`)
  .addField(`Before`, `${oldMessage.content}`)
  .addField(`After`, `${newMessage.content}`)
  .setFooter(`UserID: ${oldMessage.author.id}`)
  .setTimestamp()
  msgChannel.send(mEmbed)
  }

如果更新了机器人消息,我将如何阻止它发送嵌入。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-20 23:49:57

做一个非常简单的检查就能解决这个问题。在Discord.js中有一个用户字段,它告诉您用户是否是机器人。

实际上,我们建议您在代码的"onMessage“部分中添加这一点,因为它阻止其他机器人使用您的机器人,这是为了确保所有事情都是安全的,并且不会出现回环/反馈,不管怎样,您都不希望恶意的bot利用您的bot,这也会给您的bot带来麻烦。

以下是你想要做的事;

代码语言:javascript
运行
复制
if (message.author.bot) return;

这段代码专门做的是检查消息的作者是否是一个bot,如果它返回true,它将中断代码的运行,如果它返回一个false,代码将继续运行。

如果您只想在message.author.bot之前添加一个感叹号,您也可以这样做;

代码语言:javascript
运行
复制
if (!message.author.bot) return;

您还可以看到其他类型的信息,您可以打印任何东西到您的控制台。例如,如果要查看消息对象包含的内容,可以将其打印到控制台中;

代码语言:javascript
运行
复制
console.log(message) // This will show everything within that object.
console.log(message.author) // This will show everything within the author object (like ID's, name, discriminators, avatars, etc.)

继续探索你能做什么!发展愉快!^ -^

票数 1
EN

Stack Overflow用户

发布于 2021-02-20 20:41:33

这真的很容易做到。您所需要做的就是检查消息的作者是否是机器人,然后返回if true。你就这样做

代码语言:javascript
运行
复制
if (oldMessage.author.bot) return;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66295916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档