如何在我的嵌入中调用 .username 属性? (discord.js)
How can I call the .username property in my embed ? (discord.js)
大家好:)我猜这个标题有点奇怪,但我是新手,我正在尝试用自己的话来弄明白。
基本上我所做的是一个“embeds-orders.js”文件,它将重新组合一些嵌入,这样我就可以在我的 main.js 文件中调用这些嵌入,而无需在 space它。
我的问题: 我想在嵌入的描述中写下触发它的用户名。我会使用“user.username”或其他东西,但由于我没有定义用户,所以我得到了一个 ReferenceError。
所以我想我需要将 class 之类的东西导入我的文件才能做到这一点?我准备好向你们学习了:D
↓ 这是我的"embeds-orders.js" 文件↓
const { MessageEmbed } = require("discord.js")
const orderStarter = new MessageEmbed()
.setAuthor("STARTER RECOVERY ", "https://i.imgur.com/YOZP0xO.png")
.setDescription(
"Hello " + user.username + ", welcome."
) /* ^^^^^^^^^^^^^ */
.setColor("3232FF")
.setThumbnail(
"https://media.discordapp.net/attachments/224553787824668673/716765453548126228/icon.png.fe88fd1ca437c86cde7cd99961673ef8.png"
)
.addFields(
{
name: "__Wanna Cancel ?__ ",
value: "Type `!cancel`",
inline: true,
}
)
module.exports = {
orderStarter
}
如果您需要动态指定谁触发了嵌入,您应该将其设为一个函数。
module.exports = (username) => {
const { MessageEmbed } = require('discord.js');
return new MessageEmbed()
.setAuthor('STARTER RECOVERY ', 'https://i.imgur.com/YOZP0xO.png')
.setDescription(`Hello ${username}, welcome.')
.setColor('3232FF')
.setThumbnail('https://media.discordapp.net/attachments/224553787824668673/716765453548126228/icon.png.fe88fd1ca437c86cde7cd99961673ef8.png')
.addField('__Wanna Cancel ?__ ', 'Type `!cancel`', true);
};
然后,当您需要发送嵌入时,只需将用户名作为参数传递即可。例如,如果这发生在 message
事件中:
const embed = require('./embeds-orders.js');
client.on('message', (message) => {
if (message.content === 'I want to order the embed')
message.channel.send(embed(message.author.username));
});
编辑:在 messageReactionAdd
事件中:
const embed = require('./embeds-orders.js');
client.on('messageReactionAdd', (reaction, user) => {
// bla bla bla
message.channel.send(embed(user.username));
编辑 #2:您可以只编辑函数以添加更多参数。
module.exports = (author, description, color) => {
const { MessageEmbed } = require('discord.js');
return new MessageEmbed()
.setAuthor(...author) // author can be an array with the text and the url as elements
.setDescription(description)
.setColor(color)
.setThumbnail(
'https://media.discordapp.net/attachments/224553787824668673/716765453548126228/icon.png.fe88fd1ca437c86cde7cd99961673ef8.png'
)
.addField('__Wanna Cancel ?__ ', 'Type `!cancel`', true);
};
const embed = require('./embeds-orders.js');
client.on('messageReactionAdd', (reaction, user) => {
// bla bla bla
reaction.emoji.name === "Emoji Name"
? message.channel.send(embed(["author text", "url"], "description", "color"))
: message.channel.send(
embed(
["different author text", "url"],
"different description",
"different color"
)
);
大家好:)我猜这个标题有点奇怪,但我是新手,我正在尝试用自己的话来弄明白。
基本上我所做的是一个“embeds-orders.js”文件,它将重新组合一些嵌入,这样我就可以在我的 main.js 文件中调用这些嵌入,而无需在 space它。
我的问题: 我想在嵌入的描述中写下触发它的用户名。我会使用“user.username”或其他东西,但由于我没有定义用户,所以我得到了一个 ReferenceError。 所以我想我需要将 class 之类的东西导入我的文件才能做到这一点?我准备好向你们学习了:D
↓ 这是我的"embeds-orders.js" 文件↓
const { MessageEmbed } = require("discord.js")
const orderStarter = new MessageEmbed()
.setAuthor("STARTER RECOVERY ", "https://i.imgur.com/YOZP0xO.png")
.setDescription(
"Hello " + user.username + ", welcome."
) /* ^^^^^^^^^^^^^ */
.setColor("3232FF")
.setThumbnail(
"https://media.discordapp.net/attachments/224553787824668673/716765453548126228/icon.png.fe88fd1ca437c86cde7cd99961673ef8.png"
)
.addFields(
{
name: "__Wanna Cancel ?__ ",
value: "Type `!cancel`",
inline: true,
}
)
module.exports = {
orderStarter
}
如果您需要动态指定谁触发了嵌入,您应该将其设为一个函数。
module.exports = (username) => {
const { MessageEmbed } = require('discord.js');
return new MessageEmbed()
.setAuthor('STARTER RECOVERY ', 'https://i.imgur.com/YOZP0xO.png')
.setDescription(`Hello ${username}, welcome.')
.setColor('3232FF')
.setThumbnail('https://media.discordapp.net/attachments/224553787824668673/716765453548126228/icon.png.fe88fd1ca437c86cde7cd99961673ef8.png')
.addField('__Wanna Cancel ?__ ', 'Type `!cancel`', true);
};
然后,当您需要发送嵌入时,只需将用户名作为参数传递即可。例如,如果这发生在 message
事件中:
const embed = require('./embeds-orders.js');
client.on('message', (message) => {
if (message.content === 'I want to order the embed')
message.channel.send(embed(message.author.username));
});
编辑:在 messageReactionAdd
事件中:
const embed = require('./embeds-orders.js');
client.on('messageReactionAdd', (reaction, user) => {
// bla bla bla
message.channel.send(embed(user.username));
编辑 #2:您可以只编辑函数以添加更多参数。
module.exports = (author, description, color) => {
const { MessageEmbed } = require('discord.js');
return new MessageEmbed()
.setAuthor(...author) // author can be an array with the text and the url as elements
.setDescription(description)
.setColor(color)
.setThumbnail(
'https://media.discordapp.net/attachments/224553787824668673/716765453548126228/icon.png.fe88fd1ca437c86cde7cd99961673ef8.png'
)
.addField('__Wanna Cancel ?__ ', 'Type `!cancel`', true);
};
const embed = require('./embeds-orders.js');
client.on('messageReactionAdd', (reaction, user) => {
// bla bla bla
reaction.emoji.name === "Emoji Name"
? message.channel.send(embed(["author text", "url"], "description", "color"))
: message.channel.send(
embed(
["different author text", "url"],
"different description",
"different color"
)
);