2022-12-02 08:54:36 +00:00
|
|
|
const Discord = require("discord.js");
|
2021-10-08 23:58:57 +00:00
|
|
|
|
|
|
|
module.exports = {
|
2022-12-02 08:54:36 +00:00
|
|
|
description: "End a giveaway",
|
2021-10-09 07:31:19 +00:00
|
|
|
|
2022-12-02 08:54:36 +00:00
|
|
|
options: [
|
|
|
|
{
|
|
|
|
name: "giveaway",
|
|
|
|
description: "The giveaway to end (message ID or giveaway prize)",
|
|
|
|
type: Discord.ApplicationCommandOptionType.String,
|
|
|
|
required: true,
|
|
|
|
},
|
|
|
|
],
|
2021-10-09 07:31:19 +00:00
|
|
|
|
2022-12-02 08:54:36 +00:00
|
|
|
run: async (client, interaction) => {
|
|
|
|
// If the member doesn't have enough permissions
|
|
|
|
if (
|
|
|
|
!interaction.member.permissions.has("MANAGE_MESSAGES") &&
|
|
|
|
!interaction.member.roles.cache.some((r) => r.name === "Giveaways")
|
|
|
|
) {
|
|
|
|
return interaction.reply({
|
|
|
|
content:
|
|
|
|
":x: You need to have the manage messages permissions to end giveaways.",
|
|
|
|
ephemeral: true,
|
|
|
|
});
|
|
|
|
}
|
2021-10-08 23:58:57 +00:00
|
|
|
|
2022-12-02 08:54:36 +00:00
|
|
|
const query = interaction.options.getString("giveaway");
|
2021-10-08 23:58:57 +00:00
|
|
|
|
2022-12-02 08:54:36 +00:00
|
|
|
// try to found the giveaway with prize then with ID
|
|
|
|
const giveaway =
|
|
|
|
// Search with giveaway prize
|
|
|
|
client.giveawaysManager.giveaways.find(
|
|
|
|
(g) => g.prize === query && g.guildId === interaction.guild.id
|
|
|
|
) ||
|
|
|
|
// Search with giveaway ID
|
|
|
|
client.giveawaysManager.giveaways.find(
|
|
|
|
(g) => g.messageId === query && g.guildId === interaction.guild.id
|
|
|
|
);
|
2021-10-09 07:31:19 +00:00
|
|
|
|
2022-12-02 08:54:36 +00:00
|
|
|
// If no giveaway was found
|
|
|
|
if (!giveaway) {
|
|
|
|
return interaction.reply({
|
|
|
|
content: "Unable to find a giveaway for `" + query + "`.",
|
|
|
|
ephemeral: true,
|
|
|
|
});
|
|
|
|
}
|
2021-10-08 23:58:57 +00:00
|
|
|
|
2022-12-02 08:54:36 +00:00
|
|
|
if (giveaway.ended) {
|
|
|
|
return interaction.reply({
|
|
|
|
content: "This giveaway is already ended.",
|
|
|
|
ephemeral: true,
|
|
|
|
});
|
|
|
|
}
|
2021-10-08 23:58:57 +00:00
|
|
|
|
2022-12-02 08:54:36 +00:00
|
|
|
// Edit the giveaway
|
|
|
|
client.giveawaysManager
|
|
|
|
.end(giveaway.messageId)
|
|
|
|
// Success message
|
|
|
|
.then(() => {
|
2021-10-08 23:58:57 +00:00
|
|
|
// Success message
|
2022-12-02 08:54:36 +00:00
|
|
|
interaction.reply("Giveaway ended!");
|
|
|
|
})
|
|
|
|
.catch((e) => {
|
|
|
|
interaction.reply({
|
|
|
|
content: e,
|
|
|
|
ephemeral: true,
|
2021-10-08 23:58:57 +00:00
|
|
|
});
|
2022-12-02 08:54:36 +00:00
|
|
|
});
|
|
|
|
},
|
2021-10-08 23:58:57 +00:00
|
|
|
};
|