Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const logger = require(__dirname + '/../logger');
- const db = require('quick.db');
- const ms = require('ms');
- const { MessageEmbed } = require('discord.js');
- const { SlashCommandBuilder } = require('@discordjs/builders');
- module.exports = {
- data: new SlashCommandBuilder()
- .setName('giveaway')
- .setDescription('Verwalte Giveaways')
- .addSubcommand(subcommand =>
- subcommand
- .setName('start')
- .setDescription('Starte ein Giveaway')
- .addStringOption(option =>
- option.setName('price')
- .setDescription('Preis für das Giveaway')
- .setRequired(true))
- .addIntegerOption(option =>
- option.setName('winners')
- .setDescription('Wie viele User das Giveaway gewinnen können')
- .setRequired(true))
- .addStringOption(option =>
- option.setName('duration')
- .setDescription('Wie lange das Giveaway gehen soll(z.B.: 3d1m für 3 Tage 1 Minute)')
- .setRequired(true))
- .addStringOption(option =>
- option.setName('requirements')
- .setDescription('Was User tun müssen um das Giveaway zu gewinnen'))
- .addUserOption(option =>
- option.setName('sponsor')
- .setDescription('Den Sponsor des Giveaways, bei keinem Input bist du selber der Sponsor'))
- .addRoleOption(option =>
- option.setName('ping')
- .setDescription('Optionaler Ping bei der Message'))
- .addChannelOption(option =>
- option.setName('channel')
- .setDescription('Channel für das Giveaway, bei keinem Input wird der aktuelle Channel genommen')))
- .addSubcommand(subcommand =>
- subcommand
- .setName('reroll')
- .setDescription('Lose ein Giveaway neu aus')
- .addStringOption(option =>
- option.setName('messageID')
- .setDescription('ID der Message')
- .setRequired(true))
- .addIntegerOption(option =>
- option.setName('winners')
- .setDescription('Wie viele Gewinner neu ausgelost werden sollen')
- .setRequired(true))),
- async execute(interaction) {
- console.log(interaction.options.getSubcommand())
- const NoPermEmbed = new MessageEmbed()
- .setColor('#f05656')
- .setTitle('Error')
- .setDescription('Du hast nicht die Rechte Giveaways zu erstellen/bearbeiten')
- .setTimestamp();
- const toLowWinnersEmbed = new MessageEmbed()
- .setColor('#f05656')
- .setTitle('Error')
- .setDescription('Du hast nicht die Rechte Giveaways zu erstellen/bearbeiten')
- .setTimestamp();
- const InvalidTimeEmbed = new MessageEmbed()
- .setColor('#f05656')
- .setTitle('Error')
- .setDescription('Wir konnten das Datum nicht ermitteln. Bitte überprüfe deinen Input.')
- .setTimestamp();
- if (!interaction.member.permissions.has('ADMINISTRATOR') && !interaction.member.roles.cache.has('822785561819217930')) return interaction.reply({ embeds: [NoPermEmbed], ephemeral: true });
- const prize = interaction.options.getString('price');
- let time = ms(interaction.options.getString('duration'));
- let sponsor = interaction.options.getUser('sponsor');
- let channel = interaction.options.getChannel('channel');
- const winners = interaction.options.getInteger('winners');
- let requirements = interaction.options.getString('requirements');
- const ping = interaction.options.getRole('ping');
- if (!time) return interaction.reply({ embeds: [InvalidTimeEmbed], ephemeral: true });
- if (winners <= 0) return interaction.reply({ embeds: [toLowWinnersEmbed], ephemeral: true });
- if (!requirements) requirements = 'Keine Anforderungen!';
- if (!channel) channel = interaction.channel;
- if (!sponsor) sponsor = interaction.member;
- let pingstring = 'Neues Giveaway'
- if(ping) pingstring = `${ping} Neues Giveaway`
- time = Date.now() + time;
- const unixtime = Math.round(time / 1000);
- const giveawayEmbed = new MessageEmbed()
- .setColor('#56f067')
- .setTitle('<a:tada_animated:944275577316196382> Neues Giveaway <a:tada_animated:944275577316196382>')
- .setDescription('Reagiere mit :gift: um am Giveaway teilzunehmen.\n**Wenn du gewinnst und die unten stehenden Anforderungen NICHT erfüllst, bekommst du einen <@&892113387197198376>**')
- .addField('Preis', `**${prize}**`)
- .addField('Sponsor', `Dises Giveaway wurde von ${sponsor} gesponsert! Bedankt euch in <#820711921358733357>!`, true)
- .addField('Endet', `<t:${unixtime}:R>`, true)
- .addField('Gewinner', `${winners} Gewinner`, true)
- .addField('Anforderungen', requirements, false)
- .setTimestamp();
- channel.send({ content: pingstring , embeds: [giveawayEmbed] }).then(message => {
- message.react('🎁');
- db.set(`giveaways.${message.id}`, {
- 'endsAtTimestamp' : time,
- 'channel' : channel.id,
- 'message' : message.id,
- 'ended' : false,
- 'users' : [],
- 'winners' : winners,
- 'prize' : prize,
- 'req' : requirements,
- });
- });
- logger.info(`${interaction.member.displayName} hat ein Giveaway gestartet`);
- interaction.reply({ content: `Giveaway erstellt in ${channel}`, ephemeral: true });
- },
- };
Advertisement
Add Comment
Please, Sign In to add comment