diff --git a/src/actions/greeting/greeting.components.ts b/src/actions/greeting/greeting.components.ts index 89dacf9..b97e52f 100644 --- a/src/actions/greeting/greeting.components.ts +++ b/src/actions/greeting/greeting.components.ts @@ -1,2 +1,5 @@ +import config from "config"; + export const greetContent = ["HALLOOOO", "guten morgen! ich hoffe es geht euch gut <3"]; export const sleepContent = ["gute nacht! ich muss jetzt schlafen gehen :c", "zzzzZZ..", "*schnarch*"]; +export const customContent = `hey <@&${config.discord.mentionStudy}>! meine [eigene website](https://avocadi.unom.io) ist endlich on :3\ngebe mir gerne rueckmeldung unter <#${config.discord.channelIdFeedback}>! <3`; \ No newline at end of file diff --git a/src/actions/greeting/greeting.service.ts b/src/actions/greeting/greeting.service.ts index ee6ae62..57fd8cf 100644 --- a/src/actions/greeting/greeting.service.ts +++ b/src/actions/greeting/greeting.service.ts @@ -1,7 +1,8 @@ import config from "config"; import client from "lib/client"; import { getRandomInt } from "lib/utils"; -import { greetContent, sleepContent } from "./greeting.components.ts"; +import { customContent, greetContent, sleepContent } from "./greeting.components.ts"; +import { EmbedBuilder } from "discord.js"; export class GreetingService { async customMessage() { @@ -9,13 +10,26 @@ export class GreetingService { const channels = client.channels; - const channel = channels.cache.get(config.discord.channelId); + const channel = channels.cache.get(config.discord.channelIdBot); if (channel?.isTextBased && channel?.isSendable()) { - await channel.send({ content: " " }); + await channel.send({ embeds: [this.createEmbed()], }); } } + createEmbed() { // ({ embeds: [exampleEmbed] }) + console.log("createEmbed()"); + + const exampleEmbed = new EmbedBuilder() + .setColor(0x004400) + .setAuthor({ name: "avocadi - neuigkeiten", 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://avocadi.unom.io' }) + .setDescription(customContent) + .setTimestamp() + //.setFooter({ text: 'Some footer text here', iconURL: 'https://i.imgur.com/AfFp7pu.png' }); + ; + return exampleEmbed; + } + async greet() { client.user?.setActivity("guten morgen! :3", { type: 4 }); console.log("set activity: awake"); @@ -25,7 +39,7 @@ export class GreetingService { const channels = client.channels; - const channel = channels.cache.get(config.discord.channelId); + const channel = channels.cache.get(config.discord.testChannel); if (channel?.isTextBased && channel?.isSendable()) { await channel.send({ content: this.getContent(false) }); @@ -41,7 +55,7 @@ export class GreetingService { const channels = client.channels; - const channel = channels.cache.get(config.discord.channelId); + const channel = channels.cache.get(config.discord.testChannel); if (channel?.isTextBased && channel?.isSendable()) { await channel.send({ content: this.getContent(true) }); diff --git a/src/actions/help/help.components.ts b/src/actions/help/help.components.ts index c2deda5..5b53a3e 100644 --- a/src/actions/help/help.components.ts +++ b/src/actions/help/help.components.ts @@ -11,9 +11,9 @@ export default function createEmbed() { // ({ embeds: [exampleEmbed] }) .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 }, + { 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' }); diff --git a/src/actions/help/help.service.ts b/src/actions/help/help.service.ts index 3a5df4c..de25656 100644 --- a/src/actions/help/help.service.ts +++ b/src/actions/help/help.service.ts @@ -2,6 +2,7 @@ import type { CacheType, Interaction } from "discord.js"; import createEmbed from "./help.components"; export class HelpService { + // biome-ignore lint/suspicious/noExplicitAny: exampleEmbed: any; constructor() { diff --git a/src/commands/index.ts b/src/commands/index.ts index 913b25e..31b4a6c 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -1,4 +1,4 @@ -import { SlashCommandBuilder } from "discord.js"; +import { SlashCommandBuilder, userMention } from "discord.js"; import { z } from "zod"; export const Commands = z.enum(["giessen", "medikamente", "hilfe"]); @@ -12,7 +12,7 @@ export const CommandsMeta: Record, { description: stri }, hilfe: { description: "ich schreibe dir auf, was du alles mit mir machen kannst :)" - } + }, } export type CommandsType = z.output; diff --git a/src/config.ts b/src/config.ts index 10accf8..1bb3a16 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,11 +1,10 @@ -const test = false; - export default { discord: { - channelId: - (test - ? process.env.DISCORD_TEST_CHANNEL_ID - : process.env.DISCORD_CHANNEL_ID_BOT) || "", + testChannel: process.env.DISCORD_TEST_CHANNEL_ID || "", + channelIdBot: process.env.DISCORD_CHANNEL_ID_BOT || "", + channelIdNews: process.env.DISCORD_CHANNEL_ID_NEWS || "", + channelIdFeedback: process.env.DISCORD_CHANNEL_ID_FEEDBACK || "", + mentionStudy: process.env.PEOPLE || "", applicationId: process.env.DISCORD_APPLICATION_ID || "", token: process.env.DISCORD_TOKEN || "", }, diff --git a/src/controllers/discord.controller.ts b/src/controllers/discord.controller.ts index a137276..fb01bf3 100644 --- a/src/controllers/discord.controller.ts +++ b/src/controllers/discord.controller.ts @@ -14,10 +14,12 @@ 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"; +import { GreetingService } from "actions/greeting/greeting.service"; export default class DiscordController extends EventEmitter { private discordService!: DiscordService; waterMeService: WaterMeService; + greetingService: GreetingService; medicationService: MedicationService; helpService: HelpService; @@ -25,20 +27,13 @@ export default class DiscordController extends EventEmitter { super(); this.discordService = new DiscordService(); this.waterMeService = new WaterMeService(); + this.greetingService = new GreetingService(); this.medicationService = new MedicationService(); this.helpService = new HelpService(); // log when running client.once("ready", async () => { this.setActivity(); - - /*const channels = client.channels; - const channel = channels.cache.get(config.discord.channelId); - - if (channel?.isTextBased && channel?.isSendable()) { - await channel.send({ - content: "bin wieder da :o war kurz weg :3", - }); - }*/ + this.greetingService.customMessage(); }); // listen for interactions @@ -46,7 +41,7 @@ export default class DiscordController extends EventEmitter { } async setActivity() { - client.user?.setActivity("frohes neues :3", { type: 4 }); + client.user?.setActivity("meine website ist online! :o", { type: 4 }); console.log("set activity"); client.user?.setPresence({ status: "online", diff --git a/src/index.ts b/src/index.ts index cdef732..dddf036 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,48 +5,6 @@ import "actions/drink/drink.task"; import DiscordController from "controllers/discord.controller"; import "dotenv/config"; -/*import { drizzle } from 'drizzle-orm/bun-sqlite'; -import { eq } from 'drizzle-orm'; -import { usersTable } from './db/schema'; -import { db } from "./db" // from index - - -async function main() { - const user: typeof usersTable.$inferInsert = { - name: 'John', - age: 30, - email: 'john@example.com', - }; - - await db.insert(usersTable).values(user); - console.log('New user created!') - - const users = await db.select().from(usersTable); - console.log('Getting all users from the database: ', users) - /* - const users: { - id: number; - name: string; - age: number; - email: string; - }[] - */ -/* -await db - .update(usersTable) - .set({ - age: 31, - }) - .where(eq(usersTable.email, user.email)); -console.log('User info updated!') - -await db.delete(usersTable).where(eq(usersTable.email, user.email)); -console.log('User deleted!') -} - -main();*/ - -// = main file // bootstrap application const discordController = new DiscordController();