diff --git a/src/events/interactionCreate/components/isCommand.ts b/src/events/interactionCreate/components/isCommand.ts index b763bb0..2f602f5 100644 --- a/src/events/interactionCreate/components/isCommand.ts +++ b/src/events/interactionCreate/components/isCommand.ts @@ -22,12 +22,17 @@ export default async (interaction: CommandInteraction) => { let meta; + const subcommand = + interaction.options.getSubcommand() === "delete" + ? "delete_" + : interaction.options.getSubcommand(); + if (!interaction.options.getSubcommandGroup(false)) { - meta = currentCommand.modules[interaction.options.getSubcommand()].meta; + meta = currentCommand.modules[subcommand].meta; } else { meta = currentCommand.groups[interaction.options.getSubcommandGroup()].modules[ - interaction.options.getSubcommand() + subcommand ].meta; } @@ -100,7 +105,7 @@ export default async (interaction: CommandInteraction) => { ); }) .catch(async (error: any) => { - logger?.error(error); + logger?.error(`${error}`); return interaction.editReply({ embeds: [ diff --git a/src/plugins/counters/modules/view/index.ts b/src/plugins/counters/modules/view/index.ts index 7dd8d52..7f4d1e0 100644 --- a/src/plugins/counters/modules/view/index.ts +++ b/src/plugins/counters/modules/view/index.ts @@ -10,6 +10,7 @@ import { SlashCommandSubcommandBuilder } from "@discordjs/builders"; import { ChannelType } from "discord-api-types/v10"; import counterSchema from "@schemas/counter"; +import i18next from "i18next"; export default { meta: { guildOnly: true, ephemeral: false }, @@ -30,10 +31,23 @@ export default { }, execute: async (interaction: CommandInteraction) => { - const { options, guild } = interaction; + const { options, guild, locale } = interaction; const discordChannel = options?.getChannel("channel"); + const embed = new MessageEmbed() + .setTitle( + i18next.t("counters:modules:view:general:title", { + lng: locale, + ns: "plugins", + }) + ) + .setTimestamp(new Date()) + .setFooter({ + text: footerText, + iconURL: footerIcon, + }); + const counter = await counterSchema?.findOne({ guildId: guild?.id, channelId: discordChannel?.id, @@ -42,32 +56,31 @@ export default { if (counter === null) { return interaction?.editReply({ embeds: [ - new MessageEmbed() - .setTitle("[:1234:] Counters (View)") - .setDescription(`No counter found for channel ${discordChannel}!`) - .setTimestamp(new Date()) - .setColor(errorColor) - .setFooter({ - text: footerText, - iconURL: footerIcon, - }), + embed + .setDescription( + i18next.t("counters:modules:view:error01:description", { + lng: locale, + ns: "plugins", + channel: discordChannel, + }) + ) + .setColor(errorColor), ], }); } return interaction?.editReply({ embeds: [ - new MessageEmbed() - .setTitle("[:1234:] Counters (View)") + embed .setDescription( - `Viewing counter for channel ${discordChannel} with count ${counter.counter}.` + i18next.t("counters:modules:view:success01:description", { + lng: locale, + ns: "plugins", + channel: discordChannel, + amount: counter.counter, + }) ) - .setTimestamp(new Date()) - .setColor(successColor) - .setFooter({ - text: footerText, - iconURL: footerIcon, - }), + .setColor(successColor), ], }); }, diff --git a/src/plugins/credits/modules/work/index.ts b/src/plugins/credits/modules/work/index.ts index 4ad9d13..37d743c 100644 --- a/src/plugins/credits/modules/work/index.ts +++ b/src/plugins/credits/modules/work/index.ts @@ -4,7 +4,12 @@ import { SlashCommandSubcommandBuilder } from "@discordjs/builders"; import Chance from "chance"; // Configurations -import { successColor, footerText, footerIcon } from "@config/embed"; +import { + successColor, + errorColor, + footerText, + footerIcon, +} from "@config/embed"; // Handlers import logger from "@logger"; @@ -15,6 +20,7 @@ import timeoutSchema from "@schemas/timeout"; // Helpers import fetchUser from "@helpers/fetchUser"; import fetchGuild from "@helpers/fetchGuild"; +import i18next from "i18next"; export default { meta: { guildOnly: true, ephemeral: true }, @@ -24,7 +30,20 @@ export default { }, execute: async (interaction: CommandInteraction) => { // Destructure member - const { guild, user } = interaction; + const { guild, user, locale } = interaction; + + const embed = new MessageEmbed() + .setTitle( + i18next.t("credits:modules:work:general:title", { + lng: locale, + ns: "plugins", + }) + ) + .setTimestamp(new Date()) + .setFooter({ + text: footerText, + iconURL: footerIcon, + }); // Chance module const chance = new Chance(); @@ -48,14 +67,15 @@ export default { return interaction.editReply({ embeds: [ - new MessageEmbed() - .setTitle("[:dollar:] Credits (Work)") + embed .setDescription( - `You can not work while on timeout, please wait ${guildDB?.credits.workTimeout} seconds.` + i18next.t("credits:modules:work:error01:description", { + lng: locale, + ns: "plugins", + time: guildDB?.credits.workTimeout, + }) ) - .setTimestamp(new Date()) - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }), + .setColor(errorColor), ], }); } @@ -80,12 +100,16 @@ export default { return interaction.editReply({ embeds: [ - new MessageEmbed() - .setTitle("[:dollar:] Credits (Work)") - .setDescription(`You worked and earned ${creditsEarned} credits`) - .setTimestamp(new Date()) - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }), + embed + .setDescription( + i18next.t("credits:modules:work:success01:description", { + lng: locale, + ns: "plugins", + time: guildDB?.credits.workTimeout, + amount: creditsEarned, + }) + ) + .setColor(successColor), ], }); }); diff --git a/src/plugins/manage/groups/counters/modules/create/index.ts b/src/plugins/manage/groups/counters/modules/create/index.ts index f23723c..c641764 100644 --- a/src/plugins/manage/groups/counters/modules/create/index.ts +++ b/src/plugins/manage/groups/counters/modules/create/index.ts @@ -16,6 +16,7 @@ import logger from "@logger"; // Models import counterSchema from "@schemas/counter"; +import i18next from "i18next"; // Function export default { @@ -49,12 +50,22 @@ export default { ); }, execute: async (interaction: CommandInteraction) => { - const { options, guild } = interaction; + const { options, guild, locale } = interaction; const discordChannel = options?.getChannel("channel"); const countingWord = options?.getString("word"); const startValue = options?.getNumber("start"); + const embed = new MessageEmbed() + .setTitle( + i18next.t("manage:groups:counters:modules:create:general:title", { + lng: locale, + ns: "plugins", + }) + ) + .setTimestamp(new Date()) + .setFooter({ text: footerText, iconURL: footerIcon }); + const counter = await counterSchema?.findOne({ guildId: guild?.id, channelId: discordChannel?.id, @@ -63,12 +74,18 @@ export default { if (counter) { return interaction?.editReply({ embeds: [ - new MessageEmbed() - .setTitle("[:toolbox:] Manage - Counters (Create)") - .setDescription(`A counter already exists for this channel.`) - .setTimestamp(new Date()) - .setColor(errorColor) - .setFooter({ text: footerText, iconURL: footerIcon }), + embed + .setDescription( + i18next.t( + "manage:groups:counters:modules:create:error01:description", + { + lng: locale, + ns: "plugins", + channel: discordChannel, + } + ) + ) + .setColor(errorColor), ], }); } @@ -85,12 +102,18 @@ export default { return interaction?.editReply({ embeds: [ - new MessageEmbed() - .setTitle("[:toolbox:] Manage - Counters (Create)") - .setDescription(`Created counter for ${discordChannel}`) - .setTimestamp(new Date()) - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }), + embed + .setDescription( + i18next.t( + "manage:groups:counters:modules:create:success01:description", + { + lng: locale, + ns: "plugins", + channel: discordChannel, + } + ) + ) + .setColor(successColor), ], }); }); diff --git a/src/plugins/manage/groups/counters/modules/delete/index.ts b/src/plugins/manage/groups/counters/modules/delete/index.ts index 3035fa8..989b1ec 100644 --- a/src/plugins/manage/groups/counters/modules/delete/index.ts +++ b/src/plugins/manage/groups/counters/modules/delete/index.ts @@ -16,6 +16,7 @@ import logger from "@logger"; import counterSchema from "@schemas/counter"; import { SlashCommandSubcommandBuilder } from "@discordjs/builders"; import { ChannelType } from "discord-api-types/v10"; +import i18next from "i18next"; // Function export default { @@ -38,10 +39,20 @@ export default { ); }, execute: async (interaction: CommandInteraction) => { - const { options, guild } = interaction; + const { options, guild, locale } = interaction; const discordChannel = options?.getChannel("channel"); + const embed = new MessageEmbed() + .setTitle( + i18next.t("manage:groups:counters:modules:delete:general:title", { + lng: locale, + ns: "plugins", + }) + ) + .setTimestamp(new Date()) + .setFooter({ text: footerText, iconURL: footerIcon }); + const counter = await counterSchema?.findOne({ guildId: guild?.id, channelId: discordChannel?.id, @@ -52,12 +63,17 @@ export default { return interaction?.editReply({ embeds: [ - new MessageEmbed() - .setTitle("[:toolbox:] Manage - Counters (Delete)") - .setDescription(`The counter for this channel does not exist.`) - .setTimestamp(new Date()) - .setColor(errorColor) - .setFooter({ text: footerText, iconURL: footerIcon }), + embed + .setDescription( + i18next.t( + "manage:groups:counters:modules:delete:error01:description", + { + lng: locale, + ns: "plugins", + } + ) + ) + .setColor(errorColor), ], }); } @@ -72,12 +88,17 @@ export default { return interaction?.editReply({ embeds: [ - new MessageEmbed() - .setTitle("[:toolbox:] Manage - Counters (Delete)") - .setDescription(`The counter for this channel has been deleted.`) - .setTimestamp(new Date()) - .setColor(successColor) - .setFooter({ text: footerText, iconURL: footerIcon }), + embed + .setDescription( + i18next.t( + "manage:groups:counters:modules:delete:success01:description", + { + lng: locale, + ns: "plugins", + } + ) + ) + .setColor(successColor), ], }); })