From f18c65d468856696a7f9b0affba872a05b39cc34 Mon Sep 17 00:00:00 2001 From: Histmy Date: Sat, 20 Nov 2021 02:19:12 +0100 Subject: [PATCH] autospink vole --- package-lock.json | 4 ++-- package.json | 2 +- src/modules/spink.ts | 54 ++++++++++++++++++++++++++++++++------------ 3 files changed, 43 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index b4a9f75..1cfc5b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "denim_3001", - "version": "3001.32.1", + "version": "3001.33.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "denim_3001", - "version": "3001.32.1", + "version": "3001.33.0", "license": "ISC", "dependencies": { "@discordjs/opus": "github:discordjs/opus", diff --git a/package.json b/package.json index 47e0b44..1e95be4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "denim_3001", - "version": "3001.32.1", + "version": "3001.33.0", "description": "Toto je velmi kvalitní bot.", "repository": { "url": "https://github.com/Histmy/Denim-Bot/" diff --git a/src/modules/spink.ts b/src/modules/spink.ts index a25a201..6583540 100644 --- a/src/modules/spink.ts +++ b/src/modules/spink.ts @@ -1,6 +1,6 @@ // Modul dedikovaný funkci spinkáček -import { GuildMember, Message, Role, VoiceState } from "discord.js"; +import { Client, GuildMember, Message, Presence, Role, VoiceState } from "discord.js"; import fetch from "node-fetch"; import { emouty } from "../utils/emotes"; import { Modul, Spinkackar, SRecord } from "../utils/types"; @@ -8,6 +8,7 @@ import { formatCas, formatter, oddiakritikovat, ping } from "../utils/utils"; let spinkacky: SRecord; const budouciSpinky: SRecord = {}; +const autoSpinky: SRecord = {}; const contactSpinkServer = async (akce: string, id: string, nick: string = "", avatar: string | null = "") => { const options = `heslo=${process.env.spinkPass}&akce=${akce}&id=${id}&nick=${encodeURIComponent(nick)}&avatar=${encodeURIComponent(avatar ?? "")}`; @@ -53,6 +54,21 @@ const ifUzRemove = (m: Message) => { return false; }; +const tovjemamvolepreceroliky = async (roliky: GuildMember) => { + const odpoved = await handleSpink("vstavacek", roliky); + if (!odpoved) return "uz jsi vzhuru ty hajzle"; + const cas = Number(odpoved.slice(3)); + const formatedCas = formatCas(cas); + let zpr = ""; + if (cas >= 57600) zpr = "mas dat more vstavacek uz kdyz vstanes retarde"; + else if (cas >= 43200) zpr = "extrémní bídák"; + else if (cas >= 36000) zpr = "fakt bídák"; + else if (cas < 30) zpr = "dobrej mikrospánek debile"; + else if (cas < 10800) zpr = "dobrej fake spink debile"; + + return `dobry rano hajzle ${roliky.user}\nspal sy ${formatedCas}\n${zpr}`; +}; + const exp: Modul = { more_komandy: { @@ -73,18 +89,7 @@ const exp: Modul = { run: async (mes) => { if (mes.author.bot) return emouty.sjeta; - const odpoved = await handleSpink("vstavacek", mes.member!); - if (!odpoved) return "uz jsi vzhuru ty hajzle"; - const cas = Number(odpoved.slice(3)); - const formatedCas = formatCas(cas); - let zpr = ""; - if (cas >= 57600) zpr = "mas dat more vstavacek uz kdyz vstanes retarde"; - else if (cas >= 43200) zpr = "extrémní bídák"; - else if (cas >= 36000) zpr = "fakt bídák"; - else if (cas < 30) zpr = "dobrej mikrospánek debile"; - else if (cas < 10800) zpr = "dobrej fake spink debile"; - - return `dobry rano hajzle\nspal sy ${formatedCas}\n${zpr}`; + return tovjemamvolepreceroliky(mes.member!); } }, @@ -147,7 +152,10 @@ const exp: Modul = { if (!ifUzRemove(mes)) return `spinkacek ale nemas naplanovanej ty kkte ${mes.author}`; return "to bylo teda trapny debile"; } - } + }, + + autospink: (mes) => + `autospink je ${autoSpinky[mes.author.id] ? (delete autoSpinky[mes.author.id], "vypnut") : (autoSpinky[mes.author.id] = mes.channelId, "zapnut")}` }, on_voiceStateUpdate: (bef: VoiceState, aft: VoiceState) => { @@ -203,6 +211,24 @@ const exp: Modul = { })(); return true; } + }, + + on_presenceUpdate: async (bef: Presence | null, aft: Presence) => { + if (!bef) return; + const befoff = bef.status == "offline"; + const aftoff = aft.status == "offline"; + const mamrdovinka = autoSpinky[aft.userId]; + if (mamrdovinka) { + if (!befoff && aftoff) { + handleSpink("spinkacek", aft.member!); + } + if (befoff && !aftoff) { + const client: Client = module.exports.client; + const kanel = client.channels.cache.get(mamrdovinka); + delete autoSpinky[aft.userId]; + if (kanel?.isText()) kanel.send(await tovjemamvolepreceroliky(aft.member!)); + } + } } };