【问题标题】:Embed message gif not working | discord.js嵌入消息 gif 不起作用 |不和谐.js
【发布时间】:2021-06-26 21:00:03
【问题描述】:

机器人发送嵌入消息,但只发送文本而不发送 gif。我在单独的 .json 文件中有 gif,因此当有人使用该命令时会有不同的 gif。但由于某种原因,它不起作用。也许是因为 .json 文件?我真的不知道,请帮帮我。 我的代码:

const Discord = require('discord.js');
const prefix = require('../config.json');
const patGif = require('../PATSGIFS.json');

module.exports = {
  name: "pat",
  description: "Pat someone UwU",
  aliases:["pat"],


execute: async (client, message, args) => {
    const gif = patGif[Math.floor(Math.random() * patGif.length)];

    if (!message.mentions.users.first())
    return message.reply("***please mention someone.***");
    
    const embed = new Discord.MessageEmbed()
    .setColor("#FF8DC4 ")
    .setTitle(`*Aww how cute, ${message.author.username} gave ${message.mentions.users.first().username} a pat!*`) 
    .setImage(gif);(String[patGif[gif]])
    message.channel.send({embed})
}} 

.json文件的代码:

{
    "patgif": "https://i.pinimg.com/originals/15/d0/1e/15d01e231310bb6dabb3af0ae40fc209.gif"
}

(我知道,目前只有一张 gif。)

当两个文件都在一个文件夹中时,我在控制台中遇到的错误: 图片:https://i.stack.imgur.com/8rzXP.png |我无法从控制台复制它,所以这是一张图片。

这是邮件的图片: 图片:https://i.stack.imgur.com/nKGG3.png

我们将不胜感激,谢谢! :)

【问题讨论】:

  • 文件名是大写的PATSGIFS.json吗?
  • 是的。为什么?
  • 因为它说找不到../PATSGIFS.json。您能否截取显示此 JSON 文件的文件夹的屏幕截图?
  • 当然。我现在的命令文件夹中只有这两个文件。 i.postimg.cc/k5TSS44k/patsgifs.png
  • 现在可以使用了 - 谢谢。但仍然没有 gif。

标签: javascript node.js discord discord.js bots


【解决方案1】:

有几个错误。首先,您需要修复路径,它是require('../PATSGIFS.json')

另一个错误是 JSON 文件包含一个对象,而不是一个数组。从您的代码中,您似乎想从数组中选择一个随机 gif,所以它应该是这样的:

[
  "https://i.pinimg.com/originals/15/d0/1e/15d01e231310bb6dabb3af0ae40fc209.gif",
  "https://i.pinimg.com/originals/15/d0/1e/15d01e231310bb6dabb3af0ae40fc209.gif",
  "https://i.pinimg.com/originals/15/d0/1e/15d01e231310bb6dabb3af0ae40fc209.gif",
]

您应该按原样发送嵌入,而不是在带有embed 键的对象内:

message.channel.send(embed)

完整代码:

const Discord = require('discord.js');
const prefix = require('../config.json');
const patGif = require('./PATSGIFS.json');

module.exports = {
  name: 'pat',
  description: 'Pat someone UwU',
  aliases: ['pat'],
  execute: async (client, message, args) => {
    const gif = patGif[Math.floor(Math.random() * patGif.length)];

    if (!message.mentions.users.first())
      return message.reply('***please mention someone.***');

    const embed = new Discord.MessageEmbed()
      .setColor('#FF8DC4')
      .setTitle(
        `*Aww how cute, ${message.author.username} gave ${
          message.mentions.users.first().username
        } a pat!*`,
      )
      .setImage(gif);

    message.channel.send(embed);
  },
}; 

【讨论】:

  • 非常感谢 - 但是数组是什么意思?我必须将 [ "i.pinimg.com/originals/15/d0/1e/…", "i.pinimg.com/originals/15/d0/1e/…", "i.pinimg.com/originals/15/d0/1e/…", ] 粘贴到 JSON 文件中吗?我是编码新手,现在有点困惑,抱歉。
  • 如果您有不同的 gif(gif1、gif2、gif3 等),那么您可以在方括号内添加这些的 URL,例如 ["gif1.gif", "gif2.gif", "gif3.gif"]patGif[Math.floor(Math.random() * patGif.length)] 将随机选择其中一个调用 pat 命令的时间。
猜你喜欢
  • 2021-12-03
  • 2021-03-09
  • 2021-08-23
  • 2020-09-27
  • 2019-10-11
  • 2021-10-09
  • 2021-02-01
  • 2021-08-17
  • 2021-11-15
相关资源
最近更新 更多