From 40b640f88e69d806ba047a205a349be23a76d5ac Mon Sep 17 00:00:00 2001 From: Vermium Sifell Date: Thu, 15 Dec 2022 10:25:52 +0100 Subject: [PATCH] chore: :fire: Remove dist folder I removed dist folder again since I accidently build and pushed it in the CI No dist folder in the repo --- dist/buttons/primary/index.js | 13 -- dist/commands/config/index.js | 65 ------- dist/commands/config/modules/audits/index.js | 89 --------- dist/commands/config/modules/cpgg/index.js | 95 ---------- dist/commands/config/modules/credits/index.js | 140 -------------- .../embeds/components/getValues/index.js | 67 ------- dist/commands/config/modules/embeds/index.js | 91 --------- dist/commands/config/modules/points/index.js | 112 ----------- dist/commands/config/modules/shop/index.js | 86 --------- dist/commands/config/modules/welcome/index.js | 130 ------------- dist/commands/counters/index.js | 33 ---- dist/commands/counters/modules/view/index.js | 66 ------- dist/commands/credits/index.js | 48 ----- .../commands/credits/modules/balance/index.js | 90 --------- dist/commands/credits/modules/gift/index.js | 153 --------------- dist/commands/credits/modules/top/index.js | 60 ------ dist/commands/credits/modules/work/index.js | 70 ------- dist/commands/dns/index.js | 34 ---- dist/commands/dns/modules/lookup/index.js | 132 ------------- dist/commands/fun/index.js | 34 ---- dist/commands/fun/modules/meme/index.js | 59 ------ dist/commands/manage/index.js | 46 ----- .../commands/manage/modules/counters/index.js | 42 ----- .../modules/counters/modules/add/index.js | 105 ----------- .../modules/counters/modules/remove/index.js | 75 -------- dist/commands/manage/modules/credits/index.js | 53 ------ .../modules/credits/modules/give/index.js | 69 ------- .../modules/credits/modules/giveaway/index.js | 166 ----------------- .../modules/credits/modules/set/index.js | 66 ------- .../modules/credits/modules/take/index.js | 66 ------- .../modules/credits/modules/transfer/index.js | 73 -------- dist/commands/moderation/index.js | 36 ---- .../moderation/modules/prune/index.js | 78 -------- dist/commands/reputation/index.js | 40 ---- .../reputation/modules/check/index.js | 96 ---------- .../repute/components/noSelfReputation.js | 7 - .../reputation/modules/repute/index.js | 105 ----------- dist/commands/shop/index.js | 51 ----- dist/commands/shop/modules/cpgg/index.js | 175 ------------------ dist/commands/shop/modules/roles/index.js | 47 ----- .../shop/modules/roles/modules/buy/index.js | 162 ---------------- .../modules/roles/modules/cancel/index.js | 126 ------------- dist/commands/utils/index.js | 39 ---- dist/commands/utils/modules/about/index.js | 101 ---------- dist/commands/utils/modules/avatar/index.js | 48 ----- dist/events/guildCreate/index.js | 60 ------ dist/events/guildDelete/index.js | 43 ----- dist/events/guildMemberAdd/audits.js | 71 ------- dist/events/guildMemberAdd/index.js | 65 ------- dist/events/guildMemberAdd/joinMessage.js | 52 ------ dist/events/guildMemberRemove/audits.js | 69 ------- dist/events/guildMemberRemove/index.js | 40 ---- dist/events/guildMemberRemove/leaveMessage.js | 52 ------ dist/events/interactionCreate/audits.js | 68 ------- .../handlers/button/index.js | 44 ----- .../handlers/command/index.js | 20 -- .../interactionCreate/handlers/index.js | 48 ----- dist/events/interactionCreate/index.js | 38 ---- dist/events/messageCreate/index.js | 26 --- .../messageCreate/modules/counters/index.js | 69 ------- .../messageCreate/modules/credits/index.js | 70 ------- dist/events/messageCreate/modules/index.js | 13 -- .../messageCreate/modules/points/index.js | 84 --------- dist/events/messageDelete/audits.js | 72 ------- dist/events/messageDelete/index.js | 26 --- dist/events/messageDelete/modules/counter.js | 45 ----- dist/events/messageUpdate/audits.js | 74 -------- dist/events/messageUpdate/index.js | 33 ---- dist/events/messageUpdate/modules/counter.js | 46 ----- dist/events/rateLimit/index.js | 16 -- dist/events/ready/index.js | 29 --- dist/handlers/command/index.js | 92 --------- dist/handlers/database/index.js | 25 --- dist/handlers/deferReply/index.js | 37 ---- dist/handlers/deployCommands/index.js | 44 ----- dist/handlers/event/index.js | 105 ----------- dist/handlers/schedule/index.js | 57 ------ dist/handlers/updatePresence/index.js | 29 --- dist/helpers/baseEmbeds/index.js | 47 ----- dist/helpers/capitalizeFirstLetter/index.js | 5 - dist/helpers/checkDirectory/index.js | 20 -- dist/helpers/checkPermission/index.js | 8 - dist/helpers/credits/give.js | 64 ------- dist/helpers/credits/set.js | 62 ------- dist/helpers/credits/take.js | 64 ------- dist/helpers/credits/transactionRules.js | 16 -- dist/helpers/credits/transfer.js | 105 ----------- dist/helpers/encryption/index.js | 29 --- dist/helpers/getEmbedData/index.js | 75 -------- dist/helpers/pluralize/index.js | 11 -- dist/helpers/upsertGuildMember/index.js | 49 ----- dist/index.js | 38 ---- dist/interfaces/Command.js | 2 - dist/interfaces/EncryptionData.js | 2 - dist/interfaces/Event.js | 2 - dist/interfaces/EventOptions.js | 2 - dist/interfaces/Job.js | 2 - dist/middlewares/cooldown/index.js | 89 --------- dist/middlewares/logger/index.js | 25 --- dist/schedules/cooldowns/index.js | 73 -------- dist/schedules/shop/index.js | 21 --- .../modules/roles/components/dueForPayment.js | 13 -- .../roles/components/overDueForPayment.js | 124 ------------- dist/schedules/shop/modules/roles/index.js | 60 ------ 104 files changed, 6209 deletions(-) delete mode 100644 dist/buttons/primary/index.js delete mode 100644 dist/commands/config/index.js delete mode 100644 dist/commands/config/modules/audits/index.js delete mode 100644 dist/commands/config/modules/cpgg/index.js delete mode 100644 dist/commands/config/modules/credits/index.js delete mode 100644 dist/commands/config/modules/embeds/components/getValues/index.js delete mode 100644 dist/commands/config/modules/embeds/index.js delete mode 100644 dist/commands/config/modules/points/index.js delete mode 100644 dist/commands/config/modules/shop/index.js delete mode 100644 dist/commands/config/modules/welcome/index.js delete mode 100644 dist/commands/counters/index.js delete mode 100644 dist/commands/counters/modules/view/index.js delete mode 100644 dist/commands/credits/index.js delete mode 100644 dist/commands/credits/modules/balance/index.js delete mode 100644 dist/commands/credits/modules/gift/index.js delete mode 100644 dist/commands/credits/modules/top/index.js delete mode 100644 dist/commands/credits/modules/work/index.js delete mode 100644 dist/commands/dns/index.js delete mode 100644 dist/commands/dns/modules/lookup/index.js delete mode 100644 dist/commands/fun/index.js delete mode 100644 dist/commands/fun/modules/meme/index.js delete mode 100644 dist/commands/manage/index.js delete mode 100644 dist/commands/manage/modules/counters/index.js delete mode 100644 dist/commands/manage/modules/counters/modules/add/index.js delete mode 100644 dist/commands/manage/modules/counters/modules/remove/index.js delete mode 100644 dist/commands/manage/modules/credits/index.js delete mode 100644 dist/commands/manage/modules/credits/modules/give/index.js delete mode 100644 dist/commands/manage/modules/credits/modules/giveaway/index.js delete mode 100644 dist/commands/manage/modules/credits/modules/set/index.js delete mode 100644 dist/commands/manage/modules/credits/modules/take/index.js delete mode 100644 dist/commands/manage/modules/credits/modules/transfer/index.js delete mode 100644 dist/commands/moderation/index.js delete mode 100644 dist/commands/moderation/modules/prune/index.js delete mode 100644 dist/commands/reputation/index.js delete mode 100644 dist/commands/reputation/modules/check/index.js delete mode 100644 dist/commands/reputation/modules/repute/components/noSelfReputation.js delete mode 100644 dist/commands/reputation/modules/repute/index.js delete mode 100644 dist/commands/shop/index.js delete mode 100644 dist/commands/shop/modules/cpgg/index.js delete mode 100644 dist/commands/shop/modules/roles/index.js delete mode 100644 dist/commands/shop/modules/roles/modules/buy/index.js delete mode 100644 dist/commands/shop/modules/roles/modules/cancel/index.js delete mode 100644 dist/commands/utils/index.js delete mode 100644 dist/commands/utils/modules/about/index.js delete mode 100644 dist/commands/utils/modules/avatar/index.js delete mode 100644 dist/events/guildCreate/index.js delete mode 100644 dist/events/guildDelete/index.js delete mode 100644 dist/events/guildMemberAdd/audits.js delete mode 100644 dist/events/guildMemberAdd/index.js delete mode 100644 dist/events/guildMemberAdd/joinMessage.js delete mode 100644 dist/events/guildMemberRemove/audits.js delete mode 100644 dist/events/guildMemberRemove/index.js delete mode 100644 dist/events/guildMemberRemove/leaveMessage.js delete mode 100644 dist/events/interactionCreate/audits.js delete mode 100644 dist/events/interactionCreate/handlers/button/index.js delete mode 100644 dist/events/interactionCreate/handlers/command/index.js delete mode 100644 dist/events/interactionCreate/handlers/index.js delete mode 100644 dist/events/interactionCreate/index.js delete mode 100644 dist/events/messageCreate/index.js delete mode 100644 dist/events/messageCreate/modules/counters/index.js delete mode 100644 dist/events/messageCreate/modules/credits/index.js delete mode 100644 dist/events/messageCreate/modules/index.js delete mode 100644 dist/events/messageCreate/modules/points/index.js delete mode 100644 dist/events/messageDelete/audits.js delete mode 100644 dist/events/messageDelete/index.js delete mode 100644 dist/events/messageDelete/modules/counter.js delete mode 100644 dist/events/messageUpdate/audits.js delete mode 100644 dist/events/messageUpdate/index.js delete mode 100644 dist/events/messageUpdate/modules/counter.js delete mode 100644 dist/events/rateLimit/index.js delete mode 100644 dist/events/ready/index.js delete mode 100644 dist/handlers/command/index.js delete mode 100644 dist/handlers/database/index.js delete mode 100644 dist/handlers/deferReply/index.js delete mode 100644 dist/handlers/deployCommands/index.js delete mode 100644 dist/handlers/event/index.js delete mode 100644 dist/handlers/schedule/index.js delete mode 100644 dist/handlers/updatePresence/index.js delete mode 100644 dist/helpers/baseEmbeds/index.js delete mode 100644 dist/helpers/capitalizeFirstLetter/index.js delete mode 100644 dist/helpers/checkDirectory/index.js delete mode 100644 dist/helpers/checkPermission/index.js delete mode 100644 dist/helpers/credits/give.js delete mode 100644 dist/helpers/credits/set.js delete mode 100644 dist/helpers/credits/take.js delete mode 100644 dist/helpers/credits/transactionRules.js delete mode 100644 dist/helpers/credits/transfer.js delete mode 100644 dist/helpers/encryption/index.js delete mode 100644 dist/helpers/getEmbedData/index.js delete mode 100644 dist/helpers/pluralize/index.js delete mode 100644 dist/helpers/upsertGuildMember/index.js delete mode 100644 dist/index.js delete mode 100644 dist/interfaces/Command.js delete mode 100644 dist/interfaces/EncryptionData.js delete mode 100644 dist/interfaces/Event.js delete mode 100644 dist/interfaces/EventOptions.js delete mode 100644 dist/interfaces/Job.js delete mode 100644 dist/middlewares/cooldown/index.js delete mode 100644 dist/middlewares/logger/index.js delete mode 100644 dist/schedules/cooldowns/index.js delete mode 100644 dist/schedules/shop/index.js delete mode 100644 dist/schedules/shop/modules/roles/components/dueForPayment.js delete mode 100644 dist/schedules/shop/modules/roles/components/overDueForPayment.js delete mode 100644 dist/schedules/shop/modules/roles/index.js diff --git a/dist/buttons/primary/index.js b/dist/buttons/primary/index.js deleted file mode 100644 index abbf3e0..0000000 --- a/dist/buttons/primary/index.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.metadata = void 0; -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.metadata = { guildOnly: false, ephemeral: false }; -// Execute the function -const execute = (interaction) => { - logger_1.default.debug(interaction.customId, "primary button clicked!"); -}; -exports.execute = execute; diff --git a/dist/commands/config/index.js b/dist/commands/config/index.js deleted file mode 100644 index 0b3490b..0000000 --- a/dist/commands/config/index.js +++ /dev/null @@ -1,65 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const discord_js_1 = require("discord.js"); -// Modules -const audits_1 = __importDefault(require("./modules/audits")); -const cpgg_1 = __importDefault(require("./modules/cpgg")); -const credits_1 = __importDefault(require("./modules/credits")); -const embeds_1 = __importDefault(require("./modules/embeds")); -const points_1 = __importDefault(require("./modules/points")); -const shop_1 = __importDefault(require("./modules/shop")); -const welcome_1 = __importDefault(require("./modules/welcome")); -exports.builder = new discord_js_1.SlashCommandBuilder() - .setName("config") - .setDescription("Manage guild configurations.") - .setDMPermission(false) - // Modules - .addSubcommand(audits_1.default.builder) - .addSubcommand(cpgg_1.default.builder) - .addSubcommand(credits_1.default.builder) - .addSubcommand(embeds_1.default.builder) - .addSubcommand(points_1.default.builder) - .addSubcommand(shop_1.default.builder) - .addSubcommand(welcome_1.default.builder); -// Execute function -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - switch (interaction.options.getSubcommand()) { - case "audits": - yield audits_1.default.execute(interaction); - break; - case "cpgg": - yield cpgg_1.default.execute(interaction); - break; - case "credits": - yield credits_1.default.execute(interaction); - break; - case "embeds": - yield embeds_1.default.execute(interaction); - break; - case "points": - yield points_1.default.execute(interaction); - break; - case "shop": - yield shop_1.default.execute(interaction); - break; - case "welcome": - yield welcome_1.default.execute(interaction); - break; - default: - throw new Error("No module found for that specific command."); - } -}); -exports.execute = execute; diff --git a/dist/commands/config/modules/audits/index.js b/dist/commands/config/modules/audits/index.js deleted file mode 100644 index 9d3b0df..0000000 --- a/dist/commands/config/modules/audits/index.js +++ /dev/null @@ -1,89 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - builder: (command) => { - return command - .setName("audits") - .setDescription("Audits") - .addBooleanOption((option) => option - .setName("status") - .setDescription("Should audits be enabled?") - .setRequired(true)) - .addChannelOption((option) => option - .setName("channel") - .setDescription("Channel for audit messages.") - .addChannelTypes(discord_js_1.ChannelType.GuildText) - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { guild, options } = interaction; - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild); - const status = options.getBoolean("status"); - const channel = options.getChannel("channel"); - if (!guild) - throw new Error("Guild not found."); - if (!channel) - throw new Error("Channel not found."); - if (status === null) - throw new Error("Status not found."); - const createGuild = yield database_1.default.guild.upsert({ - where: { - id: guild.id, - }, - update: { - auditsEnabled: status, - auditsChannelId: channel.id, - }, - create: { - id: guild.id, - auditsEnabled: status, - auditsChannelId: channel.id, - }, - }); - logger_1.default.silly(createGuild); - const embedSuccess = new discord_js_1.EmbedBuilder() - .setTitle("[:hammer:] Audits") - .setDescription("Guild configuration updated successfully.") - .setColor(successColor) - .addFields({ - name: "🤖 Status", - value: `${createGuild.auditsEnabled - ? ":white_check_mark: Enabled" - : ":x: Disabled"}`, - inline: true, - }, { - name: "🌊 Channel", - value: `<#${createGuild.auditsChannelId}>`, - inline: true, - }) - .setTimestamp() - .setFooter({ - iconURL: footerIcon, - text: footerText, - }); - yield interaction.editReply({ - embeds: [embedSuccess], - }); - return; - }), -}; diff --git a/dist/commands/config/modules/cpgg/index.js b/dist/commands/config/modules/cpgg/index.js deleted file mode 100644 index 4890c04..0000000 --- a/dist/commands/config/modules/cpgg/index.js +++ /dev/null @@ -1,95 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission")); -const encryption_1 = __importDefault(require("../../../../helpers/encryption")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - builder: (command) => { - return command - .setName("cpgg") - .setDescription("Controlpanel.gg") - .addStringOption((option) => option - .setName("scheme") - .setDescription(`Controlpanel.gg Scheme`) - .setRequired(true) - .setChoices({ name: "HTTPS (secure)", value: "https" }, { name: "HTTP (insecure)", value: "http" })) - .addStringOption((option) => option - .setName("domain") - .setDescription(`Controlpanel.gg Domain`) - .setRequired(true)) - .addStringOption((option) => option - .setName("token") - .setDescription(`Controlpanel.gg Application API`) - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const { options, guild } = interaction; - const tokenData = options.getString("token"); - const scheme = options.getString("scheme"); - const domain = options.getString("domain"); - const token = tokenData && encryption_1.default.encrypt(tokenData); - const url = scheme && domain && encryption_1.default.encrypt(`${scheme}://${domain}`); - if (!guild) - throw new Error("No guild found"); - if (!token) - throw new Error("Token not found"); - if (!url) - throw new Error("URL not found"); - const createGuild = yield database_1.default.guild.upsert({ - where: { - id: guild.id, - }, - update: { - apiCpggTokenIv: token.iv, - apiCpggTokenContent: token.content, - apiCpggUrlIv: url.iv, - apiCpggUrlContent: url.content, - }, - create: { - id: guild.id, - apiCpggTokenIv: token.iv, - apiCpggTokenContent: token.content, - apiCpggUrlIv: url.iv, - apiCpggUrlContent: url.content, - }, - }); - logger_1.default.silly(createGuild); - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Updated API credentials.`); - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:tools:] CPGG") - .setDescription(`The following configuration will be used. - -**Scheme**: ${scheme} -**Domain**: ${domain} -**Token**: ends with ${tokenData === null || tokenData === void 0 ? void 0 : tokenData.slice(-4)}`) - .setColor(successColor) - .setTimestamp() - .setFooter({ - iconURL: footerIcon, - text: footerText, - }); - yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [interactionEmbed], - })); - return; - }), -}; diff --git a/dist/commands/config/modules/credits/index.js b/dist/commands/config/modules/credits/index.js deleted file mode 100644 index bccb914..0000000 --- a/dist/commands/config/modules/credits/index.js +++ /dev/null @@ -1,140 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - builder: (command) => { - return command - .setName("credits") - .setDescription(`Configure this guild's credits module.`) - .addBooleanOption((option) => option - .setName("enabled") - .setDescription("Do you want to activate the credit module?") - .setRequired(true)) - .addNumberOption((option) => option - .setName("rate") - .setDescription("Credit rate per message.") - .setRequired(true) - .setMinValue(1)) - .addNumberOption((option) => option - .setName("minimum-length") - .setDescription("Minimum message length to receive credit.") - .setRequired(true)) - .addNumberOption((option) => option - .setName("work-rate") - .setDescription("The maximum amount of credit that can be obtained within a working day.") - .setRequired(true) - .setMinValue(1)) - .addNumberOption((option) => option - .setName("work-timeout") - .setDescription("How long you need to wait before you can work again provided in seconds.") - .setRequired(true)) - .addNumberOption((option) => option - .setName("timeout") - .setDescription("How long you need to wait before you can earn more credits.") - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const { guild, options } = interaction; - const enabled = options.getBoolean("enabled"); - const rate = options.getNumber("rate"); - const timeout = options.getNumber("timeout"); - const minimumLength = options.getNumber("minimum-length"); - const workRate = options.getNumber("work-rate"); - const workTimeout = options.getNumber("work-timeout"); - if (!guild) - throw new Error("Guild not found."); - if (typeof enabled !== "boolean") - throw new Error("Enabled option is not a boolean."); - if (typeof rate !== "number") - throw new Error("Rate is not a number."); - if (typeof workRate !== "number") - throw new Error("Work rate is not a number."); - if (typeof workTimeout !== "number") - throw new Error("Work timeout is not a number."); - if (typeof timeout !== "number") - throw new Error("Timeout is not a number."); - if (typeof minimumLength !== "number") - throw new Error("Minimum length is not a number."); - const createGuild = yield database_1.default.guild.upsert({ - where: { - id: guild.id, - }, - update: { - creditsEnabled: enabled, - creditsRate: rate, - creditsTimeout: timeout, - creditsWorkRate: workRate, - creditsWorkTimeout: workTimeout, - creditsMinimumLength: minimumLength, - }, - create: { - id: guild.id, - creditsEnabled: enabled, - creditsRate: rate, - creditsTimeout: timeout, - creditsWorkRate: workRate, - creditsWorkTimeout: workTimeout, - creditsMinimumLength: minimumLength, - }, - }); - logger_1.default.silly(createGuild); - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:tools:] Credits") - .setDescription("Credits settings updated") - .setColor(successColor) - .addFields({ - name: "🤖 Enabled?", - value: `${createGuild.creditsEnabled}`, - inline: true, - }, { - name: "📈 Rate", - value: `${createGuild.creditsRate}`, - inline: true, - }, { - name: "📈 Work Rate", - value: `${createGuild.creditsWorkRate}`, - inline: true, - }, { - name: "🔨 Minimum Length", - value: `${createGuild.creditsMinimumLength}`, - inline: true, - }, { - name: "⏰ Timeout", - value: `${createGuild.creditsTimeout}`, - inline: true, - }, { - name: "⏰ Work Timeout", - value: `${createGuild.creditsWorkTimeout}`, - inline: true, - }) - .setTimestamp() - .setFooter({ - iconURL: footerIcon, - text: footerText, - }); - yield interaction.editReply({ - embeds: [interactionEmbed], - }); - return; - }), -}; diff --git a/dist/commands/config/modules/embeds/components/getValues/index.js b/dist/commands/config/modules/embeds/components/getValues/index.js deleted file mode 100644 index 192ae0f..0000000 --- a/dist/commands/config/modules/embeds/components/getValues/index.js +++ /dev/null @@ -1,67 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const database_1 = __importDefault(require("../../../../../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../../../middlewares/logger")); -exports.default = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - const { options, guild } = interaction; - if (!guild) - throw new Error("Guild not found"); - const embedConfig = yield (0, getEmbedData_1.default)(guild); - if (!embedConfig) - throw new Error("Embed config not found"); - const newSuccessColor = options.getString("success-color"); - const newWaitColor = options.getString("wait-color"); - const newErrorColor = options.getString("error-color"); - const newFooterIcon = options.getString("footer-icon"); - const newFooterText = options.getString("footer-text"); - if (!newSuccessColor) - throw new Error("Success color not found"); - if (!newWaitColor) - throw new Error("Wait color not found"); - if (!newErrorColor) - throw new Error("Error color not found"); - if (!newFooterIcon) - throw new Error("Footer icon not found"); - if (!newFooterText) - throw new Error("Footer text not found"); - const createGuild = yield database_1.default.guild.upsert({ - where: { - id: guild.id, - }, - update: { - embedColorSuccess: newSuccessColor, - embedColorWait: newWaitColor, - embedColorError: newErrorColor, - embedFooterIcon: newFooterIcon, - embedFooterText: newFooterText, - }, - create: { - id: guild.id, - embedColorSuccess: newSuccessColor, - embedColorWait: newWaitColor, - embedColorError: newErrorColor, - embedFooterIcon: newFooterIcon, - embedFooterText: newFooterText, - }, - }); - logger_1.default.silly(createGuild); - const successColor = createGuild.embedColorSuccess; - const waitColor = createGuild.embedColorWait; - const errorColor = createGuild.embedColorError; - const footerText = createGuild.embedFooterText; - const footerIcon = createGuild.embedFooterIcon; - return { successColor, waitColor, errorColor, footerText, footerIcon }; -}); diff --git a/dist/commands/config/modules/embeds/index.js b/dist/commands/config/modules/embeds/index.js deleted file mode 100644 index cbc7636..0000000 --- a/dist/commands/config/modules/embeds/index.js +++ /dev/null @@ -1,91 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission")); -const getValues_1 = __importDefault(require("./components/getValues")); -exports.default = { - builder: (command) => { - return command - .setName("embeds") - .setDescription(`Embeds`) - .addStringOption((option) => option - .setName("success-color") - .setDescription("No provided description") - .setRequired(true)) - .addStringOption((option) => option - .setName("wait-color") - .setDescription("No provided description") - .setRequired(true)) - .addStringOption((option) => option - .setName("error-color") - .setDescription("No provided description") - .setRequired(true)) - .addStringOption((option) => option - .setName("footer-icon") - .setDescription("No provided description") - .setRequired(true)) - .addStringOption((option) => option - .setName("footer-text") - .setDescription("No provided description") - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { guild } = interaction; - if (!guild) - throw new Error("Guild not found"); - const { successColor, waitColor, errorColor, footerText, footerIcon } = yield (0, getValues_1.default)(interaction); - const embed = new discord_js_1.EmbedBuilder() - .setTitle("[:tools:] Embeds") - .setFooter({ text: footerText, iconURL: footerIcon }) - .setTimestamp(new Date()); - embed - .setDescription("Following embed configuration will be used.") - .setColor(successColor) - .addFields([ - { - name: "🟢 Success Color", - value: `${successColor}`, - inline: true, - }, - { - name: "🟡 Wait Color", - value: `${waitColor}`, - inline: true, - }, - { - name: "🔴 Error Color", - value: `${errorColor}`, - inline: true, - }, - { - name: "🖼️ Footer Icon", - value: `${footerIcon}`, - inline: true, - }, - { - name: "📄 Footer Text", - value: `${footerText}`, - inline: true, - }, - ]); - yield interaction.editReply({ - embeds: [embed], - }); - return; - }), -}; diff --git a/dist/commands/config/modules/points/index.js b/dist/commands/config/modules/points/index.js deleted file mode 100644 index 7f090a2..0000000 --- a/dist/commands/config/modules/points/index.js +++ /dev/null @@ -1,112 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - builder: (command) => { - return command - .setName("points") - .setDescription("Points") - .addBooleanOption((option) => option - .setName("status") - .setDescription("Should credits be enabled?") - .setRequired(true)) - .addNumberOption((option) => option - .setName("rate") - .setDescription("Amount of credits per message.") - .setRequired(true)) - .addNumberOption((option) => option - .setName("minimum-length") - .setDescription("Minimum length of message to earn credits.") - .setRequired(true)) - .addNumberOption((option) => option - .setName("timeout") - .setDescription("Timeout between earning credits (milliseconds).") - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const { options, guild } = interaction; - const status = options === null || options === void 0 ? void 0 : options.getBoolean("status"); - const rate = options === null || options === void 0 ? void 0 : options.getNumber("rate"); - const timeout = options === null || options === void 0 ? void 0 : options.getNumber("timeout"); - const minimumLength = options === null || options === void 0 ? void 0 : options.getNumber("minimum-length"); - if (!guild) - throw new Error("Guild is required"); - if (status === null) - throw new Error("Status must be specified"); - if (!rate) - throw new Error("Rate must be specified"); - if (!timeout) - throw new Error("Timeout must be specified"); - if (!minimumLength) - throw new Error("Minimum length must be specified"); - const createGuild = yield database_1.default.guild.upsert({ - where: { - id: guild.id, - }, - update: { - pointsEnabled: status, - pointsRate: rate, - pointsTimeout: timeout, - pointsMinimumLength: minimumLength, - }, - create: { - id: guild.id, - pointsEnabled: status, - pointsRate: rate, - pointsTimeout: timeout, - pointsMinimumLength: minimumLength, - }, - }); - logger_1.default.silly(createGuild); - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:tools:] Points") - .setDescription("Points settings updated") - .setColor(successColor) - .addFields({ - name: "🤖 Status", - value: `${createGuild.pointsEnabled}`, - inline: true, - }, { - name: "📈 Rate", - value: `${createGuild.pointsRate}`, - inline: true, - }, { - name: "🔨 Minimum Length", - value: `${createGuild.pointsMinimumLength}`, - inline: true, - }, { - name: "⏰ Timeout", - value: `${createGuild.pointsTimeout}`, - inline: true, - }) - .setTimestamp() - .setFooter({ - iconURL: footerIcon, - text: footerText, - }); - yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [interactionEmbed], - })); - return; - }), -}; diff --git a/dist/commands/config/modules/shop/index.js b/dist/commands/config/modules/shop/index.js deleted file mode 100644 index 0699bcc..0000000 --- a/dist/commands/config/modules/shop/index.js +++ /dev/null @@ -1,86 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - builder: (command) => { - return command - .setName("shop") - .setDescription("Shop") - .addBooleanOption((option) => option - .setName("roles-status") - .setDescription("Should roles be enabled?") - .setRequired(true)) - .addNumberOption((option) => option - .setName("roles-price-per-hour") - .setDescription("Price per hour for roles.") - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const { options, guild } = interaction; - const rolesStatus = options === null || options === void 0 ? void 0 : options.getBoolean("roles-status"); - const rolesPricePerHour = options === null || options === void 0 ? void 0 : options.getNumber("roles-price-per-hour"); - if (!guild) - throw new Error("Guild not found"); - if (rolesStatus === null) - throw new Error("Status must be provided"); - if (!rolesPricePerHour) - throw new Error("Roles price per hour must be provided"); - const createGuild = yield database_1.default.guild.upsert({ - where: { - id: guild.id, - }, - update: { - shopRolesEnabled: rolesStatus, - shopRolesPricePerHour: rolesPricePerHour, - }, - create: { - id: guild.id, - shopRolesEnabled: rolesStatus, - shopRolesPricePerHour: rolesPricePerHour, - }, - }); - logger_1.default.silly(createGuild); - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:tools:] Shop") - .setDescription("Shop settings updated") - .setColor(successColor) - .addFields({ - name: "🤖 Roles Status", - value: `${createGuild.shopRolesEnabled}`, - inline: true, - }, { - name: "🌊 Roles Price Per Hour", - value: `${createGuild.shopRolesPricePerHour}`, - inline: true, - }) - .setTimestamp() - .setFooter({ - iconURL: footerIcon, - text: footerText, - }); - yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [interactionEmbed], - })); - return; - }), -}; diff --git a/dist/commands/config/modules/welcome/index.js b/dist/commands/config/modules/welcome/index.js deleted file mode 100644 index 0ca942b..0000000 --- a/dist/commands/config/modules/welcome/index.js +++ /dev/null @@ -1,130 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - builder: (command) => { - return command - .setName("welcome") - .setDescription("Welcome") - .addBooleanOption((option) => option - .setName("status") - .setDescription("Should welcome be enabled?") - .setRequired(true)) - .addChannelOption((option) => option - .setName("join-channel") - .setDescription("Channel for join messages.") - .addChannelTypes(discord_js_1.ChannelType.GuildText) - .setRequired(true)) - .addChannelOption((option) => option - .setName("leave-channel") - .setDescription("Channel for leave messages.") - .addChannelTypes(discord_js_1.ChannelType.GuildText) - .setRequired(true)) - .addStringOption((option) => option - .setName("leave-message") - .setDescription("Message for leave messages.") - .setRequired(true)) - .addStringOption((option) => option - .setName("join-message") - .setDescription("Message for join messages.") - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const { options, guild } = interaction; - const status = options === null || options === void 0 ? void 0 : options.getBoolean("status"); - const joinChannel = options === null || options === void 0 ? void 0 : options.getChannel("join-channel"); - const leaveChannel = options === null || options === void 0 ? void 0 : options.getChannel("leave-channel"); - const joinChannelMessage = options === null || options === void 0 ? void 0 : options.getString("join-message"); - const leaveChannelMessage = options === null || options === void 0 ? void 0 : options.getString("leave-message"); - if (!guild) - throw new Error("Guild not found"); - if (status === null) - throw new Error("Status not specified"); - if (!joinChannel) - throw new Error("Join channel not specified"); - if (!joinChannelMessage) - throw new Error("Join channel message not specified"); - if (!leaveChannel) - throw new Error("Leave channel not specified"); - if (!leaveChannelMessage) - throw new Error("Leave channel message not specified"); - const createGuild = yield database_1.default.guild.upsert({ - where: { - id: guild.id, - }, - update: { - welcomeEnabled: status, - welcomeJoinChannelId: joinChannel.id, - welcomeJoinChannelMessage: joinChannelMessage, - welcomeLeaveChannelId: leaveChannel.id, - welcomeLeaveChannelMessage: leaveChannelMessage, - }, - create: { - id: guild.id, - welcomeEnabled: status, - welcomeJoinChannelId: joinChannel.id, - welcomeJoinChannelMessage: joinChannelMessage, - welcomeLeaveChannelId: leaveChannel.id, - welcomeLeaveChannelMessage: leaveChannelMessage, - }, - }); - logger_1.default.silly(createGuild); - const interactionEmbedDisabled = new discord_js_1.EmbedBuilder() - .setTitle("[:tools:] Welcome") - .setDescription("This module is currently disabled, please enable it to continue.") - .setColor(successColor) - .setTimestamp() - .setFooter({ - iconURL: footerIcon, - text: footerText, - }); - if (!createGuild.welcomeEnabled) { - return interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [interactionEmbedDisabled], - }); - } - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:tools:] Welcome") - .setDescription(`The following configuration will be used. - - [👋] **Welcome** - - ㅤ**Channel**: <#${createGuild.welcomeJoinChannelId}> - ㅤ**Message**: ${createGuild.welcomeJoinChannelMessage} - - [🚪] **Leave** - - ㅤ**Channel**: <#${createGuild.welcomeLeaveChannelId}> - ㅤ**Message**: ${createGuild.welcomeLeaveChannelMessage}`) - .setColor(successColor) - .setTimestamp() - .setFooter({ - iconURL: footerIcon, - text: footerText, - }); - yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [interactionEmbed], - })); - return true; - }), -}; diff --git a/dist/commands/counters/index.js b/dist/commands/counters/index.js deleted file mode 100644 index 8d545c9..0000000 --- a/dist/commands/counters/index.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const discord_js_1 = require("discord.js"); -// Modules -const view_1 = require("./modules/view"); -// -exports.builder = new discord_js_1.SlashCommandBuilder() - .setName("counters") - .setDescription("View guild counters") - .setDMPermission(false) - // Modules - .addSubcommand(view_1.builder); -// Execute function -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - switch (interaction.options.getSubcommand()) { - case "view": - yield (0, view_1.execute)(interaction); - break; - default: - throw new Error("No module found for that command."); - } -}); -exports.execute = execute; diff --git a/dist/commands/counters/modules/view/index.js b/dist/commands/counters/modules/view/index.js deleted file mode 100644 index cd5139f..0000000 --- a/dist/commands/counters/modules/view/index.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const baseEmbeds_1 = require("../../../../helpers/baseEmbeds"); -// 1. Create builder function. -const builder = (command) => { - return command - .setName("view") - .setDescription(`View a guild counter`) - .addChannelOption((option) => option - .setName("channel") - .setDescription(`The channel that contains the counter you want to view`) - .setRequired(true) - .addChannelTypes(discord_js_1.ChannelType.GuildText)); -}; -exports.builder = builder; -// 2. Create execute function. -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Defer reply as permanent. - yield (0, deferReply_1.default)(interaction, false); - // 2. Destructure interaction object - const { options, guild } = interaction; - if (!guild) - throw new Error(`Guild not found`); - if (!options) - throw new Error(`Options not found`); - // 3. Get options - const discordChannel = options.getChannel("channel"); - if (!discordChannel) - throw new Error(`Channel not found`); - // 4. Create base embeds. - const EmbedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:1234:] View"); - // 5. Get counter from database. - const channelCounter = yield database_1.default.guildCounter.findUnique({ - where: { - guildId_channelId: { - guildId: guild.id, - channelId: discordChannel.id, - }, - }, - }); - if (!channelCounter) - throw new Error("No counter found for channel"); - // 6. Send embed. - yield interaction.editReply({ - embeds: [ - EmbedSuccess.setDescription(`Viewing counter for channel ${discordChannel}: ${channelCounter.count}!`), - ], - }); -}); -exports.execute = execute; diff --git a/dist/commands/credits/index.js b/dist/commands/credits/index.js deleted file mode 100644 index 6316886..0000000 --- a/dist/commands/credits/index.js +++ /dev/null @@ -1,48 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const discord_js_1 = require("discord.js"); -// Modules -const balance_1 = require("./modules/balance"); -const gift_1 = require("./modules/gift"); -const top_1 = require("./modules/top"); -const work_1 = require("./modules/work"); -// 1. Export a builder function. -exports.builder = new discord_js_1.SlashCommandBuilder() - .setName("credits") - .setDescription("Manage your credits.") - .setDMPermission(false) - // Modules - .addSubcommand(balance_1.builder) - .addSubcommand(gift_1.builder) - .addSubcommand(top_1.builder) - .addSubcommand(work_1.builder); -// 2. Export an execute function. -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - switch (interaction.options.getSubcommand()) { - case "balance": - yield (0, balance_1.execute)(interaction); - break; - case "gift": - yield (0, gift_1.execute)(interaction); - break; - case "top": - yield (0, top_1.execute)(interaction); - break; - case "work": - yield (0, work_1.execute)(interaction); - break; - default: - throw new Error("Subcommand not found"); - } -}); -exports.execute = execute; diff --git a/dist/commands/credits/modules/balance/index.js b/dist/commands/credits/modules/balance/index.js deleted file mode 100644 index 509caf8..0000000 --- a/dist/commands/credits/modules/balance/index.js +++ /dev/null @@ -1,90 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const baseEmbeds_1 = require("../../../../helpers/baseEmbeds"); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -// 1. Export a builder function. -const builder = (command) => { - return command - .setName("balance") - .setDescription(`Check balance`) - .addUserOption((option) => option.setName("target").setDescription(`Account you want to check`)); -}; -exports.builder = builder; -// 2. Export an execute function. -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Defer reply as ephemeral. - yield (0, deferReply_1.default)(interaction, true); - // 2. Destructure interaction object. - const { options, user, guild } = interaction; - if (!guild) - throw new Error("Server unavailable"); - if (!user) - throw new Error("User unavailable"); - if (!options) - throw new Error("Options unavailable"); - // 3. Get options from interaction. - const target = options.getUser("target"); - // 4. Create base embeds. - const EmbedSuccess = yield (0, baseEmbeds_1.success)(guild, ":credit_card:︱Balance"); - // 5. Upsert the user in the database. - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: (target || user).id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: (target || user).id, - }, - where: { - id: (target || user).id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createGuildMember); - // 6. Send embed. - yield interaction.editReply({ - embeds: [ - EmbedSuccess.setDescription(target - ? `${target} has ${createGuildMember.creditsEarned} coins in his account.` - : `You have ${createGuildMember.creditsEarned} coins in your account.`), - ], - }); -}); -exports.execute = execute; diff --git a/dist/commands/credits/modules/gift/index.js b/dist/commands/credits/modules/gift/index.js deleted file mode 100644 index ddc48a7..0000000 --- a/dist/commands/credits/modules/gift/index.js +++ /dev/null @@ -1,153 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const baseEmbeds_1 = require("../../../../helpers/baseEmbeds"); -const transfer_1 = __importDefault(require("../../../../helpers/credits/transfer")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -// 1. Export a builder function. -const builder = (command) => { - return command - .setName("gift") - .setDescription(`Gift credits to an account`) - .addUserOption((option) => option - .setName("account") - .setDescription("The account you gift to") - .setRequired(true)) - .addIntegerOption((option) => option - .setName("credits") - .setDescription("How much you gift") - .setRequired(true) - .setMinValue(1) - .setMaxValue(100000000)) - .addStringOption((option) => option - .setName("message") - .setDescription("Your personalized message to the account")); -}; -exports.builder = builder; -// 2. Export an execute function. -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Defer reply as ephemeral. - yield (0, deferReply_1.default)(interaction, true); - // 2. Destructure interaction object. - const { options, user, guild } = interaction; - if (!guild) - throw new Error("Server unavailable"); - if (!user) - throw new Error("User unavailable"); - // 3. Get options from interaction. - const account = options.getUser("account"); - const credits = options.getInteger("credits"); - const message = options.getString("message"); - if (!account) - throw new Error("Account unavailable"); - if (typeof credits !== "number") - throw new Error("You need to enter a valid number of credits to gift"); - // 4. Create base embeds. - const receiverEmbed = yield (0, baseEmbeds_1.success)(guild, `:credit_card:︱You received a gift from ${user.username}`); - // 5. Start an transaction of the credits. - yield (0, transfer_1.default)(guild, user, account, credits); - const receiverGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: account.id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: account.id, - }, - where: { - id: account.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(receiverGuildMember); - if (message) - receiverEmbed.setFields({ name: "Message", value: message }); - // 6. Tell the target that they have been gifted credits. - yield account.send({ - embeds: [ - receiverEmbed.setDescription(`You received a gift containing ${credits} coins from ${user}! You now have ${receiverGuildMember.creditsEarned} coins in balance!`), - ], - }); - const senderGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: user.id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(senderGuildMember); - const senderEmbed = yield (0, baseEmbeds_1.success)(guild, ":credit_card:︱Send a gift"); - if (message) - senderEmbed.setFields({ name: "Message", value: message }); - // 7. Tell the sender that they have gifted the credits. - yield interaction.editReply({ - embeds: [ - senderEmbed.setDescription(`Your gift has been sent to ${account}. You now have ${senderGuildMember.creditsEarned} coins in balance!`), - ], - }); -}); -exports.execute = execute; diff --git a/dist/commands/credits/modules/top/index.js b/dist/commands/credits/modules/top/index.js deleted file mode 100644 index 73dc0c7..0000000 --- a/dist/commands/credits/modules/top/index.js +++ /dev/null @@ -1,60 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const baseEmbeds_1 = require("../../../../helpers/baseEmbeds"); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -// 1. Export a builder function. -const builder = (command) => { - return command.setName("top").setDescription(`View the top users`); -}; -exports.builder = builder; -// 2. Export an execute function. -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Defer reply as permanent. - yield (0, deferReply_1.default)(interaction, false); - // 2. Destructure interaction object. - const { guild, client } = interaction; - if (!guild) - throw new Error("Guild not found"); - if (!client) - throw new Error("Client not found"); - // 3. Create base embeds. - const EmbedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:dollar:] Top"); - // 4. Get the top 10 users. - const topTen = yield database_1.default.guildMember.findMany({ - where: { - guildId: guild.id, - }, - orderBy: { - creditsEarned: "desc", - }, - take: 10, - }); - logger_1.default.silly(topTen); - // 5. Create the top 10 list. - const entry = (guildMember, index) => `${index + 1}. ${(0, discord_js_1.userMention)(guildMember.userId)} | :coin: ${guildMember.creditsEarned}`; - // 6. Send embed - return interaction.editReply({ - embeds: [ - EmbedSuccess.setDescription(`The top 10 users in this server are:\n\n${topTen - .map(entry) - .join("\n")}`), - ], - }); -}); -exports.execute = execute; diff --git a/dist/commands/credits/modules/work/index.js b/dist/commands/credits/modules/work/index.js deleted file mode 100644 index 065fad4..0000000 --- a/dist/commands/credits/modules/work/index.js +++ /dev/null @@ -1,70 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const chance_1 = __importDefault(require("chance")); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const baseEmbeds_1 = require("../../../../helpers/baseEmbeds"); -const give_1 = __importDefault(require("../../../../helpers/credits/give")); -const cooldown_1 = __importDefault(require("../../../../middlewares/cooldown")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -// 1. Export a builder function. -const builder = (command) => { - return command.setName("work").setDescription(`Work to earn credits`); -}; -exports.builder = builder; -// 2. Export an execute function. -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Defer reply as ephemeral. - yield (0, deferReply_1.default)(interaction, true); - // 2. Destructure interaction object. - const { guild, user, commandId } = interaction; - if (!guild) - throw new Error("Guild not found"); - if (!user) - throw new Error("User not found"); - // 3. Create base embeds. - const EmbedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:dollar:] Work"); - // 4. Create new Chance instance. - const chance = new chance_1.default(); - // 5. Upsert the guild in the database. - const createGuild = yield database_1.default.guild.upsert({ - where: { - id: guild.id, - }, - update: {}, - create: { - id: guild.id, - }, - }); - logger_1.default.silly(createGuild); - if (!createGuild) - throw new Error("Guild not found"); - // 6. Create a cooldown for the user. - yield (0, cooldown_1.default)(guild, user, commandId, createGuild.creditsWorkTimeout); - // 6. Generate a random number between 0 and creditsWorkRate. - const creditsEarned = chance.integer({ - min: 0, - max: createGuild.creditsWorkRate, - }); - const upsertGuildMember = yield (0, give_1.default)(guild, user, creditsEarned); - // 8. Send embed. - yield interaction.editReply({ - embeds: [ - EmbedSuccess.setDescription(`You worked and earned **${creditsEarned}** credits! You now have **${upsertGuildMember.creditsEarned}** credits. :tada:`), - ], - }); -}); -exports.execute = execute; diff --git a/dist/commands/dns/index.js b/dist/commands/dns/index.js deleted file mode 100644 index cfb2509..0000000 --- a/dist/commands/dns/index.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const discord_js_1 = require("discord.js"); -// Modules -const lookup_1 = __importDefault(require("./modules/lookup")); -exports.builder = new discord_js_1.SlashCommandBuilder() - .setName("dns") - .setDescription("DNS commands.") - // Modules - .addSubcommand(lookup_1.default.builder); -// Execute the command -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - switch (interaction.options.getSubcommand()) { - case "lookup": - yield lookup_1.default.execute(interaction); - break; - default: - throw new Error(`Unknown subcommand: ${interaction.options.getSubcommand()}`); - } -}); -exports.execute = execute; diff --git a/dist/commands/dns/modules/lookup/index.js b/dist/commands/dns/modules/lookup/index.js deleted file mode 100644 index 3408939..0000000 --- a/dist/commands/dns/modules/lookup/index.js +++ /dev/null @@ -1,132 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const axios_1 = __importDefault(require("axios")); -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -exports.default = { - builder: (command) => { - return command - .setName("lookup") - .setDescription("Lookup a domain or ip. (Request sent over HTTP, proceed with caution!)") - .addStringOption((option) => option - .setName("query") - .setDescription("The query you want to look up.") - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, false); - const { errorColor, successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const embedTitle = "[:hammer:] Utility (Lookup)"; - const { options } = interaction; - const query = options.getString("query"); - yield axios_1.default - .get(`http://ip-api.com/json/${query}`) - .then((response) => __awaiter(void 0, void 0, void 0, function* () { - var _a, _b; - if (response.data.status !== "success") { - yield interaction.editReply({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setTitle(embedTitle) - .setFooter({ - text: footerText, - iconURL: footerIcon, - }) - .setTimestamp(new Date()) - .setColor(errorColor) - .setFooter({ text: footerText, iconURL: footerIcon }) - .setDescription(`${(_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.message}: ${(_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.query}`), - ], - }); - return; - } - yield interaction.editReply({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setTitle(embedTitle) - .setFooter({ - text: footerText, - iconURL: footerIcon, - }) - .setTimestamp(new Date()) - .setColor(successColor) - .setFields([ - { - name: ":classical_building: AS", - value: `${response.data.as || "Unknown"}`, - inline: true, - }, - { - name: ":classical_building: ISP", - value: `${response.data.isp || "Unknown"}`, - inline: true, - }, - { - name: ":classical_building: Organization", - value: `${response.data.org || "Unknown"}`, - inline: true, - }, - { - name: ":compass: Latitude", - value: `${response.data.lat || "Unknown"}`, - inline: true, - }, - { - name: ":compass: Longitude", - value: `${response.data.lon || "Unknown"}`, - inline: true, - }, - { - name: ":clock4: Timezone", - value: `${response.data.timezone || "Unknown"}`, - inline: true, - }, - { - name: ":globe_with_meridians: Country", - value: `${response.data.country || "Unknown"}`, - inline: true, - }, - { - name: ":globe_with_meridians: Region", - value: `${response.data.regionName || "Unknown"}`, - inline: true, - }, - { - name: ":globe_with_meridians: City", - value: `${response.data.city || "Unknown"}`, - inline: true, - }, - { - name: ":globe_with_meridians: Country Code", - value: `${response.data.countryCode || "Unknown"}`, - inline: true, - }, - { - name: ":globe_with_meridians: Region Code", - value: `${response.data.region || "Unknown"}`, - inline: true, - }, - { - name: ":globe_with_meridians: ZIP", - value: `${response.data.zip || "Unknown"}`, - inline: true, - }, - ]), - ], - }); - })); - }), -}; diff --git a/dist/commands/fun/index.js b/dist/commands/fun/index.js deleted file mode 100644 index f68d227..0000000 --- a/dist/commands/fun/index.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const discord_js_1 = require("discord.js"); -const logger_1 = __importDefault(require("../../middlewares/logger")); -// Modules -const meme_1 = __importDefault(require("./modules/meme")); -exports.builder = new discord_js_1.SlashCommandBuilder() - .setName("fun") - .setDescription("Fun commands.") - .addSubcommand(meme_1.default.builder); -// Execute function -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - const { options } = interaction; - if (options.getSubcommand() === "meme") { - yield meme_1.default.execute(interaction); - } - else { - logger_1.default.silly(`Unknown subcommand ${options.getSubcommand()}`); - } -}); -exports.execute = execute; diff --git a/dist/commands/fun/modules/meme/index.js b/dist/commands/fun/modules/meme/index.js deleted file mode 100644 index d75c2f5..0000000 --- a/dist/commands/fun/modules/meme/index.js +++ /dev/null @@ -1,59 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const axios_1 = __importDefault(require("axios")); -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -const cooldown_1 = __importDefault(require("../../../../middlewares/cooldown")); -exports.default = { - builder: (command) => { - return command.setName("meme").setDescription("Random memes from r/memes"); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, false); - const { guild, user, commandId } = interaction; - if (!guild) - throw new Error("Server unavailable"); - if (!user) - throw new Error("User unavailable"); - yield (0, cooldown_1.default)(guild, user, commandId, 15); - const embedConfig = yield (0, getEmbedData_1.default)(guild); - yield axios_1.default - .get("https://www.reddit.com/r/memes/random/.json") - .then((res) => __awaiter(void 0, void 0, void 0, function* () { - const response = res.data[0].data.children; - const content = response[0].data; - const buttons = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder() - .setLabel("View post") - .setStyle(discord_js_1.ButtonStyle.Link) - .setEmoji("🔗") - .setURL(`https://reddit.com${content.permalink}`)); - const embed = new discord_js_1.EmbedBuilder() - .setTitle(`😆︱Meme`) - .setDescription(`**${content.title}**`) - .setTimestamp(new Date()) - .setImage(content.url) - .setFooter({ - text: `👍 ${content.ups}︱👎 ${content.downs}`, - }) - .setColor(embedConfig.successColor); - yield interaction.editReply({ embeds: [embed], components: [buttons] }); - return; - })) - .catch((error) => { - throw new Error(error.message); - }); - }), -}; diff --git a/dist/commands/manage/index.js b/dist/commands/manage/index.js deleted file mode 100644 index 69b94d7..0000000 --- a/dist/commands/manage/index.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -//Dependencies -const discord_js_1 = require("discord.js"); -// Modules -const counters_1 = __importDefault(require("./modules/counters")); -const credits_1 = __importDefault(require("./modules/credits")); -// Function -exports.builder = new discord_js_1.SlashCommandBuilder() - .setName("manage") - .setDescription("Manage the bot.") - .setDMPermission(false) - // Modules - .addSubcommandGroup(counters_1.default.builder) - .addSubcommandGroup(credits_1.default.builder); -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - // Destructure - const { options } = interaction; - switch (options.getSubcommandGroup()) { - case "credits": { - yield credits_1.default.execute(interaction); - break; - } - case "counters": { - yield counters_1.default.execute(interaction); - break; - } - default: { - throw new Error("Could not find an module for the command."); - } - } -}); -exports.execute = execute; diff --git a/dist/commands/manage/modules/counters/index.js b/dist/commands/manage/modules/counters/index.js deleted file mode 100644 index 1788509..0000000 --- a/dist/commands/manage/modules/counters/index.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Modules -const add_1 = __importDefault(require("./modules/add")); -const remove_1 = __importDefault(require("./modules/remove")); -exports.default = { - builder: (group) => { - return group - .setName("counters") - .setDescription("Manage guild counters.") - .addSubcommand(add_1.default.builder) - .addSubcommand(remove_1.default.builder); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - const { options } = interaction; - switch (options.getSubcommand()) { - case "add": { - yield add_1.default.execute(interaction); - break; - } - case "remove": { - yield remove_1.default.execute(interaction); - break; - } - default: { - throw new Error("Could not found a module for that command."); - } - } - }), -}; diff --git a/dist/commands/manage/modules/counters/modules/add/index.js b/dist/commands/manage/modules/counters/modules/add/index.js deleted file mode 100644 index 0d8b196..0000000 --- a/dist/commands/manage/modules/counters/modules/add/index.js +++ /dev/null @@ -1,105 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission")); -// Configurations -const database_1 = __importDefault(require("../../../../../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../../../middlewares/logger")); -// Function -exports.default = { - builder: (command) => { - return command - .setName("add") - .setDescription("Add a counter to your guild.") - .addChannelOption((option) => option - .setName("channel") - .setDescription("The channel to send the counter to.") - .setRequired(true) - .addChannelTypes(discord_js_1.ChannelType.GuildText)) - .addStringOption((option) => option - .setName("word") - .setDescription("The word to use for the counter.") - .setRequired(true)) - .addNumberOption((option) => option - .setName("start") - .setDescription("The starting value of the counter.")); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const { options, guild } = interaction; - const discordChannel = options === null || options === void 0 ? void 0 : options.getChannel("channel"); - const triggerWord = options === null || options === void 0 ? void 0 : options.getString("word"); - const startValue = options === null || options === void 0 ? void 0 : options.getNumber("start"); - if (!guild) - throw new Error("We could not find a guild"); - if (!discordChannel) - throw new Error("We could not find a channel"); - if (!triggerWord) - throw new Error("We could not find a word"); - const channelCounter = yield database_1.default.guildCounter.findUnique({ - where: { - guildId_channelId: { - guildId: guild.id, - channelId: discordChannel.id, - }, - }, - }); - if (channelCounter) - throw new Error("A counter already exists for this channel."); - const createGuildCounter = yield database_1.default.guildCounter.upsert({ - where: { - guildId_channelId: { - guildId: guild.id, - channelId: discordChannel.id, - }, - }, - update: {}, - create: { - channelId: discordChannel.id, - triggerWord, - count: startValue || 0, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - }); - logger_1.default.silly(createGuildCounter); - if (createGuildCounter) { - const embed = new discord_js_1.EmbedBuilder() - .setTitle("[:toolbox:] Counters - Add") - .setTimestamp(new Date()) - .setFooter({ text: footerText, iconURL: footerIcon }); - yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [ - embed - .setDescription(":white_check_mark: Counter created successfully.") - .setColor(successColor), - ], - })); - } - }), -}; diff --git a/dist/commands/manage/modules/counters/modules/remove/index.js b/dist/commands/manage/modules/counters/modules/remove/index.js deleted file mode 100644 index 312cfa9..0000000 --- a/dist/commands/manage/modules/counters/modules/remove/index.js +++ /dev/null @@ -1,75 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -// Models -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission")); -// Configurations -const database_1 = __importDefault(require("../../../../../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData")); -// Function -exports.default = { - builder: (command) => { - return command - .setName("remove") - .setDescription(`Delete a counter from your guild.`) - .addChannelOption((option) => option - .setName("channel") - .setDescription("The channel to delete the counter from.") - .setRequired(true) - .addChannelTypes(discord_js_1.ChannelType.GuildText)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const { options, guild } = interaction; - const discordChannel = options === null || options === void 0 ? void 0 : options.getChannel("channel"); - if (!guild) - throw new Error("We could not find a guild"); - if (!discordChannel) - throw new Error("We could not find a channel"); - const embed = new discord_js_1.EmbedBuilder() - .setTitle("[:toolbox:] Counters - Remove") - .setTimestamp(new Date()) - .setFooter({ text: footerText, iconURL: footerIcon }); - const channelCounter = yield database_1.default.guildCounter.findUnique({ - where: { - guildId_channelId: { - guildId: guild.id, - channelId: discordChannel.id, - }, - }, - }); - if (!channelCounter) - throw new Error("There is no counter sin this channel, please add one first."); - const deleteGuildCounter = yield database_1.default.guildCounter.deleteMany({ - where: { - guildId: guild.id, - channelId: discordChannel.id, - }, - }); - if (!deleteGuildCounter) - throw new Error("We could not find a counter for this guild"); - yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [ - embed - .setDescription(":white_check_mark: Counter deleted successfully.") - .setColor(successColor), - ], - })); - }), -}; diff --git a/dist/commands/manage/modules/credits/index.js b/dist/commands/manage/modules/credits/index.js deleted file mode 100644 index 00cd15b..0000000 --- a/dist/commands/manage/modules/credits/index.js +++ /dev/null @@ -1,53 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Modules -const give_1 = __importDefault(require("./modules/give")); -const giveaway_1 = __importDefault(require("./modules/giveaway")); -const set_1 = __importDefault(require("./modules/set")); -const take_1 = __importDefault(require("./modules/take")); -const transfer_1 = __importDefault(require("./modules/transfer")); -exports.default = { - builder: (group) => { - return group - .setName("credits") - .setDescription("Manage the credits of a user.") - .addSubcommand(give_1.default.builder) - .addSubcommand(set_1.default.builder) - .addSubcommand(take_1.default.builder) - .addSubcommand(transfer_1.default.builder) - .addSubcommand(giveaway_1.default.builder); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - switch (interaction.options.getSubcommand()) { - case "give": - yield give_1.default.execute(interaction); - break; - case "set": - yield set_1.default.execute(interaction); - break; - case "take": - yield take_1.default.execute(interaction); - break; - case "transfer": - yield transfer_1.default.execute(interaction); - break; - case "giveaway": - yield giveaway_1.default.execute(interaction); - break; - default: - throw new Error("No module found for that specific command"); - } - }), -}; diff --git a/dist/commands/manage/modules/credits/modules/give/index.js b/dist/commands/manage/modules/credits/modules/give/index.js deleted file mode 100644 index f114c38..0000000 --- a/dist/commands/manage/modules/credits/modules/give/index.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -const discord_js_1 = require("discord.js"); -// Configurations -// Helpers../../../../../../../helpers/userData -const pluralize_1 = __importDefault(require("../../../../../../helpers/pluralize")); -// Models -// Handlers -const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply")); -const baseEmbeds_1 = require("../../../../../../helpers/baseEmbeds"); -const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission")); -const give_1 = __importDefault(require("../../../../../../helpers/credits/give")); -exports.default = { - builder: (command) => { - return command - .setName("give") - .setDescription("Give credits to a user.") - .addUserOption((option) => option - .setName("user") - .setDescription("The user to give credits to.") - .setRequired(true)) - .addIntegerOption((option) => option - .setName("amount") - .setDescription(`The amount of credits to give.`) - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Defer reply as ephemeral. - yield (0, deferReply_1.default)(interaction, true); - // 2. Check if the user has the MANAGE_GUILD permission. - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - // 3. Destructure interaction object. - const { guild, options } = interaction; - if (!guild) - throw new Error("We could not get the current guild from discord."); - if (!options) - throw new Error("We could not get the options from discord."); - // 4. Get the user and amount from the options. - const discordReceiver = options.getUser("user"); - const creditsAmount = options.getInteger("amount"); - if (typeof creditsAmount !== "number") - throw new Error("You need to provide a credit amount."); - if (!discordReceiver) - throw new Error("We could not get the receiving user from Discord"); - // 5. Create base embeds. - const embedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:toolbox:] Give"); - // 6. Give the credits. - yield (0, give_1.default)(guild, discordReceiver, creditsAmount); - // 7. Send embed. - return yield interaction.editReply({ - embeds: [ - embedSuccess.setDescription(`Successfully gave ${(0, pluralize_1.default)(creditsAmount, "credit")}`), - ], - }); - }), -}; diff --git a/dist/commands/manage/modules/credits/modules/giveaway/index.js b/dist/commands/manage/modules/credits/modules/giveaway/index.js deleted file mode 100644 index 2b831c6..0000000 --- a/dist/commands/manage/modules/credits/modules/giveaway/index.js +++ /dev/null @@ -1,166 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -const axios_1 = __importDefault(require("axios")); -const discord_js_1 = require("discord.js"); -const uuid_1 = require("uuid"); -const encryption_1 = __importDefault(require("../../../../../../helpers/encryption")); -// Configurations -const database_1 = __importDefault(require("../../../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission")); -const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../../../middlewares/logger")); -// Function -exports.default = { - builder: (command) => { - return command - .setName("giveaway") - .setDescription("Giveaway some credits for specified amount of users.") - .addIntegerOption((option) => option - .setName("uses") - .setDescription("How many users should be able to use this.") - .setRequired(true)) - .addIntegerOption((option) => option - .setName("credit") - .setDescription(`How much credits provided per use.`) - .setRequired(true)) - .addChannelOption((option) => option - .setName("channel") - .setDescription("The channel to send the message to.") - .setRequired(true) - .addChannelTypes(discord_js_1.ChannelType.GuildText)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - var _a; - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); // Destructure - const { guild, user, options } = interaction; - const uses = options === null || options === void 0 ? void 0 : options.getInteger("uses"); - const creditAmount = options === null || options === void 0 ? void 0 : options.getInteger("credit"); - const channel = options === null || options === void 0 ? void 0 : options.getChannel("channel"); - if (!uses) - throw new Error("Amount of uses is required."); - if (!creditAmount) - throw new Error("Amount of credits is required."); - if (!channel) - throw new Error("Channel is required."); - if (!guild) - throw new Error("Guild is required."); - const embed = new discord_js_1.EmbedBuilder() - .setTitle("[:toolbox:] Giveaway") - .setFooter({ text: footerText, iconURL: footerIcon }); - const code = (0, uuid_1.v4)(); - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: user.id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createGuildMember); - if (!createGuildMember.guild.apiCpggUrlIv || - !createGuildMember.guild.apiCpggUrlContent) - throw new Error("No API url available"); - if (!createGuildMember.guild.apiCpggTokenIv || - !createGuildMember.guild.apiCpggTokenContent) - throw new Error("No API token available"); - const url = encryption_1.default.decrypt({ - iv: createGuildMember.guild.apiCpggUrlIv, - content: createGuildMember.guild.apiCpggUrlContent, - }); - const api = axios_1.default === null || axios_1.default === void 0 ? void 0 : axios_1.default.create({ - baseURL: `${url}/api/`, - headers: { - Authorization: `Bearer ${encryption_1.default.decrypt({ - iv: createGuildMember.guild.apiCpggTokenIv, - content: createGuildMember.guild.apiCpggTokenContent, - })}`, - }, - }); - const shopUrl = `${url}/store`; - yield api - .post("vouchers", { - uses, - code, - credits: creditAmount, - memo: `[GIVEAWAY] ${interaction === null || interaction === void 0 ? void 0 : interaction.createdTimestamp} - ${(_a = interaction === null || interaction === void 0 ? void 0 : interaction.user) === null || _a === void 0 ? void 0 : _a.id}`, - }) - .then(() => __awaiter(void 0, void 0, void 0, function* () { - yield interaction.editReply({ - embeds: [ - embed - .setColor(successColor) - .setDescription(`Successfully created code: ${code}`), - ], - }); - const buttons = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder() - .setLabel("Redeem it here") - .setStyle(discord_js_1.ButtonStyle.Link) - .setEmoji("🏦") - .setURL(`${shopUrl}?voucher=${code}`)); - const discordChannel = guild === null || guild === void 0 ? void 0 : guild.channels.cache.get(channel.id); - if (!discordChannel) - return; - if (discordChannel.type !== discord_js_1.ChannelType.GuildText) - return; - discordChannel.send({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setTitle("[:parachute:] Credits!") - .addFields([ - { - name: "💶 Credits", - value: `${creditAmount}`, - inline: true, - }, - ]) - .setDescription(`${interaction.user} dropped a voucher for a maximum **${uses}** members!`) - .setColor(successColor), - ], - components: [buttons], - }); - })); - }), -}; diff --git a/dist/commands/manage/modules/credits/modules/set/index.js b/dist/commands/manage/modules/credits/modules/set/index.js deleted file mode 100644 index d07adc2..0000000 --- a/dist/commands/manage/modules/credits/modules/set/index.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -// Helpers -// Models -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply")); -const baseEmbeds_1 = require("../../../../../../helpers/baseEmbeds"); -const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission")); -const set_1 = __importDefault(require("../../../../../../helpers/credits/set")); -exports.default = { - builder: (command) => { - return command - .setName("set") - .setDescription("Set the amount of credits a user has.") - .addUserOption((option) => option - .setName("user") - .setDescription("The user to set the amount of credits for.") - .setRequired(true)) - .addIntegerOption((option) => option - .setName("amount") - .setDescription(`The amount of credits to set.`) - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Defer reply as ephemeral. - yield (0, deferReply_1.default)(interaction, true); - // 2. Check if the user has the permission to manage the guild. - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - // 3. Destructure interaction object. - const { options, guild } = interaction; - if (!guild) - throw new Error(`We could not find this guild.`); - if (!options) - throw new Error(`We could not find the options.`); - // 4. Get the user and amount from the options. - const discordUser = options.getUser("user"); - const creditAmount = options.getInteger("amount"); - if (typeof creditAmount !== "number") - throw new Error("Amount is not set."); - if (!discordUser) - throw new Error("User is not specified"); - // 5. Set the credits. - yield (0, set_1.default)(guild, discordUser, creditAmount); - // 6. Create base embeds. - const embedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:toolbox:] Set"); - // 7. Send embed. - return yield interaction.editReply({ - embeds: [ - embedSuccess.setDescription(`Set **${discordUser}**'s credits to **${creditAmount}**.`), - ], - }); - }), -}; diff --git a/dist/commands/manage/modules/credits/modules/take/index.js b/dist/commands/manage/modules/credits/modules/take/index.js deleted file mode 100644 index 73a6356..0000000 --- a/dist/commands/manage/modules/credits/modules/take/index.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -// Models -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply")); -const baseEmbeds_1 = require("../../../../../../helpers/baseEmbeds"); -const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission")); -const take_1 = __importDefault(require("../../../../../../helpers/credits/take")); -const pluralize_1 = __importDefault(require("../../../../../../helpers/pluralize")); -exports.default = { - builder: (command) => { - return command - .setName("take") - .setDescription("Take credits from a user.") - .addUserOption((option) => option - .setName("user") - .setDescription("The user to take credits from.") - .setRequired(true)) - .addIntegerOption((option) => option - .setName("amount") - .setDescription(`The amount of credits to take.`) - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Defer reply as ephemeral. - yield (0, deferReply_1.default)(interaction, true); - // 2. Check if the user has the MANAGE_GUILD permission. - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - // 3. Destructure interaction object. - const { guild, options } = interaction; - if (!guild) - throw new Error("Invalid guild."); - if (!options) - throw new Error("Invalid options."); - // 4. Get the user and amount from the options. - const discordReceiver = options.getUser("user"); - const optionAmount = options.getInteger("amount"); - if (typeof optionAmount !== "number") - throw new Error("Invalid amount."); - if (!discordReceiver) - throw new Error("Invalid user."); - // 5. Create base embeds. - const embedSuccess = yield (0, baseEmbeds_1.success)(guild, "[:toolbox:] Take"); - // 6. Take the credits. - yield (0, take_1.default)(guild, discordReceiver, optionAmount); - // 7. Send embed. - return yield interaction.editReply({ - embeds: [ - embedSuccess.setDescription(`Took ${(0, pluralize_1.default)(optionAmount, "credit")} from ${discordReceiver}.`), - ], - }); - }), -}; diff --git a/dist/commands/manage/modules/credits/modules/transfer/index.js b/dist/commands/manage/modules/credits/modules/transfer/index.js deleted file mode 100644 index fc27bfb..0000000 --- a/dist/commands/manage/modules/credits/modules/transfer/index.js +++ /dev/null @@ -1,73 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -// Models -const discord_js_1 = require("discord.js"); -const transfer_1 = __importDefault(require("../../../../../../helpers/credits/transfer")); -// Configurations -const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../../../helpers/checkPermission")); -const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData")); -// Function -exports.default = { - builder: (command) => { - return command - .setName("transfer") - .setDescription("Transfer credits from one user to another.") - .addUserOption((option) => option - .setName("from") - .setDescription("The user to transfer credits from.") - .setRequired(true)) - .addUserOption((option) => option - .setName("to") - .setDescription("The user to transfer credits to.") - .setRequired(true)) - .addIntegerOption((option) => option - .setName("amount") - .setDescription(`The amount of credits to transfer.`) - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageGuild); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); // Destructure member - const { guild, options } = interaction; - // Get options - const optionFromUser = options === null || options === void 0 ? void 0 : options.getUser("from"); - const optionToUser = options === null || options === void 0 ? void 0 : options.getUser("to"); - const optionAmount = options === null || options === void 0 ? void 0 : options.getInteger("amount"); - if (optionAmount === null) - throw new Error("Amount is not specified"); - if (optionAmount <= 0) - throw new Error("You need to set amount above zero to transfer."); - if (!guild) - throw new Error(`We could not find this guild.`); - if (!optionFromUser) - throw new Error("You must provide a user to transfer from."); - if (!optionToUser) - throw new Error("You must provide a user to transfer to."); - yield (0, transfer_1.default)(guild, optionFromUser, optionToUser, optionAmount); - return interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setTitle("[:toolbox:] Manage - Credits (Transfer)") - .setDescription(`Transferred ${optionAmount} credits.`) - .setTimestamp(new Date()) - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }), - ], - }); - }), -}; diff --git a/dist/commands/moderation/index.js b/dist/commands/moderation/index.js deleted file mode 100644 index ed29270..0000000 --- a/dist/commands/moderation/index.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const discord_js_1 = require("discord.js"); -// Modules -const prune_1 = __importDefault(require("./modules/prune")); -exports.builder = new discord_js_1.SlashCommandBuilder() - .setName("moderation") - .setDescription("Moderation.") - .setDMPermission(false) - .addSubcommand(prune_1.default.builder); -// Execute the command -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - switch (interaction.options.getSubcommand()) { - case "prune": { - yield prune_1.default.execute(interaction); - break; - } - default: { - throw new Error(`Unknown subcommand: ${interaction.options.getSubcommand()}`); - } - } -}); -exports.execute = execute; diff --git a/dist/commands/moderation/modules/prune/index.js b/dist/commands/moderation/modules/prune/index.js deleted file mode 100644 index bab2b18..0000000 --- a/dist/commands/moderation/modules/prune/index.js +++ /dev/null @@ -1,78 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const checkPermission_1 = __importDefault(require("../../../../helpers/checkPermission")); -// Configurations -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -// Function -exports.default = { - builder: (command) => { - return command - .setName("prune") - .setDescription("Prune messages!") - .addIntegerOption((option) => option - .setName("count") - .setDescription("How many messages you want to prune.") - .setRequired(true)) - .addBooleanOption((option) => option.setName("bots").setDescription("Include bots.")); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - var _a; - yield (0, deferReply_1.default)(interaction, false); - (0, checkPermission_1.default)(interaction, discord_js_1.PermissionsBitField.Flags.ManageMessages); - const { errorColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const count = interaction.options.getInteger("count"); - if (count === null) - return; - const bots = interaction.options.getBoolean("bots"); - if (count < 1 || count > 100) { - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:police_car:] Prune") - .setDescription(`You can only prune between 1 and 100 messages.`) - .setTimestamp() - .setColor(errorColor) - .setFooter({ text: footerText, iconURL: footerIcon }); - yield interaction.editReply({ - embeds: [interactionEmbed], - }); - return; - } - if (((_a = interaction === null || interaction === void 0 ? void 0 : interaction.channel) === null || _a === void 0 ? void 0 : _a.type) !== discord_js_1.ChannelType.GuildText) - return; - yield interaction.channel.messages.fetch().then((messages) => __awaiter(void 0, void 0, void 0, function* () { - var _b; - const messagesToDelete = (bots - ? messages.filter((m) => { var _a; return ((_a = m === null || m === void 0 ? void 0 : m.interaction) === null || _a === void 0 ? void 0 : _a.id) !== interaction.id; }) - : messages.filter((m) => { var _a, _b; return ((_a = m === null || m === void 0 ? void 0 : m.interaction) === null || _a === void 0 ? void 0 : _a.id) !== interaction.id && ((_b = m === null || m === void 0 ? void 0 : m.author) === null || _b === void 0 ? void 0 : _b.bot) !== true; })).first(count); - if (((_b = interaction === null || interaction === void 0 ? void 0 : interaction.channel) === null || _b === void 0 ? void 0 : _b.type) !== discord_js_1.ChannelType.GuildText) - return; - yield interaction.channel - .bulkDelete(messagesToDelete, true) - .then(() => __awaiter(void 0, void 0, void 0, function* () { - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:police_car:] Prune") - .setDescription(`Successfully pruned \`${count}\` messages.`) - .setTimestamp() - .setColor(errorColor) - .setFooter({ text: footerText, iconURL: footerIcon }); - yield interaction.editReply({ - embeds: [interactionEmbed], - }); - })); - })); - }), -}; diff --git a/dist/commands/reputation/index.js b/dist/commands/reputation/index.js deleted file mode 100644 index 25c0feb..0000000 --- a/dist/commands/reputation/index.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -// Dependencies -const discord_js_1 = require("discord.js"); -// Modules -const check_1 = __importDefault(require("./modules/check")); -const repute_1 = __importDefault(require("./modules/repute")); -// Function -exports.builder = new discord_js_1.SlashCommandBuilder() - .setName("reputation") - .setDescription("See and repute users to show other how trustworthy they are") - .setDMPermission(false) - // Modules - .addSubcommand(repute_1.default.builder) - .addSubcommand(check_1.default.builder); -// Execute function -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - if (interaction.options.getSubcommand() === "repute") { - yield repute_1.default.execute(interaction); - return; - } - if (interaction.options.getSubcommand() === "check") { - yield check_1.default.execute(interaction); - return; - } -}); -exports.execute = execute; diff --git a/dist/commands/reputation/modules/check/index.js b/dist/commands/reputation/modules/check/index.js deleted file mode 100644 index dfcf6db..0000000 --- a/dist/commands/reputation/modules/check/index.js +++ /dev/null @@ -1,96 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - builder: (command) => { - return command - .setName("check") - .setDescription("Check reputation") - .addUserOption((option) => option - .setName("account") - .setDescription("The account you checking") - .setRequired(false)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - const { options, guild, user } = interaction; - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild); - const optionAccount = options === null || options === void 0 ? void 0 : options.getUser("account"); - if (!guild) - throw new Error("Server unavailable"); - if (!user) - throw new Error("User unavailable"); - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: (optionAccount || user).id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: (optionAccount || user).id, - }, - where: { - id: (optionAccount || user).id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createGuildMember); - const reputationType = (reputation) => { - if (reputation < 0) - return `negative reputation of ${reputation}`; - if (reputation > 0) - return `positive reputation of ${reputation}`; - return "neutral reputation"; - }; - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle(optionAccount - ? `:loudspeaker:︱Showing ${optionAccount.username}'s reputation` - : ":loudspeaker:︱Showing your reputation") - .setDescription(optionAccount - ? `${optionAccount} have a ${reputationType(createGuildMember.user.reputationsEarned)}` - : `You have a ${reputationType(createGuildMember.user.reputationsEarned)}`) - .setTimestamp() - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }); - yield interaction.editReply({ - embeds: [interactionEmbed], - }); - }), -}; diff --git a/dist/commands/reputation/modules/repute/components/noSelfReputation.js b/dist/commands/reputation/modules/repute/components/noSelfReputation.js deleted file mode 100644 index 0e6b3ff..0000000 --- a/dist/commands/reputation/modules/repute/components/noSelfReputation.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = (to, from) => { - if ((from === null || from === void 0 ? void 0 : from.id) === (to === null || to === void 0 ? void 0 : to.id)) { - throw new Error("You can only repute other users"); - } -}; diff --git a/dist/commands/reputation/modules/repute/index.js b/dist/commands/reputation/modules/repute/index.js deleted file mode 100644 index b6d110b..0000000 --- a/dist/commands/reputation/modules/repute/index.js +++ /dev/null @@ -1,105 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -const noSelfReputation_1 = __importDefault(require("./components/noSelfReputation")); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const cooldown_1 = __importDefault(require("../../../../middlewares/cooldown")); -exports.default = { - builder: (command) => { - return command - .setName("repute") - .setDescription("Repute an account") - .addUserOption((option) => option - .setName("account") - .setDescription("The account you repute") - .setRequired(true)) - .addStringOption((option) => option - .setName("type") - .setDescription("Type of reputation") - .setRequired(true) - .addChoices({ name: "Positive", value: "positive" }, { - name: "Negative", - value: "negative", - })); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - const { options, user, guild, commandId } = interaction; - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild); - const optionAccount = options === null || options === void 0 ? void 0 : options.getUser("account"); - const optionType = options === null || options === void 0 ? void 0 : options.getString("type"); - if (!guild) - throw new Error("Server unavailable"); - if (!optionAccount) - throw new Error("User unavailable"); - // Pre-checks - (0, noSelfReputation_1.default)(optionAccount, user); - // Check if user is on cooldown otherwise create one - yield (0, cooldown_1.default)(guild, user, commandId, parseInt(process.env.REPUTATION_TIMEOUT)); - switch (optionType) { - case "positive": { - const createUser = yield database_1.default.user.upsert({ - where: { - id: optionAccount.id, - }, - update: { - reputationsEarned: { - increment: 1, - }, - }, - create: { - id: optionAccount.id, - reputationsEarned: 1, - }, - }); - logger_1.default.silly(createUser); - break; - } - case "negative": { - const createUser = yield database_1.default.user.upsert({ - where: { - id: optionAccount.id, - }, - update: { - reputationsEarned: { - decrement: 1, - }, - }, - create: { - id: optionAccount.id, - reputationsEarned: -1, - }, - }); - logger_1.default.silly(createUser); - break; - } - default: { - throw new Error("Invalid reputation type"); - } - } - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle(`:loudspeaker:︱Reputing ${optionAccount.username}`) - .setDescription(`You have given a ${optionType} repute to ${optionAccount}!`) - .setTimestamp() - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }); - yield interaction.editReply({ - embeds: [interactionEmbed], - }); - }), -}; diff --git a/dist/commands/shop/index.js b/dist/commands/shop/index.js deleted file mode 100644 index f21687f..0000000 --- a/dist/commands/shop/index.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -// Dependencies -const discord_js_1 = require("discord.js"); -// Modules -const cpgg_1 = __importDefault(require("./modules/cpgg")); -const roles_1 = __importDefault(require("./modules/roles")); -// Function -exports.builder = new discord_js_1.SlashCommandBuilder() - .setName("shop") - .setDescription("Shop for credits and custom roles.") - .setDMPermission(false) - // Modules - .addSubcommand(cpgg_1.default.builder) - .addSubcommandGroup(roles_1.default.builder); -// Execute the command -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - const { options } = interaction; - switch (options.getSubcommand()) { - case "cpgg": { - yield cpgg_1.default.execute(interaction); - break; - } - default: { - throw new Error("Could not find module for that command."); - } - } - switch (options.getSubcommandGroup()) { - case "roles": { - yield roles_1.default.execute(interaction); - break; - } - default: { - throw new Error("Could not find module for that command."); - } - } -}); -exports.execute = execute; diff --git a/dist/commands/shop/modules/cpgg/index.js b/dist/commands/shop/modules/cpgg/index.js deleted file mode 100644 index 48a4643..0000000 --- a/dist/commands/shop/modules/cpgg/index.js +++ /dev/null @@ -1,175 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const axios_1 = __importDefault(require("axios")); -const discord_js_1 = require("discord.js"); -const uuid_1 = require("uuid"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const encryption_1 = __importDefault(require("../../../../helpers/encryption")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - builder: (command) => { - return command - .setName("cpgg") - .setDescription("Buy cpgg power.") - .addIntegerOption((option) => option - .setName("amount") - .setDescription("How much credits you want to withdraw.") - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - var _a, _b, _c, _d; - yield (0, deferReply_1.default)(interaction, true); - const { errorColor, successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const { options, guild, user, client } = interaction; - const optionAmount = options === null || options === void 0 ? void 0 : options.getInteger("amount"); - if (optionAmount === null) { - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Amount is null.`); - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:dollar:] Gift") - .setDescription("We could not read your requested amount.") - .setTimestamp() - .setColor(errorColor) - .setFooter({ text: footerText, iconURL: footerIcon }); - return interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [interactionEmbed], - }); - } - if (!guild) - throw new Error("Guild not found"); - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: user.id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createGuildMember); - const dmUser = (_b = (_a = client === null || client === void 0 ? void 0 : client.users) === null || _a === void 0 ? void 0 : _a.cache) === null || _b === void 0 ? void 0 : _b.get(user === null || user === void 0 ? void 0 : user.id); - if ((optionAmount || createGuildMember.creditsEarned) < 100) - throw new Error("You can't withdraw to CPGG below 100 credits."); - if ((optionAmount || createGuildMember.creditsEarned) > 1000000) - throw new Error("Amount or user credits is above 1.000.000."); - if (createGuildMember.creditsEarned < optionAmount) - throw new Error("You can't withdraw more than you have on your account."); - if (!createGuildMember.guild.apiCpggUrlIv || - !createGuildMember.guild.apiCpggUrlContent) - throw new Error("No API url available"); - if (!createGuildMember.guild.apiCpggTokenIv || - !createGuildMember.guild.apiCpggTokenContent) - throw new Error("No API token available"); - const code = (0, uuid_1.v4)(); - const url = encryption_1.default.decrypt({ - iv: createGuildMember.guild.apiCpggUrlIv, - content: createGuildMember.guild.apiCpggUrlContent, - }); - const api = axios_1.default === null || axios_1.default === void 0 ? void 0 : axios_1.default.create({ - baseURL: `${url}/api/`, - headers: { - Authorization: `Bearer ${encryption_1.default.decrypt({ - iv: createGuildMember.guild.apiCpggTokenIv, - content: createGuildMember.guild.apiCpggTokenContent, - })}`, - }, - }); - const shopUrl = `${url}/store`; - const buttons = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder() - .setLabel("Redeem it here") - .setStyle(discord_js_1.ButtonStyle.Link) - .setEmoji("🏦") - .setURL(`${shopUrl}?voucher=${code}`)); - yield ((_d = api === null || api === void 0 ? void 0 : api.post("vouchers", { - uses: 1, - code, - credits: optionAmount || createGuildMember.creditsEarned, - memo: `${interaction === null || interaction === void 0 ? void 0 : interaction.createdTimestamp} - ${(_c = interaction === null || interaction === void 0 ? void 0 : interaction.user) === null || _c === void 0 ? void 0 : _c.id}`, - })) === null || _d === void 0 ? void 0 : _d.then(() => __awaiter(void 0, void 0, void 0, function* () { - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Successfully created voucher.`); - createGuildMember.creditsEarned -= - optionAmount || createGuildMember.creditsEarned; - const updateGuildMember = yield database_1.default.guildMember.update({ - where: { - userId_guildId: { - userId: user.id, - guildId: guild.id, - }, - }, - data: { - creditsEarned: { - decrement: optionAmount || createGuildMember.creditsEarned, - }, - }, - }); - logger_1.default.silly(updateGuildMember); - if (!interaction.guild) - throw new Error("Guild is undefined"); - const dmEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:shopping_cart:] CPGG") - .setDescription(`This voucher comes from **${interaction.guild.name}**.`) - .setTimestamp() - .addFields({ - name: "💶 Credits", - value: `${optionAmount || createGuildMember.creditsEarned}`, - inline: true, - }) - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }); - yield (dmUser === null || dmUser === void 0 ? void 0 : dmUser.send({ - embeds: [dmEmbed], - components: [buttons], - }).then((msg) => __awaiter(void 0, void 0, void 0, function* () { - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:shopping_cart:] CPGG") - .setDescription(`I have sent you the code in [DM](${msg.url})!`) - .setTimestamp() - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }); - yield (interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [interactionEmbed], - })); - }))); - }))); - return true; - }), -}; diff --git a/dist/commands/shop/modules/roles/index.js b/dist/commands/shop/modules/roles/index.js deleted file mode 100644 index 542a2f3..0000000 --- a/dist/commands/shop/modules/roles/index.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Handlers -// Modules -const buy_1 = __importDefault(require("./modules/buy")); -const cancel_1 = __importDefault(require("./modules/cancel")); -const database_1 = __importDefault(require("../../../../handlers/database")); -exports.default = { - builder: (group) => { - return (group - .setName("roles") - .setDescription("Shop for custom roles.") - // Modules - .addSubcommand(buy_1.default.builder) - .addSubcommand(cancel_1.default.builder)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - if (!interaction.guild) - return; - const { options, guild } = interaction; - const getGuild = yield database_1.default.guild.findUnique({ - where: { id: guild.id }, - }); - if (!getGuild) - throw new Error("Guild not found"); - if (!getGuild.shopRolesEnabled) - throw new Error("This server has disabled shop roles."); - if ((options === null || options === void 0 ? void 0 : options.getSubcommand()) === "buy") { - yield buy_1.default.execute(interaction); - } - if ((options === null || options === void 0 ? void 0 : options.getSubcommand()) === "cancel") { - yield cancel_1.default.execute(interaction); - } - }), -}; diff --git a/dist/commands/shop/modules/roles/modules/buy/index.js b/dist/commands/shop/modules/roles/modules/buy/index.js deleted file mode 100644 index 8897822..0000000 --- a/dist/commands/shop/modules/roles/modules/buy/index.js +++ /dev/null @@ -1,162 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -// Helpers -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply")); -const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../../../../../middlewares/logger")); -// Configurations -// import fetchUser from "../../../../../../helpers/userData"; -// Models -const database_1 = __importDefault(require("../../../../../../handlers/database")); -const pluralize_1 = __importDefault(require("../../../../../../helpers/pluralize")); -// Function -exports.default = { - builder: (command) => { - return command - .setName("buy") - .setDescription("Buy a custom role.") - .addStringOption((option) => option - .setName("name") - .setDescription("Name of the role you wish to buy.") - .setRequired(true)) - .addStringOption((option) => option - .setName("color") - .setDescription("Color of the role you wish to buy.") - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, true); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const { options, guild, user, member } = interaction; - const optionName = options === null || options === void 0 ? void 0 : options.getString("name"); - const optionColor = options === null || options === void 0 ? void 0 : options.getString("color"); - // If amount is null - if (optionName === null) - throw new Error("We could not read your requested name"); - yield (guild === null || guild === void 0 ? void 0 : guild.roles.create({ - name: optionName, - color: optionColor, - reason: `${user === null || user === void 0 ? void 0 : user.id} bought from shop`, - }).then((role) => __awaiter(void 0, void 0, void 0, function* () { - var _a; - const userId = "SNOWFLKAE"; - const guildId = "SNOWFLAKE"; - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId, - guildId, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: userId, - }, - where: { - id: userId, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guildId, - }, - where: { - id: guildId, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createGuildMember); - // Get guild object - const pricePerHour = createGuildMember.guild.shopRolesPricePerHour; - const updateGuildMember = yield database_1.default.guildMember.update({ - where: { - userId_guildId: { - userId, - guildId, - }, - }, - data: { - creditsEarned: { decrement: pricePerHour }, - }, - }); - logger_1.default.silly(updateGuildMember); - const createShopRole = yield database_1.default.guildShopRoles.upsert({ - where: { - guildId_userId_roleId: { - guildId: guild.id, - userId: user.id, - roleId: role.id, - }, - }, - update: {}, - create: { - roleId: role.id, - lastPayed: new Date(), - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createShopRole); - yield ((_a = member === null || member === void 0 ? void 0 : member.roles) === null || _a === void 0 ? void 0 : _a.add(role === null || role === void 0 ? void 0 : role.id)); - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Role ${role === null || role === void 0 ? void 0 : role.name} was bought by ${user === null || user === void 0 ? void 0 : user.tag}`); - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:shopping_cart:] Buy") - .setDescription(`You bought **${optionName}** for **${(0, pluralize_1.default)(pricePerHour, "credit")}**.`) - .setTimestamp() - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }); - return interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [interactionEmbed], - }); - })).catch(() => { - throw new Error("Failed creating role."); - })); - }), -}; diff --git a/dist/commands/shop/modules/roles/modules/cancel/index.js b/dist/commands/shop/modules/roles/modules/cancel/index.js deleted file mode 100644 index 4bfb92f..0000000 --- a/dist/commands/shop/modules/roles/modules/cancel/index.js +++ /dev/null @@ -1,126 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -// Helpers -const discord_js_1 = require("discord.js"); -// Configurations -// Models -const deferReply_1 = __importDefault(require("../../../../../../handlers/deferReply")); -const logger_1 = __importDefault(require("../../../../../../middlewares/logger")); -// Configurations -// Models -const database_1 = __importDefault(require("../../../../../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../../../../../helpers/getEmbedData")); -const pluralize_1 = __importDefault(require("../../../../../../helpers/pluralize")); -// Function -exports.default = { - builder: (command) => { - return command - .setName("cancel") - .setDescription("Cancel a purchase.") - .addRoleOption((option) => option - .setName("role") - .setDescription("Role you wish to cancel.") - .setRequired(true)); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - var _a; - yield (0, deferReply_1.default)(interaction, true); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const { options, guild, user, member } = interaction; - const optionRole = options.getRole("role"); - if (optionRole === null) - throw new Error("We could not read your requested role."); - if (!guild) - throw new Error("No guild specified"); - if (!user) - throw new Error("No user specified"); - const roleExist = yield database_1.default.guildShopRoles.findUnique({ - where: { - guildId_userId_roleId: { - guildId: guild.id, - userId: user.id, - roleId: optionRole.id, - }, - }, - }); - if (roleExist === null) - return; - yield ((_a = member === null || member === void 0 ? void 0 : member.roles) === null || _a === void 0 ? void 0 : _a.remove(optionRole === null || optionRole === void 0 ? void 0 : optionRole.id)); - yield (guild === null || guild === void 0 ? void 0 : guild.roles.delete(optionRole === null || optionRole === void 0 ? void 0 : optionRole.id, `${user === null || user === void 0 ? void 0 : user.id} canceled from shop`).then(() => __awaiter(void 0, void 0, void 0, function* () { - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: user.id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createGuildMember); - if (!createGuildMember) - throw new Error("Guild member not created"); - const deleteShopRole = yield database_1.default.guildShopRoles.delete({ - where: { - guildId_userId_roleId: { - guildId: guild === null || guild === void 0 ? void 0 : guild.id, - userId: user === null || user === void 0 ? void 0 : user.id, - roleId: optionRole === null || optionRole === void 0 ? void 0 : optionRole.id, - }, - }, - }); - logger_1.default.silly(deleteShopRole); - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setTitle("[:shopping_cart:] Cancel") - .setDescription(`You have canceled ${optionRole.name}.`) - .setTimestamp() - .setColor(successColor) - .addFields({ - name: "Your balance", - value: `${(0, pluralize_1.default)(createGuildMember.creditsEarned, "credit")}`, - }) - .setFooter({ text: footerText, iconURL: footerIcon }); - return interaction === null || interaction === void 0 ? void 0 : interaction.editReply({ - embeds: [interactionEmbed], - }); - }))); - }), -}; diff --git a/dist/commands/utils/index.js b/dist/commands/utils/index.js deleted file mode 100644 index aa1bf87..0000000 --- a/dist/commands/utils/index.js +++ /dev/null @@ -1,39 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.builder = void 0; -const discord_js_1 = require("discord.js"); -// Modules -const about_1 = __importDefault(require("./modules/about")); -const avatar_1 = __importDefault(require("./modules/avatar")); -exports.builder = new discord_js_1.SlashCommandBuilder() - .setName("utils") - .setDescription("Common utility.") - // Modules - .addSubcommand(about_1.default.builder) - .addSubcommand(avatar_1.default.builder); -// Execute the command -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - switch (interaction.options.getSubcommand()) { - case "about": - yield about_1.default.execute(interaction); - break; - case "avatar": - yield avatar_1.default.execute(interaction); - break; - default: - throw new Error(`Unknown subcommand: ${interaction.options.getSubcommand()}`); - } -}); -exports.execute = execute; diff --git a/dist/commands/utils/modules/about/index.js b/dist/commands/utils/modules/about/index.js deleted file mode 100644 index 173d179..0000000 --- a/dist/commands/utils/modules/about/index.js +++ /dev/null @@ -1,101 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -/* eslint-disable no-loops/no-loops */ -// Dependencies -const date_fns_1 = require("date-fns"); -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -// Configurations -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -// Function -exports.default = { - builder: (command) => { - return command - .setName("about") - .setDescription("Check information about this instance"); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, false); - if (!interaction.guild) - throw new Error("You need to be in a guild"); - const { client } = interaction; - // await cooldown( - // interaction.guild, - // interaction.user, - // interaction.commandId, - // 3600 - // ); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - // // Initialize a storage for the user ids - // const userIds = new Set(); - // // Iterate over all guilds (always cached) - // for await (const guild of client.guilds.cache.values()) { - // // Fetch all guild members and iterate over them - // for await (const member of (await guild.members.fetch()).values()) { - // // Fetch the user, if user already cached, returns value from cache - // // Will probably always return from cache - // const user = await client.users.fetch(member.id); - // // Check if user id is not already in set and user is not a bot - // if (!userIds.has(user.id) && !user.bot) { - // // Add unique user id to our set - // userIds.add(user.id); - // } - // } - // } - const buttons = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder() - .setLabel("Support") - .setStyle(discord_js_1.ButtonStyle.Link) - .setEmoji("💬") - .setURL("https://discord.zyner.org"), new discord_js_1.ButtonBuilder() - .setLabel("Documentation") - .setStyle(discord_js_1.ButtonStyle.Link) - .setEmoji("📚") - .setURL("https://xyter.zyner.org")); - const interactionEmbed = new discord_js_1.EmbedBuilder() - .setColor(successColor) - .setTitle(":toolbox:︱About this instance") - .setDescription(`This bot instance is hosted by [${process.env.BOT_HOSTER_NAME}](${process.env.BOT_HOSTER_URL}) who might have modified the [source code](https://github.com/ZynerOrg/xyter).`) - .setFields({ - name: "Latency", - value: `${Math.round(client.ws.ping)} ms`, - inline: true, - }, { - name: "Servers (cached)", - value: `${client.guilds.cache.size}`, - inline: true, - }, { - name: "Users (cached)", - value: `${client.guilds.cache.reduce((a, g) => a + g.memberCount, 0)}`, - inline: true, - }, { - name: "Version", - value: `[${process.env.npm_package_version}](https://github.com/ZynerOrg/xyter/releases/tag/${process.env.npm_package_version})`, - inline: true, - }, { - name: "Since last restart", - value: `${(0, date_fns_1.formatDuration)((0, date_fns_1.intervalToDuration)({ - start: (0, date_fns_1.subMilliseconds)(new Date(), client.uptime), - end: new Date(), - }))}`, - inline: true, - }) - .setTimestamp() - .setFooter({ text: footerText, iconURL: footerIcon }); - yield interaction.editReply({ - embeds: [interactionEmbed], - components: [buttons], - }); - }), -}; diff --git a/dist/commands/utils/modules/avatar/index.js b/dist/commands/utils/modules/avatar/index.js deleted file mode 100644 index 6e3160e..0000000 --- a/dist/commands/utils/modules/avatar/index.js +++ /dev/null @@ -1,48 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const deferReply_1 = __importDefault(require("../../../../handlers/deferReply")); -const getEmbedData_1 = __importDefault(require("../../../../helpers/getEmbedData")); -exports.default = { - builder: (command) => { - return command - .setName("avatar") - .setDescription("Check someones avatar!)") - .addUserOption((option) => option - .setName("user") - .setDescription("The user whose avatar you want to check")); - }, - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, deferReply_1.default)(interaction, false); - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - const userOption = interaction.options.getUser("user"); - const targetUser = userOption || interaction.user; - const embed = new discord_js_1.EmbedBuilder() - .setTitle(":toolbox:︱Avatar") - .setTimestamp(new Date()) - .setFooter({ text: footerText, iconURL: footerIcon }); - const avatarUrl = targetUser.displayAvatarURL(); - return interaction.editReply({ - embeds: [ - embed - .setDescription(userOption - ? `You can also [download it here](${avatarUrl})!` - : `Your avatar is available to [download here](${avatarUrl}).`) - .setThumbnail(avatarUrl) - .setColor(successColor), - ], - }); - }), -}; diff --git a/dist/events/guildCreate/index.js b/dist/events/guildCreate/index.js deleted file mode 100644 index bcf133a..0000000 --- a/dist/events/guildCreate/index.js +++ /dev/null @@ -1,60 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -const database_1 = __importDefault(require("../../handlers/database")); -const updatePresence_1 = __importDefault(require("../../handlers/updatePresence")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.options = { - type: "on", -}; -// Execute the function -const execute = (guild) => __awaiter(void 0, void 0, void 0, function* () { - const { client } = guild; - (0, updatePresence_1.default)(client); - // Create guildMember object - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: guild.ownerId, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: guild.ownerId, - }, - where: { - id: guild.ownerId, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - }); - logger_1.default.silly(createGuildMember); -}); -exports.execute = execute; diff --git a/dist/events/guildDelete/index.js b/dist/events/guildDelete/index.js deleted file mode 100644 index 7b9b88d..0000000 --- a/dist/events/guildDelete/index.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -const database_1 = __importDefault(require("../../handlers/database")); -const updatePresence_1 = __importDefault(require("../../handlers/updatePresence")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.options = { - type: "on", -}; -// Execute the function -const execute = (guild) => __awaiter(void 0, void 0, void 0, function* () { - const { client } = guild; - (0, updatePresence_1.default)(client); - // Delete guildMember objects - const deleteGuildMembers = database_1.default.guildMember.deleteMany({ - where: { - guildId: guild.id, - }, - }); - // Delete guild object - const deleteGuild = database_1.default.guild.deleteMany({ - where: { - id: guild.id, - }, - }); - // The transaction runs synchronously so deleteUsers must run last. - yield database_1.default.$transaction([deleteGuildMembers, deleteGuild]); - logger_1.default.silly(deleteGuildMembers); - logger_1.default.silly(deleteGuild); -}); -exports.execute = execute; diff --git a/dist/events/guildMemberAdd/audits.js b/dist/events/guildMemberAdd/audits.js deleted file mode 100644 index 7595180..0000000 --- a/dist/events/guildMemberAdd/audits.js +++ /dev/null @@ -1,71 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.default = { - execute: (member) => __awaiter(void 0, void 0, void 0, function* () { - var _a; - const { client, guild } = member; - const getGuild = yield database_1.default.guild.findUnique({ - where: { id: member.guild.id }, - }); - if (!getGuild) - throw new Error("Guild not found"); - if (getGuild.auditsEnabled !== true) - return; - if (!getGuild.auditsChannelId) { - throw new Error("Channel not found"); - } - const embedConfig = yield (0, getEmbedData_1.default)(guild); - const channel = client.channels.cache.get(getGuild.auditsChannelId); - if (!channel) - throw new Error("Channel not found"); - if (channel.type !== discord_js_1.ChannelType.GuildText) { - throw new Error("Channel must be a text channel"); - } - const embed = new discord_js_1.EmbedBuilder() - .setTimestamp(new Date()) - .setAuthor({ - name: "Member Joined", - iconURL: (_a = client.user) === null || _a === void 0 ? void 0 : _a.displayAvatarURL(), - }) - .setFooter({ - text: embedConfig.footerText, - iconURL: embedConfig.footerIcon, - }); - yield channel - .send({ - embeds: [ - embed - .setColor(embedConfig.successColor) - .setDescription(`${member.user} - (${member.user.tag})`) - .addFields([ - { - name: "Account Age", - value: `${member.user.createdAt}`, - }, - ]), - ], - }) - .then(() => { - logger_1.default.debug(`Audit log sent for event guildMemberAdd`); - }) - .catch(() => { - throw new Error("Audit log failed to send"); - }); - }), -}; diff --git a/dist/events/guildMemberAdd/index.js b/dist/events/guildMemberAdd/index.js deleted file mode 100644 index e02a103..0000000 --- a/dist/events/guildMemberAdd/index.js +++ /dev/null @@ -1,65 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -const database_1 = __importDefault(require("../../handlers/database")); -const updatePresence_1 = __importDefault(require("../../handlers/updatePresence")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -const audits_1 = __importDefault(require("./audits")); -const joinMessage_1 = __importDefault(require("./joinMessage")); -exports.options = { - type: "on", -}; -// Execute the function -const execute = (member) => __awaiter(void 0, void 0, void 0, function* () { - const { client, user, guild } = member; - logger_1.default.silly(`New member: ${user.tag} (${user.id}) added to guild: ${guild.name} (${guild.id})`); - yield audits_1.default.execute(member); - yield joinMessage_1.default.execute(member); - (0, updatePresence_1.default)(client); - // Create guildMember object - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: user.id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - }); - logger_1.default.silly(createGuildMember); -}); -exports.execute = execute; diff --git a/dist/events/guildMemberAdd/joinMessage.js b/dist/events/guildMemberAdd/joinMessage.js deleted file mode 100644 index 31b0751..0000000 --- a/dist/events/guildMemberAdd/joinMessage.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData")); -exports.default = { - execute: (member) => __awaiter(void 0, void 0, void 0, function* () { - const { footerText, footerIcon, successColor } = yield (0, getEmbedData_1.default)(member.guild); - const getGuild = yield database_1.default.guild.findUnique({ - where: { id: member.guild.id }, - }); - if (!getGuild) - throw new Error("Guild not found"); - const { client } = member; - if (getGuild.welcomeEnabled !== true) - return; - if (!getGuild.welcomeJoinChannelId) - return; - const channel = client.channels.cache.get(`${getGuild.welcomeJoinChannelId}`); - if (!channel) - throw new Error("Channel not found"); - if (channel.type !== discord_js_1.ChannelType.GuildText) - throw new Error("Channel is not a text channel"); - channel.send({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setColor(successColor) - .setTitle(`${member.user.username} has joined the server!`) - .setThumbnail(member.user.displayAvatarURL()) - .setDescription(getGuild.welcomeJoinChannelMessage || - "Configure a join message in the `/settings guild welcome`.") - .setTimestamp() - .setFooter({ - text: footerText, - iconURL: footerIcon, - }), - ], - }); - }), -}; diff --git a/dist/events/guildMemberRemove/audits.js b/dist/events/guildMemberRemove/audits.js deleted file mode 100644 index 23683df..0000000 --- a/dist/events/guildMemberRemove/audits.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.default = { - execute: (member) => __awaiter(void 0, void 0, void 0, function* () { - var _a; - const { client, guild } = member; - const getGuild = yield database_1.default.guild.findUnique({ - where: { id: member.guild.id }, - }); - if (!getGuild) - throw new Error("Guild not found"); - if (getGuild.auditsEnabled !== true) - return; - if (!getGuild.auditsChannelId) { - throw new Error("Channel not found"); - } - const embedConfig = yield (0, getEmbedData_1.default)(guild); - const channel = client.channels.cache.get(getGuild.auditsChannelId); - if ((channel === null || channel === void 0 ? void 0 : channel.type) !== discord_js_1.ChannelType.GuildText) { - throw new Error("Channel must be a text channel"); - } - const embed = new discord_js_1.EmbedBuilder() - .setTimestamp(new Date()) - .setAuthor({ - name: "Member Left", - iconURL: (_a = client.user) === null || _a === void 0 ? void 0 : _a.displayAvatarURL(), - }) - .setFooter({ - text: embedConfig.footerText, - iconURL: embedConfig.footerIcon, - }); - channel - .send({ - embeds: [ - embed - .setColor(embedConfig.errorColor) - .setDescription(`${member.user} - (${member.user.tag})`) - .addFields([ - { - name: "Account Age", - value: `${member.user.createdAt}`, - }, - ]), - ], - }) - .then(() => { - logger_1.default.debug(`Audit log sent for event guildMemberRemove.`); - }) - .catch(() => { - throw new Error("Audit log failed to send"); - }); - }), -}; diff --git a/dist/events/guildMemberRemove/index.js b/dist/events/guildMemberRemove/index.js deleted file mode 100644 index a0243d9..0000000 --- a/dist/events/guildMemberRemove/index.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -const database_1 = __importDefault(require("../../handlers/database")); -const updatePresence_1 = __importDefault(require("../../handlers/updatePresence")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -const audits_1 = __importDefault(require("./audits")); -const leaveMessage_1 = __importDefault(require("./leaveMessage")); -exports.options = { - type: "on", -}; -// Execute the function -const execute = (member) => __awaiter(void 0, void 0, void 0, function* () { - const { client, user, guild } = member; - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Removed member: ${user.tag} (${user.id}) from guild: ${guild.name} (${guild.id})`); - yield audits_1.default.execute(member); - yield leaveMessage_1.default.execute(member); - (0, updatePresence_1.default)(client); - // Delete guildMember object - const deleteGuildMember = yield database_1.default.guildMember.deleteMany({ - where: { - userId: user.id, - guildId: guild.id, - }, - }); - logger_1.default.silly(deleteGuildMember); -}); -exports.execute = execute; diff --git a/dist/events/guildMemberRemove/leaveMessage.js b/dist/events/guildMemberRemove/leaveMessage.js deleted file mode 100644 index 3e3f0e8..0000000 --- a/dist/events/guildMemberRemove/leaveMessage.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData")); -exports.default = { - execute: (member) => __awaiter(void 0, void 0, void 0, function* () { - const { footerText, footerIcon, errorColor } = yield (0, getEmbedData_1.default)(member.guild); - const getGuild = yield database_1.default.guild.findUnique({ - where: { id: member.guild.id }, - }); - if (!getGuild) - throw new Error("Guild not found"); - const { client } = member; - if (getGuild.welcomeEnabled !== true) - return; - if (!getGuild.welcomeLeaveChannelId) - return; - const channel = client.channels.cache.get(`${getGuild.welcomeLeaveChannelId}`); - if (!channel) - throw new Error("Channel not found"); - if (channel.type !== discord_js_1.ChannelType.GuildText) - throw new Error("Channel is not a text channel"); - channel.send({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setColor(errorColor) - .setTitle(`${member.user.username} has left the server!`) - .setThumbnail(member.user.displayAvatarURL()) - .setDescription(getGuild.welcomeLeaveChannelMessage || - "Configure a leave message in the `/settings guild welcome`.") - .setTimestamp() - .setFooter({ - text: footerText, - iconURL: footerIcon, - }), - ], - }); - }), -}; diff --git a/dist/events/interactionCreate/audits.js b/dist/events/interactionCreate/audits.js deleted file mode 100644 index aa660a8..0000000 --- a/dist/events/interactionCreate/audits.js +++ /dev/null @@ -1,68 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.default = { - execute: (interaction) => __awaiter(void 0, void 0, void 0, function* () { - if (interaction === null) - return; - if (interaction.guild === null) - return; - const getGuild = yield database_1.default.guild.findUnique({ - where: { id: interaction.guild.id }, - }); - if (!getGuild) - throw new Error("Guild not found"); - const { footerText, footerIcon, successColor } = yield (0, getEmbedData_1.default)(interaction.guild); - const { client } = interaction; - if (getGuild.auditsEnabled !== true) - return; - if (!getGuild.auditsChannelId) - return; - const channel = client.channels.cache.get(`${getGuild.auditsChannelId}`); - if (!channel) - return; - if (channel.type !== discord_js_1.ChannelType.GuildText) - return; - channel - .send({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setColor(successColor) - .setDescription(` - **Interaction created by** ${interaction.user.username} **in** ${interaction.channel} - ㅤ**Interaction ID**: ${interaction.id} - ㅤ**Type**: ${interaction.type} - ㅤ**User ID**: ${interaction.user.id} - `) - .setThumbnail(interaction.user.displayAvatarURL()) - .setTimestamp() - .setFooter({ - text: footerText, - iconURL: footerIcon, - }), - ], - }) - .then(() => { - var _a, _b; - logger_1.default.debug(`Audit log sent for event interactionCreate in guild ${(_a = interaction === null || interaction === void 0 ? void 0 : interaction.guild) === null || _a === void 0 ? void 0 : _a.name} (${(_b = interaction === null || interaction === void 0 ? void 0 : interaction.guild) === null || _b === void 0 ? void 0 : _b.id})`); - }) - .catch(() => { - logger_1.default.silly("Failed to send audit log for event interactionCreate"); - }); - }), -}; diff --git a/dist/events/interactionCreate/handlers/button/index.js b/dist/events/interactionCreate/handlers/button/index.js deleted file mode 100644 index 7b069c5..0000000 --- a/dist/events/interactionCreate/handlers/button/index.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - var _a; - if (!interaction.isButton()) - return; - const { customId } = interaction; - const currentButton = yield (_a = `../../../buttons/${customId}`, Promise.resolve().then(() => __importStar(require(_a)))); - if (!currentButton) - throw new Error(`Unknown button ${customId}`); - yield currentButton.execute(interaction); -}); diff --git a/dist/events/interactionCreate/handlers/command/index.js b/dist/events/interactionCreate/handlers/command/index.js deleted file mode 100644 index f24dae0..0000000 --- a/dist/events/interactionCreate/handlers/command/index.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - if (!interaction.isCommand()) - return; - const { client, commandName } = interaction; - const currentCommand = client.commands.get(commandName); - if (!currentCommand) - throw new Error(`Unknown command ${commandName}`); - yield currentCommand.execute(interaction); -}); diff --git a/dist/events/interactionCreate/handlers/index.js b/dist/events/interactionCreate/handlers/index.js deleted file mode 100644 index 13706f4..0000000 --- a/dist/events/interactionCreate/handlers/index.js +++ /dev/null @@ -1,48 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.handleCommandInteraction = exports.execute = void 0; -const discord_js_1 = require("discord.js"); -const getEmbedData_1 = __importDefault(require("../../../helpers/getEmbedData")); -const button_1 = __importDefault(require("./button")); -const command_1 = __importDefault(require("./command")); -// Send interactions to all available handlers -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, button_1.default)(interaction); - yield (0, command_1.default)(interaction); -}); -exports.execute = execute; -// Handle interactions from commands -const handleCommandInteraction = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - const { errorColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(interaction.guild); - yield (0, command_1.default)(interaction).catch((err) => { - const buttons = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder() - .setLabel("Report Problem") - .setStyle(discord_js_1.ButtonStyle.Link) - .setEmoji("📝") - .setURL("https://discord.zyner.org")); - return interaction.editReply({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setTitle(`:no_entry_sign:︱Your request failed`) - .setDescription(`${err.message}`) - .setColor(errorColor) - .setTimestamp(new Date()) - .setFooter({ text: footerText, iconURL: footerIcon }), - ], - components: [buttons], - }); - }); -}); -exports.handleCommandInteraction = handleCommandInteraction; diff --git a/dist/events/interactionCreate/index.js b/dist/events/interactionCreate/index.js deleted file mode 100644 index d7906ee..0000000 --- a/dist/events/interactionCreate/index.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -// 3rd party dependencies -const discord_js_1 = require("discord.js"); -const logger_1 = __importDefault(require("../../middlewares/logger")); -// Dependencies -const audits_1 = __importDefault(require("./audits")); -const handlers_1 = require("./handlers"); -exports.options = { - type: "on", -}; -// Execute the event -const execute = (interaction) => __awaiter(void 0, void 0, void 0, function* () { - const { guild, id } = interaction; - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`New interaction: ${id} in guild: ${guild === null || guild === void 0 ? void 0 : guild.name} (${guild === null || guild === void 0 ? void 0 : guild.id})`); - switch (interaction.type) { - case discord_js_1.InteractionType.ApplicationCommand: - yield (0, handlers_1.handleCommandInteraction)(interaction); - break; - default: - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.error(`Unknown interaction type: ${interaction.type}`); - } - yield audits_1.default.execute(interaction); -}); -exports.execute = execute; diff --git a/dist/events/messageCreate/index.js b/dist/events/messageCreate/index.js deleted file mode 100644 index 97574b3..0000000 --- a/dist/events/messageCreate/index.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -const modules_1 = __importDefault(require("./modules")); -exports.options = { - type: "on", -}; -// Execute the function -const execute = (message) => __awaiter(void 0, void 0, void 0, function* () { - yield modules_1.default.credits.execute(message); - yield modules_1.default.points.execute(message); - yield modules_1.default.counters.execute(message); -}); -exports.execute = execute; diff --git a/dist/events/messageCreate/modules/counters/index.js b/dist/events/messageCreate/modules/counters/index.js deleted file mode 100644 index a7d11dd..0000000 --- a/dist/events/messageCreate/modules/counters/index.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - execute: (message) => __awaiter(void 0, void 0, void 0, function* () { - const { guild, author, content, channel } = message; - if (!guild) - return; - if (author.bot) - return; - if ((channel === null || channel === void 0 ? void 0 : channel.type) !== discord_js_1.ChannelType.GuildText) - return; - const messages = yield message.channel.messages.fetch({ limit: 2 }); - const lastMessage = messages.last(); - const channelCounter = yield database_1.default.guildCounter.findUnique({ - where: { - guildId_channelId: { - guildId: guild.id, - channelId: channel.id, - }, - }, - }); - if (!channelCounter) { - logger_1.default.debug("No counters found in channel."); - return; - } - if ((lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.author.id) === author.id && - channel.id === channelCounter.channelId) { - logger_1.default.silly(`${author.username} sent the last message therefor not allowing again.`); - yield message.delete(); - return false; - } - if (content !== channelCounter.triggerWord) { - logger_1.default.silly(`Counter word ${channelCounter.triggerWord} does not match message ${content}`); - yield message.delete(); - return false; - } - const updateGuildCounter = yield database_1.default.guildCounter.update({ - where: { - guildId_channelId: { - guildId: guild.id, - channelId: channel.id, - }, - }, - data: { - count: { - increment: 1, - }, - }, - }); - logger_1.default.silly(updateGuildCounter); - if (!updateGuildCounter) - logger_1.default.error(`Failed to update counter - ${updateGuildCounter}`); - }), -}; diff --git a/dist/events/messageCreate/modules/credits/index.js b/dist/events/messageCreate/modules/credits/index.js deleted file mode 100644 index d99136c..0000000 --- a/dist/events/messageCreate/modules/credits/index.js +++ /dev/null @@ -1,70 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const give_1 = __importDefault(require("../../../../helpers/credits/give")); -const cooldown_1 = __importDefault(require("../../../../middlewares/cooldown")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - execute: (message) => __awaiter(void 0, void 0, void 0, function* () { - const { guild, author, content, channel } = message; - if (!guild) - return; - if (author.bot) - return; - if (channel.type !== discord_js_1.ChannelType.GuildText) - return; - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: author.id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: author.id, - }, - where: { - id: author.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createGuildMember); - if (content.length < createGuildMember.guild.creditsMinimumLength) - return; - yield (0, cooldown_1.default)(guild, author, "event-messageCreate-credits", createGuildMember.guild.creditsTimeout, true); - yield (0, give_1.default)(guild, author, createGuildMember.guild.creditsRate); - }), -}; diff --git a/dist/events/messageCreate/modules/index.js b/dist/events/messageCreate/modules/index.js deleted file mode 100644 index 1ebf005..0000000 --- a/dist/events/messageCreate/modules/index.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const counters_1 = __importDefault(require("./counters")); -const credits_1 = __importDefault(require("./credits")); -const points_1 = __importDefault(require("./points")); -exports.default = { - counters: counters_1.default, - credits: credits_1.default, - points: points_1.default, -}; diff --git a/dist/events/messageCreate/modules/points/index.js b/dist/events/messageCreate/modules/points/index.js deleted file mode 100644 index 5604ebf..0000000 --- a/dist/events/messageCreate/modules/points/index.js +++ /dev/null @@ -1,84 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../../../handlers/database")); -const cooldown_1 = __importDefault(require("../../../../middlewares/cooldown")); -const logger_1 = __importDefault(require("../../../../middlewares/logger")); -exports.default = { - execute: (message) => __awaiter(void 0, void 0, void 0, function* () { - const { guild, author, content, channel } = message; - if (!guild) - return; - if (author.bot) - return; - if (channel.type !== discord_js_1.ChannelType.GuildText) - return; - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: author.id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: author.id, - }, - where: { - id: author.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createGuildMember); - if (content.length < createGuildMember.guild.pointsMinimumLength) - return; - yield (0, cooldown_1.default)(guild, author, "event-messageCreate-points", createGuildMember.guild.pointsTimeout, true); - const updateGuildMember = yield database_1.default.guildMember.update({ - where: { - userId_guildId: { - userId: author.id, - guildId: guild.id, - }, - }, - data: { - pointsEarned: { - increment: createGuildMember.guild.pointsRate, - }, - }, - }); - logger_1.default.silly(updateGuildMember); - if (!updateGuildMember) - throw new Error("Failed to update guildMember object"); - }), -}; diff --git a/dist/events/messageDelete/audits.js b/dist/events/messageDelete/audits.js deleted file mode 100644 index 14c1450..0000000 --- a/dist/events/messageDelete/audits.js +++ /dev/null @@ -1,72 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.default = { - execute: (message) => __awaiter(void 0, void 0, void 0, function* () { - if (message === null) - return; - if (message.guild === null) - return; - const { footerText, footerIcon, successColor } = yield (0, getEmbedData_1.default)(message.guild); - const getGuild = yield database_1.default.guild.findUnique({ - where: { id: message.guild.id }, - }); - if (!getGuild) - throw new Error("Guild not found"); - const { client } = message; - if (!getGuild) - throw new Error("Guild not found"); - if (getGuild.auditsEnabled !== true) - return; - if (!getGuild.auditsChannelId) - return; - const channel = client.channels.cache.get(`${getGuild.auditsChannelId}`); - if (!channel) - return; - if (channel.type !== discord_js_1.ChannelType.GuildText) - return; - channel - .send({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setColor(successColor) - .setAuthor({ - name: message.author.username, - iconURL: message.author.displayAvatarURL(), - }) - .setDescription(` - **Message sent by** ${message.author} **deleted in** ${message.channel} - ${message.content} - `) - .setTimestamp() - .setFooter({ - text: footerText, - iconURL: footerIcon, - }), - ], - }) - .then(() => { - var _a, _b; - logger_1.default.info(`Audit log sent for event messageDelete in guild ${(_a = message === null || message === void 0 ? void 0 : message.guild) === null || _a === void 0 ? void 0 : _a.name} (${(_b = message === null || message === void 0 ? void 0 : message.guild) === null || _b === void 0 ? void 0 : _b.id})`); - }) - .catch(() => { - var _a, _b; - throw new Error(`Audit log failed to send for event messageDelete in guild ${(_a = message === null || message === void 0 ? void 0 : message.guild) === null || _a === void 0 ? void 0 : _a.name} (${(_b = message === null || message === void 0 ? void 0 : message.guild) === null || _b === void 0 ? void 0 : _b.id})`); - }); - }), -}; diff --git a/dist/events/messageDelete/index.js b/dist/events/messageDelete/index.js deleted file mode 100644 index e742293..0000000 --- a/dist/events/messageDelete/index.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -const audits_1 = __importDefault(require("./audits")); -const counter_1 = __importDefault(require("./modules/counter")); -exports.options = { - type: "on", -}; -// Execute the function -const execute = (message) => __awaiter(void 0, void 0, void 0, function* () { - yield audits_1.default.execute(message); - yield (0, counter_1.default)(message); -}); -exports.execute = execute; diff --git a/dist/events/messageDelete/modules/counter.js b/dist/events/messageDelete/modules/counter.js deleted file mode 100644 index dfa138e..0000000 --- a/dist/events/messageDelete/modules/counter.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Models -const database_1 = __importDefault(require("../../../handlers/database")); -const logger_1 = __importDefault(require("../../../middlewares/logger")); -exports.default = (message) => __awaiter(void 0, void 0, void 0, function* () { - const { guild, channel, author, content } = message; - if (!guild) - throw new Error("Guild not found"); - if (!channel) - throw new Error("Channel not found"); - const channelCounter = yield database_1.default.guildCounter.findUnique({ - where: { - guildId_channelId: { - guildId: guild.id, - channelId: channel.id, - }, - }, - }); - if (!channelCounter) - throw new Error("No counter found in channel."); - const messages = yield message.channel.messages.fetch({ limit: 1 }); - const lastMessage = messages.last(); - if (!lastMessage) - return; - if (content !== channelCounter.triggerWord) - return; - if (lastMessage.author.id === message.author.id) - return; - channel === null || channel === void 0 ? void 0 : channel.send(`${author} said **${channelCounter.triggerWord}**.`); - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`${author} said ${channelCounter.triggerWord} in ${channel}`); - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`User: ${author === null || author === void 0 ? void 0 : author.tag} (${author === null || author === void 0 ? void 0 : author.id}) in guild: ${guild === null || guild === void 0 ? void 0 : guild.name} (${guild === null || guild === void 0 ? void 0 : guild.id}) said the counter word: ${channelCounter.triggerWord}`); -}); diff --git a/dist/events/messageUpdate/audits.js b/dist/events/messageUpdate/audits.js deleted file mode 100644 index 35c350d..0000000 --- a/dist/events/messageUpdate/audits.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -/* eslint-disable no-loops/no-loops */ -const discord_js_1 = require("discord.js"); -const database_1 = __importDefault(require("../../handlers/database")); -const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.default = { - execute: (oldMessage, newMessage) => __awaiter(void 0, void 0, void 0, function* () { - if (oldMessage === null) - return; - if (newMessage === null) - return; - if (oldMessage.guild === null) - return; - if (newMessage.guild === null) - return; - const { footerText, footerIcon, successColor } = yield (0, getEmbedData_1.default)(newMessage.guild); - const getGuild = yield database_1.default.guild.findUnique({ - where: { id: oldMessage.guild.id }, - }); - if (!getGuild) - throw new Error("Guild not found"); - const { client } = oldMessage; - if (getGuild.auditsEnabled !== true) - return; - if (!getGuild.auditsChannelId) - return; - const channel = client.channels.cache.get(`${getGuild.auditsChannelId}`); - if (!channel) - return; - if (channel.type !== discord_js_1.ChannelType.GuildText) - return; - channel - .send({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setColor(successColor) - .setAuthor({ - name: newMessage.author.username, - iconURL: newMessage.author.displayAvatarURL(), - }) - .setDescription(` - **Message edited in** ${newMessage.channel} [jump to message](https://discord.com/channels/${newMessage.guild.id}/${newMessage.channel.id}/${newMessage.id}) - `) - .setTimestamp() - .setFooter({ - text: footerText, - iconURL: footerIcon, - }), - ], - }) - .then(() => { - var _a, _b; - logger_1.default.info(`Audit log sent for event messageUpdate in guild ${(_a = newMessage === null || newMessage === void 0 ? void 0 : newMessage.guild) === null || _a === void 0 ? void 0 : _a.name} (${(_b = newMessage === null || newMessage === void 0 ? void 0 : newMessage.guild) === null || _b === void 0 ? void 0 : _b.id})`); - }) - .catch(() => { - var _a, _b; - throw new Error(`Audit log failed to send for event messageUpdate in guild ${(_a = newMessage === null || newMessage === void 0 ? void 0 : newMessage.guild) === null || _a === void 0 ? void 0 : _a.name} (${(_b = newMessage === null || newMessage === void 0 ? void 0 : newMessage.guild) === null || _b === void 0 ? void 0 : _b.id})`); - }); - }), -}; diff --git a/dist/events/messageUpdate/index.js b/dist/events/messageUpdate/index.js deleted file mode 100644 index f7079f4..0000000 --- a/dist/events/messageUpdate/index.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -const logger_1 = __importDefault(require("../../middlewares/logger")); -// Modules -const counter_1 = __importDefault(require("./modules/counter")); -const audits_1 = __importDefault(require("./audits")); -exports.options = { - type: "on", -}; -// Execute the function -const execute = (oldMessage, newMessage) => __awaiter(void 0, void 0, void 0, function* () { - const { author, guild } = newMessage; - yield audits_1.default.execute(oldMessage, newMessage); - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Message update event fired by ${author.tag} (${author.id}) in guild: ${guild === null || guild === void 0 ? void 0 : guild.name} (${guild === null || guild === void 0 ? void 0 : guild.id})`); - if (author === null || author === void 0 ? void 0 : author.bot) - return logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Message update event fired by bot`); - yield (0, counter_1.default)(newMessage); - return true; -}); -exports.execute = execute; diff --git a/dist/events/messageUpdate/modules/counter.js b/dist/events/messageUpdate/modules/counter.js deleted file mode 100644 index bf5c2db..0000000 --- a/dist/events/messageUpdate/modules/counter.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Models -const database_1 = __importDefault(require("../../../handlers/database")); -const logger_1 = __importDefault(require("../../../middlewares/logger")); -exports.default = (message) => __awaiter(void 0, void 0, void 0, function* () { - const { guild, channel, author, content } = message; - if (!guild) - throw new Error("Guild not found"); - if (!channel) - throw new Error("Channel not found"); - const channelCounter = yield database_1.default.guildCounter.findUnique({ - where: { - guildId_channelId: { - guildId: guild.id, - channelId: channel.id, - }, - }, - }); - if (!channelCounter) - return logger_1.default.debug("No counters found in channel."); - if (content === channelCounter.triggerWord) - return logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`User: ${author === null || author === void 0 ? void 0 : author.tag} (${author === null || author === void 0 ? void 0 : author.id}) in guild: ${guild === null || guild === void 0 ? void 0 : guild.name} (${guild === null || guild === void 0 ? void 0 : guild.id}) said the counter word: ${channelCounter.triggerWord}`); - yield message - .delete() - .then(() => __awaiter(void 0, void 0, void 0, function* () { - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`${author} said ${channelCounter.triggerWord} in ${channel}`); - yield (channel === null || channel === void 0 ? void 0 : channel.send(`${author} said **${channelCounter.triggerWord}**.`)); - })) - .catch((error) => { - return logger_1.default.error(error); - }); - return true; -}); diff --git a/dist/events/rateLimit/index.js b/dist/events/rateLimit/index.js deleted file mode 100644 index fa59d44..0000000 --- a/dist/events/rateLimit/index.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.options = { - type: "on", -}; -// Function to execute the event -const execute = (client) => { - var _a; - logger_1.default.warn(`Discord's API client (${(_a = client === null || client === void 0 ? void 0 : client.user) === null || _a === void 0 ? void 0 : _a.tag}) is rate-limited!`); -}; -exports.execute = execute; diff --git a/dist/events/ready/index.js b/dist/events/ready/index.js deleted file mode 100644 index 41e1a22..0000000 --- a/dist/events/ready/index.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -// Helpers -const deployCommands_1 = __importDefault(require("../../handlers/deployCommands")); -const updatePresence_1 = __importDefault(require("../../handlers/updatePresence")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.options = { - type: "once", -}; -// Execute the event -const execute = (client) => __awaiter(void 0, void 0, void 0, function* () { - logger_1.default.info("Discord's API client is ready!"); - (0, updatePresence_1.default)(client); - yield (0, deployCommands_1.default)(client); -}); -exports.execute = execute; diff --git a/dist/handlers/command/index.js b/dist/handlers/command/index.js deleted file mode 100644 index 1d9b5b9..0000000 --- a/dist/handlers/command/index.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __asyncValues = (this && this.__asyncValues) || function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.register = void 0; -const checkDirectory_1 = __importDefault(require("../../helpers/checkDirectory")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -// Register the commands. -const register = (client) => __awaiter(void 0, void 0, void 0, function* () { - var _a, e_1, _b, _c; - logger_1.default.info("🔧 Started command management"); - const commandNames = yield (0, checkDirectory_1.default)("commands"); - if (!commandNames) - return logger_1.default.warn("No available commands found"); - const totalCommands = commandNames.length; - let loadedCommands = 0; - logger_1.default.info(`🔧 Loading ${totalCommands} commands`); - // Import an command. - const importCommand = (name) => __awaiter(void 0, void 0, void 0, function* () { - var _e; - const command = yield (_e = `../../commands/${name}`, Promise.resolve().then(() => __importStar(require(_e)))); - client.commands.set(command.builder.name, command); - return loadedCommands++; - }); - try { - for (var _d = true, commandNames_1 = __asyncValues(commandNames), commandNames_1_1; commandNames_1_1 = yield commandNames_1.next(), _a = commandNames_1_1.done, !_a;) { - _c = commandNames_1_1.value; - _d = false; - try { - const commandName = _c; - yield importCommand(commandName).then(() => { - return logger_1.default.verbose(`🔧 Loaded command "${commandName}"`); - }); - if (loadedCommands === totalCommands) { - return logger_1.default.info("🔧 All commands loaded"); - } - } - finally { - _d = true; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (!_d && !_a && (_b = commandNames_1.return)) yield _b.call(commandNames_1); - } - finally { if (e_1) throw e_1.error; } - } - return true; -}); -exports.register = register; diff --git a/dist/handlers/database/index.js b/dist/handlers/database/index.js deleted file mode 100644 index 2f6ad5e..0000000 --- a/dist/handlers/database/index.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const client_1 = require("@prisma/client"); -const logger_1 = __importDefault(require("../../middlewares/logger")); -const prisma = new client_1.PrismaClient(); -prisma.$use((params, next) => __awaiter(void 0, void 0, void 0, function* () { - const before = Date.now(); - const result = yield next(params); - const after = Date.now(); - logger_1.default.debug(`Query ${params.model}.${params.action} took ${after - before}ms`); - return result; -})); -exports.default = prisma; diff --git a/dist/handlers/deferReply/index.js b/dist/handlers/deferReply/index.js deleted file mode 100644 index d098ce7..0000000 --- a/dist/handlers/deferReply/index.js +++ /dev/null @@ -1,37 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); -const getEmbedData_1 = __importDefault(require("../../helpers/getEmbedData")); -exports.default = (interaction, ephemeral) => __awaiter(void 0, void 0, void 0, function* () { - if (!interaction.isRepliable()) - throw new Error(`Cannot reply to an interaction that is not repliable`); - yield interaction.deferReply({ - ephemeral, - }); - const embedConfig = yield (0, getEmbedData_1.default)(interaction.guild); - yield interaction.editReply({ - embeds: [ - new discord_js_1.EmbedBuilder() - .setFooter({ - text: embedConfig.footerText, - iconURL: embedConfig.footerIcon, - }) - .setTimestamp(new Date()) - .setTitle("⏳︱Your request are being processed") - .setColor(embedConfig.waitColor) - .setDescription("This might take a while, please wait..."), - ], - }); -}); diff --git a/dist/handlers/deployCommands/index.js b/dist/handlers/deployCommands/index.js deleted file mode 100644 index bfc7406..0000000 --- a/dist/handlers/deployCommands/index.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.default = (client) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Destructure the client. - const { application } = client; - if (!application) - throw new Error("No application found"); - // 2. Log that we are starting the command management. - logger_1.default.info("🔧 Started command deployment"); - // 3. Get the commands. - const commands = []; - client.commands.forEach((command) => { - commands.push(command.builder.toJSON()); - logger_1.default.verbose(`🔧 Loaded command "${command.builder.name}"`); - }); - // 4. Set the commands. - yield application.commands.set(commands).then(() => { - logger_1.default.info("🔧 Deployed commands globally"); - }); - // 5. Tell the user that development mode is enabled. - if (process.env.NODE_ENV === "development") { - logger_1.default.info("🔧 Development mode enabled"); - yield application.commands - .set(commands, process.env.DISCORD_GUILD_ID) - .then(() => { - logger_1.default.info(`🔧 Deployed commands to guild`); - }); - } - // 6. Log that we are done with the command management. - logger_1.default.info("🔧 Finished command deployment"); -}); diff --git a/dist/handlers/event/index.js b/dist/handlers/event/index.js deleted file mode 100644 index 38cadf3..0000000 --- a/dist/handlers/event/index.js +++ /dev/null @@ -1,105 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __asyncValues = (this && this.__asyncValues) || function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.register = void 0; -const checkDirectory_1 = __importDefault(require("../../helpers/checkDirectory")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -// Registers all available events. -const register = (client) => __awaiter(void 0, void 0, void 0, function* () { - var _a, e_1, _b, _c; - logger_1.default.info("📡 Started event management"); - const eventNames = yield (0, checkDirectory_1.default)("events"); - if (!eventNames) - return logger_1.default.warn("No available events found"); - const totalEvents = eventNames.length; - let loadedEvents = 0; - logger_1.default.info(`📡 Loading ${totalEvents} events`); - // Import an event. - const importEvent = (name) => __awaiter(void 0, void 0, void 0, function* () { - var _e; - const event = yield (_e = `../../events/${name}`, Promise.resolve().then(() => __importStar(require(_e)))); - // Create a new event execute function. - const eventExecutor = (...args) => __awaiter(void 0, void 0, void 0, function* () { - yield event.execute(...args); - }); - switch (event.options.type) { - case "once": - client.once(name, eventExecutor); - break; - case "on": - client.on(name, eventExecutor); - break; - default: - throw new Error(`📡 Invalid event type for event: ${name}`); - } - return loadedEvents++; - }); - try { - for (var _d = true, eventNames_1 = __asyncValues(eventNames), eventNames_1_1; eventNames_1_1 = yield eventNames_1.next(), _a = eventNames_1_1.done, !_a;) { - _c = eventNames_1_1.value; - _d = false; - try { - const eventName = _c; - yield importEvent(eventName).then(() => { - return logger_1.default.verbose(`📡 Loaded event "${eventName}"`); - }); - if (loadedEvents === totalEvents) { - return logger_1.default.info("📡 All events loaded"); - } - } - finally { - _d = true; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (!_d && !_a && (_b = eventNames_1.return)) yield _b.call(eventNames_1); - } - finally { if (e_1) throw e_1.error; } - } - return true; -}); -exports.register = register; diff --git a/dist/handlers/schedule/index.js b/dist/handlers/schedule/index.js deleted file mode 100644 index d547396..0000000 --- a/dist/handlers/schedule/index.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.start = void 0; -const node_schedule_1 = __importDefault(require("node-schedule")); -const checkDirectory_1 = __importDefault(require("../../helpers/checkDirectory")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -// Start all jobs that are in the schedules directory -const start = (client) => __awaiter(void 0, void 0, void 0, function* () { - logger_1.default.info("⏰ Started job management"); - const jobNames = yield (0, checkDirectory_1.default)("schedules"); - if (!jobNames) - return logger_1.default.warn("⏰ No available jobs found"); - return yield Promise.all(jobNames.map((jobName) => __awaiter(void 0, void 0, void 0, function* () { - var _a; - const job = yield (_a = `../../schedules/${jobName}`, Promise.resolve().then(() => __importStar(require(_a)))); - return node_schedule_1.default.scheduleJob(job.options.schedule, () => __awaiter(void 0, void 0, void 0, function* () { - logger_1.default.verbose(`⏰ Performed the job "${jobName}"`); - yield job.execute(client); - })); - }))); -}); -exports.start = start; diff --git a/dist/handlers/updatePresence/index.js b/dist/handlers/updatePresence/index.js deleted file mode 100644 index c026be1..0000000 --- a/dist/handlers/updatePresence/index.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// Dependencies -const discord_js_1 = require("discord.js"); -const logger_1 = __importDefault(require("../../middlewares/logger")); -// Function -exports.default = (client) => { - // 1. Destructure the client. - const { guilds, user } = client; - if (!user) - throw new Error("No user found"); - // 2. Get the total number of guilds and members. - const memberCount = guilds.cache.reduce((a, g) => a + g.memberCount, 0); - const guildCount = guilds.cache.size; - // 3. Set the presence. - user.setPresence({ - activities: [ - { - name: `${guildCount} guilds | ${memberCount} members`, - type: discord_js_1.ActivityType.Watching, - }, - ], - }); - // 4. Log the presence. - return logger_1.default.info(`👀 Presence set to "${guildCount} guilds | ${memberCount} members"`); -}; diff --git a/dist/helpers/baseEmbeds/index.js b/dist/helpers/baseEmbeds/index.js deleted file mode 100644 index 9c2be31..0000000 --- a/dist/helpers/baseEmbeds/index.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.error = exports.wait = exports.success = void 0; -const discord_js_1 = require("discord.js"); -const getEmbedData_1 = __importDefault(require("../getEmbedData")); -// Construct a base embed for success messages -const success = (guild, title) => __awaiter(void 0, void 0, void 0, function* () { - const { successColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild); - return new discord_js_1.EmbedBuilder() - .setTimestamp(new Date()) - .setTitle(title) - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }); -}); -exports.success = success; -// Construct a base embed for wait messages -const wait = (guild, title) => __awaiter(void 0, void 0, void 0, function* () { - const { waitColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild); - return new discord_js_1.EmbedBuilder() - .setTimestamp(new Date()) - .setTitle(title) - .setColor(waitColor) - .setFooter({ text: footerText, iconURL: footerIcon }); -}); -exports.wait = wait; -// Construct a base embed for error messages -const error = (guild, title) => __awaiter(void 0, void 0, void 0, function* () { - const { errorColor, footerText, footerIcon } = yield (0, getEmbedData_1.default)(guild); - return new discord_js_1.EmbedBuilder() - .setTimestamp(new Date()) - .setTitle(title) - .setColor(errorColor) - .setFooter({ text: footerText, iconURL: footerIcon }); -}); -exports.error = error; diff --git a/dist/helpers/capitalizeFirstLetter/index.js b/dist/helpers/capitalizeFirstLetter/index.js deleted file mode 100644 index 84071db..0000000 --- a/dist/helpers/capitalizeFirstLetter/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = (text) => { - return text.charAt(0).toUpperCase() + text.slice(1); -}; diff --git a/dist/helpers/checkDirectory/index.js b/dist/helpers/checkDirectory/index.js deleted file mode 100644 index e250f61..0000000 --- a/dist/helpers/checkDirectory/index.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const fs_1 = __importDefault(require("fs")); -const fsPromises = fs_1.default.promises; -exports.default = (path) => __awaiter(void 0, void 0, void 0, function* () { - const result = yield fsPromises.readdir(`${__dirname}/../../${path}`); - return result; -}); diff --git a/dist/helpers/checkPermission/index.js b/dist/helpers/checkPermission/index.js deleted file mode 100644 index c234e11..0000000 --- a/dist/helpers/checkPermission/index.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = (interaction, permission) => { - if (!interaction.memberPermissions) - throw new Error("Could not check user for permissions"); - if (!interaction.memberPermissions.has(permission)) - throw new Error("Permission denied"); -}; diff --git a/dist/helpers/credits/give.js b/dist/helpers/credits/give.js deleted file mode 100644 index 95948ba..0000000 --- a/dist/helpers/credits/give.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const database_1 = __importDefault(require("../../handlers/database")); -const transactionRules_1 = __importDefault(require("./transactionRules")); -exports.default = (guild, user, amount) => __awaiter(void 0, void 0, void 0, function* () { - return yield database_1.default.$transaction((tx) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Check if the transaction is valid. - (0, transactionRules_1.default)(guild, user, amount); - // 2. Make the transaction. - const recipient = yield tx.guildMember.upsert({ - update: { - creditsEarned: { - increment: amount, - }, - }, - create: { - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - creditsEarned: amount, - }, - where: { - userId_guildId: { - userId: user.id, - guildId: guild.id, - }, - }, - }); - // 3. Verify that the recipient actually is created. - if (!recipient) - throw new Error("No recipient available"); - // 4. Return the recipient. - return recipient; - })); -}); diff --git a/dist/helpers/credits/set.js b/dist/helpers/credits/set.js deleted file mode 100644 index 4ba0e91..0000000 --- a/dist/helpers/credits/set.js +++ /dev/null @@ -1,62 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const database_1 = __importDefault(require("../../handlers/database")); -const transactionRules_1 = __importDefault(require("./transactionRules")); -exports.default = (guild, user, amount) => __awaiter(void 0, void 0, void 0, function* () { - return yield database_1.default.$transaction((tx) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Check if the transaction is valid. - (0, transactionRules_1.default)(guild, user, amount); - // 2. Make the transaction. - const recipient = yield tx.guildMember.upsert({ - update: { - creditsEarned: amount, - }, - create: { - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - creditsEarned: amount, - }, - where: { - userId_guildId: { - userId: user.id, - guildId: guild.id, - }, - }, - }); - // 3. Verify that the recipient actually is created. - if (!recipient) - throw new Error("No recipient available"); - // 4. Return the recipient. - return recipient; - })); -}); diff --git a/dist/helpers/credits/take.js b/dist/helpers/credits/take.js deleted file mode 100644 index 1224c70..0000000 --- a/dist/helpers/credits/take.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const database_1 = __importDefault(require("../../handlers/database")); -const transactionRules_1 = __importDefault(require("./transactionRules")); -exports.default = (guild, user, amount) => __awaiter(void 0, void 0, void 0, function* () { - return yield database_1.default.$transaction((tx) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Check if the transaction is valid. - (0, transactionRules_1.default)(guild, user, amount); - // 2. Make the transaction. - const recipient = yield tx.guildMember.upsert({ - update: { - creditsEarned: { - decrement: amount, - }, - }, - create: { - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - creditsEarned: -amount, - }, - where: { - userId_guildId: { - userId: user.id, - guildId: guild.id, - }, - }, - }); - // 3. Verify that the recipient credits are not below zero. - if (recipient.creditsEarned < -100) - throw new Error("User do not have enough credits"); - // 4. Return the recipient. - return recipient; - })); -}); diff --git a/dist/helpers/credits/transactionRules.js b/dist/helpers/credits/transactionRules.js deleted file mode 100644 index 861983f..0000000 --- a/dist/helpers/credits/transactionRules.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = (guild, user, amount) => { - // 1. Verify that the amount is not above 100.000.000 credits. - if (amount > 100000000) { - throw new Error("You can't give more than 1.000.000 credits."); - } - // 2. Verify that the amount is not below 1 credits. - if (amount <= 0) { - throw new Error("You can't give below one credit."); - } - // 3. Verify that the user is not an bot. - if (user.bot) { - throw new Error("You can't give to an bot."); - } -}; diff --git a/dist/helpers/credits/transfer.js b/dist/helpers/credits/transfer.js deleted file mode 100644 index f93b869..0000000 --- a/dist/helpers/credits/transfer.js +++ /dev/null @@ -1,105 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const database_1 = __importDefault(require("../../handlers/database")); -const transactionRules_1 = __importDefault(require("./transactionRules")); -exports.default = (guild, from, to, amount) => __awaiter(void 0, void 0, void 0, function* () { - return yield database_1.default.$transaction((tx) => __awaiter(void 0, void 0, void 0, function* () { - // 1. Decrement amount from the sender. - const sender = yield tx.guildMember.upsert({ - update: { - creditsEarned: { - decrement: amount, - }, - }, - create: { - user: { - connectOrCreate: { - create: { - id: from.id, - }, - where: { - id: from.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - creditsEarned: -amount, - }, - where: { - userId_guildId: { - userId: from.id, - guildId: guild.id, - }, - }, - }); - // 4. Verify that the sender's balance didn't go below zero. - if (sender.creditsEarned < 0) { - throw new Error(`${from} doesn't have enough to send ${amount}`); - } - // 5. Check if the transactions is valid. - (0, transactionRules_1.default)(guild, from, amount); - (0, transactionRules_1.default)(guild, to, amount); - // 6. Verify that sender and recipient are not the same user. - if (from.id === to.id) - throw new Error("You can't transfer to yourself."); - // 7. Increment the recipient's balance by amount. - const recipient = yield tx.guildMember.upsert({ - update: { - creditsEarned: { - increment: amount, - }, - }, - create: { - user: { - connectOrCreate: { - create: { - id: to.id, - }, - where: { - id: to.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - creditsEarned: amount, - }, - where: { - userId_guildId: { - userId: to.id, - guildId: guild.id, - }, - }, - }); - return recipient; - })); -}); diff --git a/dist/helpers/encryption/index.js b/dist/helpers/encryption/index.js deleted file mode 100644 index 986d9c1..0000000 --- a/dist/helpers/encryption/index.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const crypto_1 = __importDefault(require("crypto")); -const iv = crypto_1.default.randomBytes(16); -// Encrypts a string -const encrypt = (text) => { - const cipher = crypto_1.default.createCipheriv(process.env.ENCRYPTION_ALGORITHM, process.env.ENCRYPTION_SECRET, iv); - const encrypted = Buffer.concat([cipher.update(text), cipher.final()]); - return { - iv: iv.toString("hex"), - content: encrypted.toString("hex"), - }; -}; -// Decrypts a string -const decrypt = (hash) => { - const decipher = crypto_1.default.createDecipheriv(process.env.ENCRYPTION_ALGORITHM, process.env.ENCRYPTION_SECRET, Buffer.from(hash.iv, "hex")); - const decrypted = Buffer.concat([ - decipher.update(Buffer.from(hash.content, "hex")), - decipher.final(), - ]); - return decrypted.toString(); -}; -exports.default = { - encrypt, - decrypt, -}; diff --git a/dist/helpers/getEmbedData/index.js b/dist/helpers/getEmbedData/index.js deleted file mode 100644 index 1d9cf64..0000000 --- a/dist/helpers/getEmbedData/index.js +++ /dev/null @@ -1,75 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const database_1 = __importDefault(require("../../handlers/database")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.default = (guild) => __awaiter(void 0, void 0, void 0, function* () { - const { EMBED_COLOR_SUCCESS, EMBED_COLOR_WAIT, EMBED_COLOR_ERROR, EMBED_FOOTER_TEXT, EMBED_FOOTER_ICON, } = process.env; - const defaultEmbedConfig = { - successColor: EMBED_COLOR_SUCCESS, - waitColor: EMBED_COLOR_WAIT, - errorColor: EMBED_COLOR_ERROR, - footerText: EMBED_FOOTER_TEXT, - footerIcon: EMBED_FOOTER_ICON, - }; - if (!guild) { - return defaultEmbedConfig; - } - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: guild === null || guild === void 0 ? void 0 : guild.ownerId, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: guild.ownerId, - }, - where: { - id: guild.ownerId, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createGuildMember); - if (!createGuildMember) { - return defaultEmbedConfig; - } - return { - successColor: createGuildMember.guild.embedColorSuccess, - waitColor: createGuildMember.guild.embedColorWait, - errorColor: createGuildMember.guild.embedColorError, - footerText: createGuildMember.guild.embedFooterText, - footerIcon: createGuildMember.guild.embedFooterIcon, - }; -}); diff --git a/dist/helpers/pluralize/index.js b/dist/helpers/pluralize/index.js deleted file mode 100644 index edeac7e..0000000 --- a/dist/helpers/pluralize/index.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.default = (count, noun, suffix) => { - const result = `${count} ${noun}${count !== 1 ? suffix || "s" : ""}`; - logger_1.default === null || logger_1.default === void 0 ? void 0 : logger_1.default.silly(`Pluralized ${count} to ${result}`); - return result; -}; diff --git a/dist/helpers/upsertGuildMember/index.js b/dist/helpers/upsertGuildMember/index.js deleted file mode 100644 index 8be93f0..0000000 --- a/dist/helpers/upsertGuildMember/index.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const database_1 = __importDefault(require("../../handlers/database")); -exports.default = (guildMember) => __awaiter(void 0, void 0, void 0, function* () { - const { guild, user } = guildMember; - return yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId: user.id, - guildId: guild.id, - }, - }, - update: {}, - create: { - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - }, - }); -}); diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 9580842..0000000 --- a/dist/index.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const discord_js_1 = require("discord.js"); // discord.js -require("dotenv/config"); -const command_1 = require("./handlers/command"); -const event_1 = require("./handlers/event"); -const schedule_1 = require("./handlers/schedule"); -// Main process that starts all other sub processes -const main = () => __awaiter(void 0, void 0, void 0, function* () { - // Initiate client object - const client = new discord_js_1.Client({ - intents: [ - discord_js_1.GatewayIntentBits.Guilds, - discord_js_1.GatewayIntentBits.GuildMembers, - discord_js_1.GatewayIntentBits.GuildMessages, - discord_js_1.GatewayIntentBits.MessageContent, - ], - }); - // Create command collection - client.commands = new discord_js_1.Collection(); - // Start critical handlers - yield (0, schedule_1.start)(client); - yield (0, event_1.register)(client); - yield (0, command_1.register)(client); - // Authorize with Discord's API - yield client.login(process.env.DISCORD_TOKEN); -}); -// Start main process -main(); diff --git a/dist/interfaces/Command.js b/dist/interfaces/Command.js deleted file mode 100644 index c8ad2e5..0000000 --- a/dist/interfaces/Command.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/dist/interfaces/EncryptionData.js b/dist/interfaces/EncryptionData.js deleted file mode 100644 index c8ad2e5..0000000 --- a/dist/interfaces/EncryptionData.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/dist/interfaces/Event.js b/dist/interfaces/Event.js deleted file mode 100644 index c8ad2e5..0000000 --- a/dist/interfaces/Event.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/dist/interfaces/EventOptions.js b/dist/interfaces/EventOptions.js deleted file mode 100644 index c8ad2e5..0000000 --- a/dist/interfaces/EventOptions.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/dist/interfaces/Job.js b/dist/interfaces/Job.js deleted file mode 100644 index c8ad2e5..0000000 --- a/dist/interfaces/Job.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/dist/middlewares/cooldown/index.js b/dist/middlewares/cooldown/index.js deleted file mode 100644 index ce53556..0000000 --- a/dist/middlewares/cooldown/index.js +++ /dev/null @@ -1,89 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const date_fns_1 = require("date-fns"); -const database_1 = __importDefault(require("../../handlers/database")); -const logger_1 = __importDefault(require("../logger")); -exports.default = (guild, user, id, cooldown, silent) => __awaiter(void 0, void 0, void 0, function* () { - // Check if user has a timeout - const isOnCooldown = yield database_1.default.cooldown.findUnique({ - where: { - guildId_userId_timeoutId: { - guildId: guild.id, - userId: user.id, - timeoutId: id, - }, - }, - }); - logger_1.default.silly(isOnCooldown); - if (isOnCooldown) { - const { userId, timeoutId, createdAt } = isOnCooldown; - const dueDate = (0, date_fns_1.add)(createdAt, { seconds: cooldown }); - const duration = (0, date_fns_1.formatDuration)((0, date_fns_1.intervalToDuration)({ - start: new Date(), - end: dueDate, - })); - if ((0, date_fns_1.isPast)(dueDate)) { - return yield database_1.default.cooldown.delete({ - where: { - guildId_userId_timeoutId: { - guildId: guild.id, - userId: user.id, - timeoutId: id, - }, - }, - }); - } - if (silent) { - return logger_1.default.verbose(`User ${userId} is on cooldown for ${timeoutId}, it ends in ${duration}.`); - } - throw new Error(`You need to wait for ${duration} before you can do that again`); - } - const createCooldown = yield database_1.default.cooldown.upsert({ - where: { - guildId_userId_timeoutId: { - userId: user.id, - guildId: guild.id, - timeoutId: id, - }, - }, - update: {}, - create: { - guild: { - connectOrCreate: { - create: { - id: guild.id, - }, - where: { - id: guild.id, - }, - }, - }, - user: { - connectOrCreate: { - create: { - id: user.id, - }, - where: { - id: user.id, - }, - }, - }, - timeoutId: id, - cooldown, - }, - }); - logger_1.default.silly(createCooldown); - return createCooldown; -}); diff --git a/dist/middlewares/logger/index.js b/dist/middlewares/logger/index.js deleted file mode 100644 index b7686a9..0000000 --- a/dist/middlewares/logger/index.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const winston_1 = __importDefault(require("winston")); -require("winston-daily-rotate-file"); -const { combine, timestamp, printf, errors, colorize, align, json } = winston_1.default.format; -exports.default = winston_1.default.createLogger({ - level: process.env.LOG_LEVEL || "info", - transports: [ - new winston_1.default.transports.DailyRotateFile({ - filename: "logs/combined-%DATE%.log", - datePattern: "YYYY-MM-DD", - maxFiles: "14d", - format: combine(timestamp(), json()), - }), - new winston_1.default.transports.Console({ - format: combine(errors({ stack: true, trace: true }), // <-- use errors format - colorize({ all: true }), timestamp({ - format: "YYYY-MM-DD HH:MM:ss", - }), align(), printf((info) => `[${info.timestamp}] ${info.level}: ${info.message}`)), - }), - ], -}); diff --git a/dist/schedules/cooldowns/index.js b/dist/schedules/cooldowns/index.js deleted file mode 100644 index 437afbe..0000000 --- a/dist/schedules/cooldowns/index.js +++ /dev/null @@ -1,73 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __asyncValues = (this && this.__asyncValues) || function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -/* eslint-disable no-loops/no-loops */ -const date_fns_1 = require("date-fns"); -const database_1 = __importDefault(require("../../handlers/database")); -const logger_1 = __importDefault(require("../../middlewares/logger")); -exports.options = { - schedule: "*/30 * * * *", // https://crontab.guru/ -}; -// Execute the job -const execute = () => __awaiter(void 0, void 0, void 0, function* () { - var _a, e_1, _b, _c; - const cooldownsObj = yield database_1.default.cooldown.findMany(); - try { - for (var _d = true, cooldownsObj_1 = __asyncValues(cooldownsObj), cooldownsObj_1_1; cooldownsObj_1_1 = yield cooldownsObj_1.next(), _a = cooldownsObj_1_1.done, !_a;) { - _c = cooldownsObj_1_1.value; - _d = false; - try { - const cooldownObj = _c; - const { guildId, userId, timeoutId, cooldown, createdAt } = cooldownObj; - const dueDate = (0, date_fns_1.add)(createdAt, { seconds: cooldown }); - if (!(0, date_fns_1.isPast)(dueDate)) - return; - const duration = (0, date_fns_1.formatDuration)((0, date_fns_1.intervalToDuration)({ - start: new Date(), - end: dueDate, - })); - const deleteCooldown = yield database_1.default.cooldown.delete({ - where: { - guildId_userId_timeoutId: { - guildId, - userId, - timeoutId, - }, - }, - }); - logger_1.default.silly(deleteCooldown); - logger_1.default.verbose(`User ${userId} is on cooldown for ${timeoutId}, it ends in ${duration}.`); - } - finally { - _d = true; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (!_d && !_a && (_b = cooldownsObj_1.return)) yield _b.call(cooldownsObj_1); - } - finally { if (e_1) throw e_1.error; } - } -}); -exports.execute = execute; diff --git a/dist/schedules/shop/index.js b/dist/schedules/shop/index.js deleted file mode 100644 index fb18058..0000000 --- a/dist/schedules/shop/index.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = exports.options = void 0; -const roles_1 = require("./modules/roles"); -exports.options = { - schedule: "*/5 * * * *", // https://crontab.guru/ -}; -// Execute the function -const execute = (client) => __awaiter(void 0, void 0, void 0, function* () { - yield (0, roles_1.execute)(client); -}); -exports.execute = execute; diff --git a/dist/schedules/shop/modules/roles/components/dueForPayment.js b/dist/schedules/shop/modules/roles/components/dueForPayment.js deleted file mode 100644 index b26f837..0000000 --- a/dist/schedules/shop/modules/roles/components/dueForPayment.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = void 0; -const logger_1 = __importDefault(require("../../../../../middlewares/logger")); -// Execute the dueForPayment function -const execute = (_client, role) => { - const { roleId } = role; - logger_1.default.silly(`Shop role ${roleId} is not due for payment.`); -}; -exports.execute = execute; diff --git a/dist/schedules/shop/modules/roles/components/overDueForPayment.js b/dist/schedules/shop/modules/roles/components/overDueForPayment.js deleted file mode 100644 index a63a29e..0000000 --- a/dist/schedules/shop/modules/roles/components/overDueForPayment.js +++ /dev/null @@ -1,124 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = void 0; -const logger_1 = __importDefault(require("../../../../../middlewares/logger")); -const database_1 = __importDefault(require("../../../../../handlers/database")); -// Execute the component -const execute = (client, role) => __awaiter(void 0, void 0, void 0, function* () { - const { guildId, userId, roleId } = role; - if (!userId) - throw new Error("User ID not found for shop role."); - const rGuild = client.guilds.cache.get(guildId); - if (!rGuild) - throw new Error("Guild not found."); - const rMember = yield rGuild.members.fetch(userId); - if (!rMember) - throw new Error("Member not found."); - const rRole = rMember.roles.cache.get(roleId); - if (!rRole) - throw new Error("Role not found."); - logger_1.default.debug(`Shop role ${roleId} is due for payment.`); - const getGuildMember = yield database_1.default.guildMember.findUnique({ - where: { - userId_guildId: { - userId, - guildId, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(getGuildMember); - if (!getGuildMember) - throw new Error("Could not find guild member."); - const pricePerHour = getGuildMember.guild.shopRolesPricePerHour; - if (getGuildMember.creditsEarned < pricePerHour) { - yield rMember.roles - .remove(roleId) - .then(() => __awaiter(void 0, void 0, void 0, function* () { - const deleteShopRole = yield database_1.default.guildShopRoles.delete({ - where: { - guildId_userId_roleId: { - guildId, - userId, - roleId, - }, - }, - }); - logger_1.default.silly(deleteShopRole); - logger_1.default.silly(`Shop role document ${roleId} has been deleted from user ${userId}.`); - })) - .catch(() => { - throw new Error(`Failed removing role from user.`); - }); - throw new Error("User does not have enough credits."); - } - const createGuildMember = yield database_1.default.guildMember.upsert({ - where: { - userId_guildId: { - userId, - guildId, - }, - }, - update: { creditsEarned: { decrement: pricePerHour } }, - create: { - creditsEarned: -pricePerHour, - user: { - connectOrCreate: { - create: { - id: userId, - }, - where: { - id: userId, - }, - }, - }, - guild: { - connectOrCreate: { - create: { - id: guildId, - }, - where: { - id: guildId, - }, - }, - }, - }, - include: { - user: true, - guild: true, - }, - }); - logger_1.default.silly(createGuildMember); - logger_1.default.silly(`User ${userId} has been updated.`); - const updateGuildShopRole = yield database_1.default.guildShopRoles.update({ - where: { - guildId_userId_roleId: { - guildId, - userId, - roleId, - }, - }, - data: { - lastPayed: new Date(), - }, - }); - logger_1.default.silly(updateGuildShopRole); - logger_1.default.silly(`Shop role ${roleId} has been updated.`); - logger_1.default.debug(`Shop role ${roleId} has been paid.`); -}); -exports.execute = execute; diff --git a/dist/schedules/shop/modules/roles/index.js b/dist/schedules/shop/modules/roles/index.js deleted file mode 100644 index 060df75..0000000 --- a/dist/schedules/shop/modules/roles/index.js +++ /dev/null @@ -1,60 +0,0 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __asyncValues = (this && this.__asyncValues) || function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.execute = void 0; -const database_1 = __importDefault(require("../../../../handlers/database")); -const dueForPayment_1 = require("./components/dueForPayment"); -const overDueForPayment_1 = require("./components/overDueForPayment"); -// Execute the roles function -const execute = (client) => __awaiter(void 0, void 0, void 0, function* () { - var _a, e_1, _b, _c; - const roles = yield database_1.default.guildShopRoles.findMany(); - try { - for (var _d = true, roles_1 = __asyncValues(roles), roles_1_1; roles_1_1 = yield roles_1.next(), _a = roles_1_1.done, !_a;) { - _c = roles_1_1.value; - _d = false; - try { - const role = _c; - const { lastPayed } = role; - const nextPayment = new Date(lastPayed.setHours(lastPayed.getHours() + 1)); - const now = new Date(); - if (nextPayment > now) { - (0, dueForPayment_1.execute)(client, role); - return; - } - if (nextPayment < now) { - yield (0, overDueForPayment_1.execute)(client, role); - } - } - finally { - _d = true; - } - } - } - catch (e_1_1) { e_1 = { error: e_1_1 }; } - finally { - try { - if (!_d && !_a && (_b = roles_1.return)) yield _b.call(roles_1); - } - finally { if (e_1) throw e_1.error; } - } -}); -exports.execute = execute;