diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/uwuify.ts | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/src/plugins/uwuify.ts b/src/plugins/uwuify.ts index c3a879c..aa38167 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); + }, }); |