Бот отправляет встроенное сообщение, но только текст, а не гифку. У меня есть гифка в отдельном файле .json, поэтому когда кто-то использует эту команду, будут разные гифки. Но почему-то нет ...

1
ツtanni 30 Мар 2021 в 23:08

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);
  },
}; 

enter image description here

0
Zsolt Meszaros 30 Мар 2021 в 21:05