discord_bot/commands/giveaways/end.js

50 lines
1.9 KiB
JavaScript

const { MessageEmbed } = require('discord.js')
const ms = require('ms');
module.exports = {
name: "end",
description: "Giveaway beenden",
accessableby: "Administrator",
category: "giveaway",
aliases: ["giveaway-end"],
usage: '<giveawaymessageid>',
run: async (bot, message, args) => {
if(!message.member.hasPermission('MANAGE_MESSAGES') && !message.member.roles.cache.some((r) => r.name === "Giveaways")){
return message.channel.send(':x: Sie müssen über die Berechtigung zum Verwalten von Nachrichten verfügen, um Giveaways neu auszurollen.');
}
// If no message ID or giveaway name is specified
if(!args[0]){
return message.channel.send(':x: Sie müssen eine gültige Nachrichten-ID angeben!');
}
// try to found the giveaway with prize then with ID
let giveaway =
// Search with giveaway prize
bot.giveawaysManager.giveaways.find((g) => g.prize === args.join(' ')) ||
// Search with giveaway ID
bot.giveawaysManager.giveaways.find((g) => g.messageID === args[0]);
// If no giveaway was found
if(!giveaway){
return message.channel.send('Es konnte kein giveaway für `'+ args.join(' ') + '`gefunden werden.');
}
// Edit the giveaway
bot.giveawaysManager.edit(giveaway.messageID, {
setEndTimestamp: Date.now()
})
// Success message
.then(() => {
// Success message
message.channel.send('Giveaway endet in weniger als '+(bot.giveawaysManager.options.updateCountdownEvery/1000)+' seconds...');
})
.catch((e) => {
if(e.startsWith(`Giveaway mit Nachrichten-ID ${giveaway.messageID} ist bereits beendet.`)){
message.channel.send('Dieses Gewinnspiel ist bereits beendet!');
} else {
console.error(e);
message.channel.send('Es ist ein Fehler aufgetreten...');
}
});
}
}