Discord 嵌入消息无法正常工作
Discord embed message not working correctly
我的 discord 机器人发送了错误的嵌入消息。这是一个拥抱命令,如果有人没有提及某人,机器人会在频道中发送一条错误消息,内容如下:请提及有效用户! 我想将此消息作为嵌入,但它不能正常工作。每次我在不提及某人的情况下使用该命令时,我的控制台都不会出现错误。当我提到某人时,它会起作用,但它也会发送错误消息。 截图如下: 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);
},
};
请帮帮我,谢谢!
你的问题是这一行:
return message.channel.send();
有两个问题:
- 如果消息中没有
mentions
,您立即调用return。 return
语句下面的任何内容都不会被执行
- 您正在调用
.send()
空
您应该先创建您的嵌入,然后 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 机器人发送了错误的嵌入消息。这是一个拥抱命令,如果有人没有提及某人,机器人会在频道中发送一条错误消息,内容如下:请提及有效用户! 我想将此消息作为嵌入,但它不能正常工作。每次我在不提及某人的情况下使用该命令时,我的控制台都不会出现错误。当我提到某人时,它会起作用,但它也会发送错误消息。 截图如下: 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);
},
};
请帮帮我,谢谢!
你的问题是这一行:
return message.channel.send();
有两个问题:
- 如果消息中没有
mentions
,您立即调用return。return
语句下面的任何内容都不会被执行 - 您正在调用
.send()
空
您应该先创建您的嵌入,然后 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