From e7cd840c487ef48c8d493bb079e00622fc54f0aa Mon Sep 17 00:00:00 2001 From: moriese Date: Tue, 31 Dec 2024 01:28:46 +0100 Subject: [PATCH] added embed for /hilfe --- icon/mo_Avocadi_Avatar_Closeup_2.png | Bin 0 -> 30475 bytes src/actions/help/help.components.ts | 22 +++++++++++++++++ src/actions/help/help.service.ts | 20 +++++++++++++++ src/commands/index.ts | 34 ++++++++++++++++++++++++++ src/components/commands.component.ts | 19 -------------- src/components/index.ts | 24 ++++++++++++++++++ src/controllers/discord.controller.ts | 15 +++++++++--- src/services/discord.service.ts | 2 +- 8 files changed, 112 insertions(+), 24 deletions(-) create mode 100644 icon/mo_Avocadi_Avatar_Closeup_2.png create mode 100644 src/actions/help/help.components.ts create mode 100644 src/actions/help/help.service.ts create mode 100644 src/commands/index.ts delete mode 100644 src/components/commands.component.ts create mode 100644 src/components/index.ts diff --git a/icon/mo_Avocadi_Avatar_Closeup_2.png b/icon/mo_Avocadi_Avatar_Closeup_2.png new file mode 100644 index 0000000000000000000000000000000000000000..773df007bc6375b350ed3dd78d227ac17d844fc7 GIT binary patch literal 30475 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%0D;Q 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 G`~L&sP1kV% literal 0 HcmV?d00001 diff --git a/src/actions/help/help.components.ts b/src/actions/help/help.components.ts new file mode 100644 index 0000000..c2deda5 --- /dev/null +++ b/src/actions/help/help.components.ts @@ -0,0 +1,22 @@ +import { Commands, CommandsMeta } from 'commands'; +import { AttachmentBuilder, EmbedBuilder } from 'discord.js'; + +export default function createEmbed() { // ({ embeds: [exampleEmbed] }) + console.log("createEmbed()"); + + const exampleEmbed = new EmbedBuilder() + .setColor(0x004400) + //.setTitle("/hilfe") + //.setURL("") + .setAuthor({ name: "avocadi - befehle", iconURL: "https://media.discordapp.net/attachments/1321933410188656693/1323447010380222474/mo_Avocadi_Avatar_Closeup_2.png?ex=67748b93&is=67733a13&hm=f48efb3523bca5f50e79144c7b41a127c94670e693e3da3dc2e6ffe62ad8a769&=&format=webp&quality=lossless&width=1524&height=1524", url: 'https://git.unom.io/moriese/avocadi-bot' }) + .setDescription(" ") + .addFields( + { name: "/" + Commands.Enum.giessen, value: CommandsMeta.giessen.description }, + { name: "/" + Commands.Enum.medikamente, value: CommandsMeta.medikamente.description }, + { name: "/" + Commands.Enum.hilfe, value: CommandsMeta.hilfe.description }, + ) + .setTimestamp() + //.setFooter({ text: 'Some footer text here', iconURL: 'https://i.imgur.com/AfFp7pu.png' }); + ; + return exampleEmbed; +} \ No newline at end of file diff --git a/src/actions/help/help.service.ts b/src/actions/help/help.service.ts new file mode 100644 index 0000000..3a5df4c --- /dev/null +++ b/src/actions/help/help.service.ts @@ -0,0 +1,20 @@ +import type { CacheType, Interaction } from "discord.js"; +import createEmbed from "./help.components"; + +export class HelpService { + exampleEmbed: any; + + constructor() { + this.exampleEmbed = createEmbed(); + } + + async handleInteraction(interaction: Interaction) { + console.log("help"); + + if (interaction.isChatInputCommand()) { + await interaction.reply({ + embeds: [this.exampleEmbed], + }); + } + } +} \ No newline at end of file diff --git a/src/commands/index.ts b/src/commands/index.ts new file mode 100644 index 0000000..913b25e --- /dev/null +++ b/src/commands/index.ts @@ -0,0 +1,34 @@ +import { SlashCommandBuilder } from "discord.js"; +import { z } from "zod"; + +export const Commands = z.enum(["giessen", "medikamente", "hilfe"]); + +export const CommandsMeta: Record, { description: string }> = { + giessen: { + description: "giess mich mit etwas wasser :3" + }, + medikamente: { + description: "ich erinnere dich gerne daran, deine medikamente zu nehmen! :)" + }, + hilfe: { + description: "ich schreibe dir auf, was du alles mit mir machen kannst :)" + } +} + +export type CommandsType = z.output; + +export default function getCommands() { + const commands = [ + new SlashCommandBuilder() + .setName(Commands.Enum.giessen) + .setDescription(CommandsMeta.giessen.description), + new SlashCommandBuilder() + .setName(Commands.Enum.medikamente) + .setDescription(CommandsMeta.medikamente.description), + new SlashCommandBuilder() + .setName(Commands.Enum.hilfe) + .setDescription(CommandsMeta.hilfe.description), + ].map((command) => command.toJSON()); + + return commands; +} diff --git a/src/components/commands.component.ts b/src/components/commands.component.ts deleted file mode 100644 index cc0e802..0000000 --- a/src/components/commands.component.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { SlashCommandBuilder } from "discord.js"; -import { z } from "zod"; - -export const Commands = z.enum(["giessen", "medikamente"]); -export type CommandsType = z.output; - -export default function getCommands() { - const commands = [ - new SlashCommandBuilder() - .setName(Commands.Enum.giessen) - .setDescription("giess mich mit etwas wasser :3"), - - new SlashCommandBuilder() - .setName(Commands.Enum.medikamente) - .setDescription("ich erinnere dich gerne daran, deine medikamente zu nehmen! :)"), - ].map((command) => command.toJSON()); - - return commands; -} diff --git a/src/components/index.ts b/src/components/index.ts new file mode 100644 index 0000000..e995b64 --- /dev/null +++ b/src/components/index.ts @@ -0,0 +1,24 @@ +import { EmbedBuilder } from "discord.js"; +import { Commands, CommandsMeta } from "commands"; + +export default function getEmbed() { // channel.send({ embeds: [exampleEmbed] }); + const exampleEmbed = new EmbedBuilder() + .setColor(0x0099FF) + .setTitle('Some title') + .setURL('https://discord.js.org/') + .setAuthor({ name: 'Some name', iconURL: 'https://i.imgur.com/AfFp7pu.png', url: 'https://discord.js.org' }) + .setDescription('Some description here') + .setThumbnail('https://i.imgur.com/AfFp7pu.png') + .addFields( + { name: Commands.Enum.giessen, value: CommandsMeta.giessen.description }, + { name: Commands.Enum.medikamente, value: CommandsMeta.medikamente.description }, + { name: Commands.Enum.hilfe, value: CommandsMeta.hilfe.description }, + { name: '\u200B', value: '\u200B' }, + { name: 'Inline field title', value: 'Some value here', inline: true }, + ) + .addFields({ name: 'Inline field title', value: 'Some value here', inline: true }) + .setImage('https://i.imgur.com/AfFp7pu.png') + .setTimestamp() + .setFooter({ text: 'Some footer text here', iconURL: 'https://i.imgur.com/AfFp7pu.png' }); + return exampleEmbed; +} \ No newline at end of file diff --git a/src/controllers/discord.controller.ts b/src/controllers/discord.controller.ts index be04a62..1969c10 100644 --- a/src/controllers/discord.controller.ts +++ b/src/controllers/discord.controller.ts @@ -1,4 +1,4 @@ -import { Commands, type CommandsType } from "components/commands.component"; +import { Commands, type CommandsType } from "commands"; import type { ButtonInteraction, CacheType, @@ -9,20 +9,24 @@ import type { import client from "lib/client"; import EventEmitter from "node:events"; import DiscordService from "services/discord.service"; -import { WaterMeService } from "actions/waterMe/waterMe.service"; import config from "config"; +import { WaterMeService } from "actions/waterMe/waterMe.service"; import { MedicationService } from "actions/medication/medication.service"; +import { HelpService } from "actions/help/help.service"; +import { custom } from "zod"; export default class DiscordController extends EventEmitter { private discordService!: DiscordService; waterMeService: WaterMeService; medicationService: MedicationService; + helpService: HelpService; constructor() { super(); this.discordService = new DiscordService(); this.waterMeService = new WaterMeService(); this.medicationService = new MedicationService(); + this.helpService = new HelpService(); // log when running client.once("ready", async () => { client.user?.setActivity("HALLOOO HOERT IHR MICH?", { type: 4 }); @@ -36,7 +40,7 @@ export default class DiscordController extends EventEmitter { if (channel?.isTextBased && channel?.isSendable()) { await channel.send({ - content: "bin gerade erst aufgewacht :o", + content: "bin wieder da :o war kurz weg :3", }); }*/ }); @@ -69,7 +73,7 @@ export default class DiscordController extends EventEmitter { const { customId } = interaction; console.log(interaction.customId); - if (customId === "moreWater") { + if (customId.toLowerCase().includes("moreWater")) { await this.waterMeService.handleInteraction(interaction); } if (customId.toLowerCase().includes("medication")) { @@ -90,6 +94,9 @@ export default class DiscordController extends EventEmitter { case Commands.Enum.medikamente: await this.medicationService.handleInteraction(interaction); return; + case Commands.Enum.hilfe: + await this.helpService.handleInteraction(interaction); + return; default: break; } diff --git a/src/services/discord.service.ts b/src/services/discord.service.ts index bff3fe7..fa94f6f 100644 --- a/src/services/discord.service.ts +++ b/src/services/discord.service.ts @@ -1,7 +1,7 @@ import { Routes } from "discord.js"; import { REST } from "@discordjs/rest"; import config from "config"; -import getCommands from "components/commands.component"; +import getCommands from "commands"; export default class DiscordService { rest: REST;