From 1b6f6125620b1dcfd8d7ac0980d1a03414a9f599 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Wed, 7 Feb 2024 14:45:38 +0000 Subject: [PATCH] Dateien nach "commands/giveaways" hochladen --- commands/giveaways/Lo | 1 + commands/giveaways/end.js | 50 +++++++++++++++++++++++ commands/giveaways/reroll.js | 47 ++++++++++++++++++++++ commands/giveaways/start.js | 78 ++++++++++++++++++++++++++++++++++++ 4 files changed, 176 insertions(+) create mode 100644 commands/giveaways/Lo create mode 100644 commands/giveaways/end.js create mode 100644 commands/giveaways/reroll.js create mode 100644 commands/giveaways/start.js diff --git a/commands/giveaways/Lo b/commands/giveaways/Lo new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/commands/giveaways/Lo @@ -0,0 +1 @@ + diff --git a/commands/giveaways/end.js b/commands/giveaways/end.js new file mode 100644 index 0000000..6247aa9 --- /dev/null +++ b/commands/giveaways/end.js @@ -0,0 +1,50 @@ +const { MessageEmbed } = require('discord.js') +const ms = require('ms'); +module.exports = { + name: "end", + description: "Giveaway beenden", + accessableby: "Administrator", + category: "giveaway", + aliases: ["giveaway-end"], + usage: '', + 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...'); + } + }); + } +} \ No newline at end of file diff --git a/commands/giveaways/reroll.js b/commands/giveaways/reroll.js new file mode 100644 index 0000000..b5b80f2 --- /dev/null +++ b/commands/giveaways/reroll.js @@ -0,0 +1,47 @@ +const { MessageEmbed } = require('discord.js') +const ms = require('ms'); +module.exports = { + name: "reroll", + description: + "Get list of all command and even get to know every command detials", + usage: "help ", + category:"giveaway", + 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: You need to have the manage messages permissions to reroll giveaways.'); + } + + // If no message ID or giveaway name is specified + if(!args[0]){ + return message.channel.send(':x: You have to specify a valid message ID!'); + } + + // 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 kann kein giveaway für `'+ args.join(' ') +'` gefunden werden.'); + } + + // Reroll the giveaway + bot.giveawaysManager.reroll(giveaway.messageID) + .then(() => { + // Success message + message.channel.send('Giveaway neu gerollt!'); + }) + .catch((e) => { + if(e.startsWith(`Giveaway mit Nachrichten-ID ${giveaway.messageID} ist nicht beendet.`)){ + message.channel.send('Dieses Gewinnspiel ist noch nicht beendet!'); + } else { + console.error(e); + message.channel.send('Es ist ein Fehler aufgetreten...'); + } + }); + + } +} \ No newline at end of file diff --git a/commands/giveaways/start.js b/commands/giveaways/start.js new file mode 100644 index 0000000..54cb882 --- /dev/null +++ b/commands/giveaways/start.js @@ -0,0 +1,78 @@ +const { MessageEmbed } = require('discord.js') +const ms = require('ms'); +module.exports = { + name: "start", + description: "Creating giveaway", + accessableby: "Administrator", + category: "giveaway", + aliases: ["giveaway-start"], + usage: ' , ', + 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 Werbegeschenke zu starten.'); + } + + // Giveaway channel + let giveawayChannel = message.mentions.channels.first(); + // If no channel is mentionned + if(!giveawayChannel){ + return message.channel.send(':x: Du musst einen gültigen Kanal angeben!'); + } + + // Giveaway duration + let giveawayDuration = args[1]; + // If the duration isn't valid + if(!giveawayDuration || isNaN(ms(giveawayDuration))){ + return message.channel.send(':x: Sie müssen eine gültige Dauer angeben!'); + } + + // Number of winners + let giveawayNumberWinners = args[2]; + // If the specified number of winners is not a number + if(isNaN(giveawayNumberWinners) || (parseInt(giveawayNumberWinners) <= 0)){ + return message.channel.send(':x: Sie müssen eine gültige Anzahl von Gewinnern angeben!'); + } + + // Giveaway prize + let giveawayPrize = args.slice(3).join(' '); + // If no prize is specified + if(!giveawayPrize){ + return message.channel.send(':x: Du musst einen gültigen Preis angeben!'); + } + + // Start the giveaway + bot.giveawaysManager.start(giveawayChannel, { + // The giveaway duration + time: ms(giveawayDuration), + // The giveaway prize + prize: giveawayPrize, + // The giveaway winner count + winnerCount: giveawayNumberWinners, + // Who hosts this giveaway + hostedBy: message.author, + // Messages + messages: { + giveaway: "🎉🎉 **GIVEAWAY** 🎉🎉", + giveawayEnded: "🎉🎉 **GIVEAWAY ENDED** 🎉🎉", + timeRemaining: "Verbleibende Zeit: **{duration}**!", + inviteToParticipate: "Reagiere mit 🎉, um teilzunehmen!", + winMessage: "Herzlichen Glückwunsch, {winners}! Du hast **{prize}** gewonnen!", + embedFooter: "Giveaways", + noWinner: "Gewinnspiel abgesagt, keine gültigen Teilnahmen.", + hostedBy: "Gehostet von:", + winners: "gewinner", + endedAt: "Beendet um", + units: { + seconds: "seconds", + minutes: "minutes", + hours: "hours", + days: "days", + pluralS: false // Not needed, because units end with a S so it will automatically removed if the unit value is lower than 2 + } + } + }); + + message.channel.send(`Das Gewinnspiel hat in ${giveawayChannel}begonnen!`); + + } +} \ No newline at end of file