aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/uwuify.ts37
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);
+ },
});