mirror of
https://github.com/JonnyBro/JaBa.git
synced 2025-03-31 19:22:00 +05:00
61 lines
2.2 KiB
TypeScript
61 lines
2.2 KiB
TypeScript
import { replyError, replySuccess } from "@/helpers/extenders.js";
|
|
import { CommandData, SlashCommandProps } from "@/types.js";
|
|
import useClient from "@/utils/use-client.js";
|
|
import { ApplicationCommandOptionType, ApplicationIntegrationType, InteractionContextType, MessageFlags } from "discord.js";
|
|
|
|
const client = useClient();
|
|
|
|
export const data: CommandData = {
|
|
name: "addemoji",
|
|
description: client.i18n.translate("administration/addemoji:DESCRIPTION"),
|
|
// eslint-disable-next-line camelcase
|
|
description_localizations: {
|
|
ru: client.i18n.translate("administration/addemoji:DESCRIPTION", { lng: "ru-RU" }),
|
|
uk: client.i18n.translate("administration/addemoji:DESCRIPTION", { lng: "uk-UA" }),
|
|
},
|
|
// eslint-disable-next-line camelcase
|
|
integration_types: [ApplicationIntegrationType.GuildInstall],
|
|
contexts: [InteractionContextType.Guild],
|
|
options: [
|
|
{
|
|
name: "link",
|
|
description: client.i18n.translate("common:LINK"),
|
|
type: ApplicationCommandOptionType.String,
|
|
required: true,
|
|
// eslint-disable-next-line camelcase
|
|
description_localizations: {
|
|
ru: client.i18n.translate("common:LINK", { lng: "ru-RU" }),
|
|
uk: client.i18n.translate("common:LINK", { lng: "uk-UA" }),
|
|
},
|
|
},
|
|
{
|
|
name: "name",
|
|
description: client.i18n.translate("common:NAME"),
|
|
type: ApplicationCommandOptionType.String,
|
|
required: true,
|
|
// eslint-disable-next-line camelcase
|
|
description_localizations: {
|
|
ru: client.i18n.translate("common:NAME", { lng: "ru-RU" }),
|
|
uk: client.i18n.translate("common:NAME", { lng: "uk-UA" }),
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|
|
export const run = async ({ interaction }: SlashCommandProps) => {
|
|
await interaction.deferReply({ flags: MessageFlags.Ephemeral });
|
|
|
|
const attachment = interaction.options.getString("link") || "";
|
|
const name = interaction.options.getString("name") || "";
|
|
|
|
try {
|
|
const emoji = await interaction.guild?.emojis.create({ name, attachment });
|
|
|
|
if (!emoji) return replyError(interaction, "administration/addemoji:ERROR", { name }, { edit: true });
|
|
|
|
return replySuccess(interaction, "administration/addemoji:SUCCESS", { emoji: emoji.toString() }, { edit: true });
|
|
} catch (error) {
|
|
console.error(error, "ADDING EMOJI");
|
|
replyError(interaction, "administration/addemoji:ERROR", { name, error }, { edit: true });
|
|
}
|
|
};
|