Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何不发送bots消息编辑discord.js_Discord.js - Fatal编程技术网

如何不发送bots消息编辑discord.js

如何不发送bots消息编辑discord.js,discord.js,Discord.js,我有一个消息编辑日志,但我想停止发送日志,如果一个mobs消息被更新,我尝试了一些代码,如 if(bot.oldMessage.content.edit()){ 返回; } 它显示了错误 无法读取未定义的属性“edit” 然后我删除了编辑,然后内容未定义。下面是消息更新的代码 代码 module.exports=async(bot、oldMessage、newMessage)=>{ 让channels=JSON.parse( fs.readFileSync('././database/mes

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

if(bot.oldMessage.content.edit()){
返回;
}
它显示了错误

无法读取未定义的属性“edit”
然后我删除了编辑,然后内容未定义。下面是消息更新的代码

代码

module.exports=async(bot、oldMessage、newMessage)=>{
让channels=JSON.parse(
fs.readFileSync('././database/messageChannel.json','utf8')
);
让channelId=channels[oldMessage.guild.id].channel;
让msgChannel=bot.channels.cache.get(channelId);
如果(!msgChannel){
返回console.log(`找不到ID为${channelId}`的消息通道');
}
if(oldMessage.content==newMessage.content){
返回;
}
让mEmbed=newmessageembed()
.setAuthor(oldMessage.author.tag,oldMessage.author.displayAvatarURL({dynamic:true}))
.setColor(青色)
.setDescription(`**消息在**`中编辑)
.addField(`Before`、`${oldMessage.content}`)
.addField(`After`,`${newMessage.content}`)
.setFooter(`UserID:${oldMessage.author.id}`)
.setTimestamp()文件
msgChannel.send(mEmbed)
}

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

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

if (oldMessage.author.bot) return;

进行一次非常简单的检查将解决此问题。在Discord.js中有一个用户字段,告诉您该用户是否是机器人

事实上,我们确实建议您在代码的“onMessage”部分添加此选项,因为它会阻止其他机器人使用您的机器人,这是为了确保安全,并且不会发生环回/反馈,无论哪种方式,您都不希望恶意机器人利用您的机器人,这也会给您的机器人带来麻烦

这是你想要做的

if (message.author.bot) return;
这段代码具体做的是检查消息的作者是否是bot,如果返回true,它将中断代码的运行,如果返回false,代码将继续运行

如果您只想通过在message.author.bot之前添加感叹号来收听机器人程序,您也可以这样做

if (!message.author.bot) return;
还可以查看其他类型的信息,您可以将任何内容打印到控制台。例如,如果您想查看消息对象包含的内容,您可以使用将其打印到控制台中

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.)
继续探索你能做什么! 发展愉快!^-^