From 9d62dec6b94996a08b95ced8c6ee21af69d07140 Mon Sep 17 00:00:00 2001 From: PandaNinjas Date: Mon, 22 May 2023 18:13:21 -0700 Subject: [PATCH] Uwufy: Add option to uwufy all messages (#1036) Co-authored-by: V --- src/plugins/uwuify.ts | 37 ++++++++++++++++++++++++++++++++++--- src/utils/constants.ts | 4 ++++ 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/src/plugins/uwuify.ts b/src/plugins/uwuify.ts index c3a879c7..aa38167d 100644 --- a/src/plugins/uwuify.ts +++ b/src/plugins/uwuify.ts @@ -17,8 +17,10 @@ */ import { findOption, RequiredMessageOption } from "@api/Commands"; +import { addPreEditListener, addPreSendListener, MessageObject, removePreEditListener, removePreSendListener } from "@api/MessageEvents"; +import { definePluginSettings } from "@api/Settings"; import { Devs } from "@utils/constants"; -import definePlugin from "@utils/types"; +import definePlugin, { OptionType } from "@utils/types"; const endings = [ "rawr x3", @@ -65,6 +67,15 @@ const replacements = [ ["meow", "nya~"], ]; +const settings = definePluginSettings({ + uwuEveryMessage: { + description: "Make every single message uwuified", + type: OptionType.BOOLEAN, + default: false, + restartNeeded: false + } +}); + function selectRandomElement(arr) { // generate a random index based on the length of the array const randomIndex = Math.floor(Math.random() * arr.length); @@ -94,8 +105,9 @@ function uwuify(message: string): string { export default definePlugin({ name: "UwUifier", description: "Simply uwuify commands", - authors: [Devs.echo, Devs.skyevg], - dependencies: ["CommandsAPI"], + authors: [Devs.echo, Devs.skyevg, Devs.PandaNinjas], + dependencies: ["CommandsAPI", "MessageEventsAPI"], + settings, commands: [ { @@ -108,4 +120,23 @@ export default definePlugin({ }), }, ], + + onSend(msg: MessageObject) { + // Only run when it's enabled + if (settings.store.uwuEveryMessage) { + msg.content = uwuify(msg.content); + } + }, + + start() { + this.preSend = addPreSendListener((_, msg) => this.onSend(msg)); + this.preEdit = addPreEditListener((_cid, _mid, msg) => + this.onSend(msg) + ); + }, + + stop() { + removePreSendListener(this.preSend); + removePreEditListener(this.preEdit); + }, }); diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 9671ac39..91c5929c 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -299,6 +299,10 @@ export const Devs = /* #__PURE__*/ Object.freeze({ name: "carince", id: 818323528755314698n }, + PandaNinjas: { + name: "PandaNinjas", + id: 455128749071925248n + }, CatNoir: { name: "CatNoir", id: 260371016348336128n