From 06ef16581c2006bf719ebe497e30922e55d2653e Mon Sep 17 00:00:00 2001 From: moriese Date: Fri, 27 Dec 2024 02:39:06 +0100 Subject: [PATCH] wip --- src/controllers/discord.controller.ts | 14 ++++++++++++-- src/services/greeting.service.ts | 21 +++++++++++++++++++++ src/services/medication.service.ts | 0 src/services/water-me.service.ts | 5 +++-- src/tasks/greeting.task.ts | 13 ++++++++++++- src/tasks/medication.task.ts | 0 src/tasks/water-me.task.ts | 2 +- 7 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 src/services/medication.service.ts create mode 100644 src/tasks/medication.task.ts diff --git a/src/controllers/discord.controller.ts b/src/controllers/discord.controller.ts index 3008995..507f297 100644 --- a/src/controllers/discord.controller.ts +++ b/src/controllers/discord.controller.ts @@ -10,6 +10,7 @@ import client from "lib/client"; import EventEmitter from "node:events"; import DiscordService from "services/discord.service"; import { WaterMeService } from "services/water-me.service"; +import config from "config"; export default class DiscordController extends EventEmitter { private discordService!: DiscordService; @@ -20,8 +21,17 @@ export default class DiscordController extends EventEmitter { this.discordService = new DiscordService(); this.waterMeService = new WaterMeService(); // log when running - client.once("ready", () => { - console.log("Listening..."); + client.once("ready", async () => { + console.log("hello :)"); + + /*const channels = client.channels; + const channel = channels.cache.get(config.discord.channelId); + + if (channel?.isTextBased && channel?.isSendable()) { + await channel.send({ + content: "bin gerade erst aufgewacht :o", + }); + }*/ }); // listen for interactions client.on("interactionCreate", this.handleInteraction.bind(this)); diff --git a/src/services/greeting.service.ts b/src/services/greeting.service.ts index 519eb4c..e800ab6 100644 --- a/src/services/greeting.service.ts +++ b/src/services/greeting.service.ts @@ -1,7 +1,18 @@ import config from "config"; import client from "lib/client"; +import { getRandomInt } from "lib/utils"; export class GreetingService { + private greetContent = ["HALLOOOO"] as const; + private sleepContent = ["zzzzZZ..", "*schnarch*"] as const; + getContent(asleep: boolean) { + if (asleep) { + return this.sleepContent[getRandomInt(0, this.sleepContent.length - 1)]; + } + + return this.greetContent[getRandomInt(0, this.greetContent.length - 1)]; + } + async greet() { const channels = client.channels; @@ -11,4 +22,14 @@ export class GreetingService { await channel.send({ content: "HALLOOOO" }); } } + + async sleep() { + const channels = client.channels; + + const channel = channels.cache.get(config.discord.channelId); + + if (channel?.isTextBased && channel?.isSendable()) { + await channel.send({ content: this.getContent(true) }); + } + } } diff --git a/src/services/medication.service.ts b/src/services/medication.service.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/services/water-me.service.ts b/src/services/water-me.service.ts index 758c928..649112c 100644 --- a/src/services/water-me.service.ts +++ b/src/services/water-me.service.ts @@ -22,7 +22,7 @@ export class WaterMeService { getReply() { const thirstyReplies = [ - "... wow das wars schon???", + "... wow das wars schon??? ich brauche noch mehr wasser :(", "dankeeeee!!!! ich waer fast verdurstet :(((", "*roelpssssss*", ]; @@ -67,6 +67,7 @@ export class WaterMeService { const reply = this.getReply(); this.waterLevel++; + console.log(this.waterLevel); return { reply, @@ -77,7 +78,7 @@ export class WaterMeService { const result = this.waterMe(); const moreButton = new ButtonBuilder() - .setCustomId("more") + .setCustomId("moreWater") .setLabel("mehr") .setStyle(ButtonStyle.Secondary); diff --git a/src/tasks/greeting.task.ts b/src/tasks/greeting.task.ts index f57bd44..1abd451 100644 --- a/src/tasks/greeting.task.ts +++ b/src/tasks/greeting.task.ts @@ -4,7 +4,7 @@ import { GreetingService } from "services/greeting.service"; const greetingService = new GreetingService(); new CronJob( - "0 */1 * * * *", // cronTime + "0 */30 7-23 * * *", // cronTime async () => { console.log("called greeting"); await greetingService.greet(); @@ -13,4 +13,15 @@ new CronJob( true, // start "Europe/Berlin", // timeZone ); + +new CronJob( + "0 */30 0-6 * * *", // cronTime + async () => { + console.log("called greeting"); + await greetingService.sleep(); + }, // onTick + null, // onComplete + true, // start + "Europe/Berlin", // timeZone +); // job.start() is optional here because of the fourth parameter set to true. diff --git a/src/tasks/medication.task.ts b/src/tasks/medication.task.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/tasks/water-me.task.ts b/src/tasks/water-me.task.ts index 2e22e94..73b8e8a 100644 --- a/src/tasks/water-me.task.ts +++ b/src/tasks/water-me.task.ts @@ -4,7 +4,7 @@ import { WaterMeService } from "services/water-me.service"; const waterMeService = new WaterMeService(); new CronJob( - "0 0 */2 * * *", // cronTime + "0 0 0 */1 * *", // cronTime async () => { console.log("isThirsty()"); await waterMeService.isThirsty();