ReferenceError: WebhookClient is not defined
пишу бота на node.js, выдаёт ошибку ReferenceError: WebhookClient is not defined
помогите, вот полный код:
const { SlashCommandBuilder } = require("@discordjs/builders");
const {
CommandInteraction,
Permissions,
MessageEmbed,
Message,
} = require("discord.js");
// Database queries
const Guild = require("../../models/Report/report");
// Configs
const emojis = require("../../../Controller/emojis/emojis");
module.exports.cooldown = {
length: 108000000 /* in ms */,
users: new Set(),
};
/**
* Runs the command.
* @param {CommandInteraction} interaction The Command Interaciton
* @param {any} utils Additional util
*/
module.exports.run = async (interaction, utils) => {
try {
const target = interaction.options.getMember("target");
const reason = interaction.options.getString("reason");
const embed = new MessageEmbed()
.setTitle(`${emojis.notify} Report`)
.setDescription(
`Пользователь: ${interaction.user.tag}\nНарушитель: ${target.user.tag} (${target.id}).\nПричина: **${reason}**`
)
.setThumbnail(interaction.user.displayAvatarURL({ dynamic: true }))
.setFooter({
text: `С: ${interaction.user.tag}`,
iconURL: interaction.user.displayAvatarURL({ dynamic: true }),
})
.setColor("RED")
.setTimestamp();
const guildQuery = await Guild.findOne({ id: interaction.guild.id });
if (!guildQuery) {
return interaction.reply({
content: `${emojis.error} | Этот сервер не имеет систему репортов.`,
ephemeral: true,
});
}
if (target.id === interaction.guild.ownerId)
return interaction.reply({
content: `${emojis.error} | Я не могу зарепортить овнера.`,
ephemeral: true,
});
if (
target.roles.highest.position >=
interaction.guild.me.roles.highest.position
)
return interaction.reply({
content: `${emojis.error} | Я не могу зарепорить участника, роль которого выше моей.`,
ephemeral: true,
});
if (target.id === interaction.user.id)
return interaction.reply({
content: `${emojis.error} | Ты не можешь зарепортить себя.`,
ephemeral: true,
});
if (target.id === interaction.guild.me.id)
return interaction.reply({
content: `${emojis.error} | Я не могу зарепортить себя.`,
ephemeral: true,
});
if (guildQuery) {
const webhookid = guildQuery.webhookid;
const webhooktoken = guildQuery.webhooktoken;
const webhookClient = new WebhookClient({
id: webhookid,
token: webhooktoken,
});
webhookClient.send({ embeds: [embed] });
}
interaction.reply({
content: `${emojis.success} | Успешно зарепорчен ${target} по причине: ${reason}`,
ephemeral: true,
});
} catch (err) {
return Promise.reject(err);
}
};
module.exports.permissions = {
clientPermissions: [Permissions.FLAGS.SEND_MESSAGES],
userPermissions: [Permissions.FLAGS.SEND_MESSAGES],
};
module.exports.data = new SlashCommandBuilder()
.setName("report")
.setDescription("Репорт на пользователя для админов")
.addUserOption((option) =>
option
.setName("target")
.setDescription("Укажи пользователя, на которого подаёшь репорт.")
.setRequired(true)
)
.addStringOption((option) =>
option
.setName("reason")
.setDescription("Опиши причину репорта, и залей пруфы на imgur.")
.setRequired(true)
);
Ответы (1 шт):
Автор решения: Артём
→ Ссылка
Ваша проблема возникла из-за отсутствия WebhookClient в вашем коде. Так как Вы используете discord.js, то достаточно добавить WebhookClient в объект на 2-7 строчках вашего кода:
const {
CommandInteraction,
Permissions,
MessageEmbed,
Message,
WebhookClient, // <------------------
} = require("discord.js");