Discord 嵌入消息无法正常工作
Posted
技术标签:
【中文标题】Discord 嵌入消息无法正常工作【英文标题】:Discord embed message not working correctly 【发布时间】:2021-07-07 11:43:59 【问题描述】:我的不和谐机器人发送了错误的嵌入消息。这是一个拥抱命令,如果有人没有提及某人,机器人会在频道中发送一条错误消息,内容如下:请提及有效用户!我想将此消息作为嵌入发送,但是它无法正常工作。每次我在不提及某人的情况下使用该命令时,我的控制台中都不会出现错误。当我提到某人时它可以工作,但它也会发送错误消息。 截图如下:https://i.imgur.com/bcnS1Yb.png
我的代码:
const Discord = require('discord.js');
const prefix = require('../config.json');
const hugGif = require('./Huggifs.json');
module.exports =
name: "hug",
description: "Posts a hug gif.",
aliases: ['hug'],
execute(client, message, args)
if (!message.mentions.users.first())
return message.channel.send();
const aembed = new Discord.MessageEmbed()
.setColor('BLUE')
.setTitle(`**Please mention a valid user!**`)
message.channel.send(aembed);
const gif = hugGif[Math.floor(Math.random() * hugGif.length)];
const embed = new Discord.MessageEmbed()
.setColor('BLUE')
.setTitle(`$message.author.username hugs $message.mentions.users.first().username!`)
.setImage(gif)
.setFooter( `Requested by $message.author.username`)
.setTimestamp()
message.channel.send(embed);
,
;
请帮帮我,谢谢!
【问题讨论】:
if (!message.mentions.users.first()) return message.channel.send();
???这不是 if 语句的推荐结构。另外,如果您希望获得帮助,请分享您遇到的错误。你为什么叫.send()
空?
【参考方案1】:
你的问题是这一行:
return message.channel.send();
有两个问题:
-
如果消息中没有
mentions
,则立即调用return。低于return
语句的任何内容都不会被执行
你打电话给.send()
empty
您应该先创建嵌入,然后再创建 return message.channel.send(<embed>)
。
你的if statement
也看起来很奇怪,你应该这样做:
const mentionedMember = message.mentions.users.first();
if(!metionedMember)
// create you embed here
return message.channel.send("your embed here");
// do things if there is a mention inside the message
【讨论】:
很高兴听到这个消息:)以上是关于Discord 嵌入消息无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
DiscordAPIError:无法使用 Discord 嵌入发送空消息
Discord.js 当我踢一个人时我想在频道中看到它+作为嵌入消息