首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在嵌入中调用.username属性?(discord.js)

如何在嵌入中调用.username属性?(discord.js)
EN

Stack Overflow用户
提问于 2020-10-13 21:25:32
回答 1查看 1.5K关注 0票数 2

大家好:)标题有点奇怪,我想,但我是新手,我正试图用我自己的话来解决这个问题。

基本上,我所做的是一个“嵌入-orders.js”文件,它将重新组合几个嵌入,这样我就可以在我的main.js文件中调用这些嵌入,而不会占用空间。

我的问题:我想在嵌入的描述中写上触发它的用户名。我本可以使用"user.username“或其他什么的,但是我得到了一个ReferenceError,因为我没有定义用户。因此,我想我需要将类之类的东西导入到我的文件中才能做到这一点?我准备好向你们学习

这是我的"embeds-orders.js"文件↓

代码语言:javascript
复制
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
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-13 21:48:11

如果需要动态指定是谁触发了嵌入,则应该使其成为一个函数。

代码语言:javascript
复制
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事件中:

代码语言:javascript
复制
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事件:

代码语言:javascript
复制
const embed = require('./embeds-orders.js');

client.on('messageReactionAdd', (reaction, user) => {
  // bla bla bla
  message.channel.send(embed(user.username));

编辑#2:你可以编辑这个函数来添加更多的参数。

代码语言:javascript
复制
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);
};
代码语言:javascript
复制
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"
      )
    );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64343381

复制
相关文章

相似问题

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