summary refs log tree commit diff stats
path: root/src/main/kotlin/space/autistic
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/space/autistic')
-rw-r--r--src/main/kotlin/space/autistic/uwumode/UwuMode.kt65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/main/kotlin/space/autistic/uwumode/UwuMode.kt b/src/main/kotlin/space/autistic/uwumode/UwuMode.kt
new file mode 100644
index 0000000..3e98364
--- /dev/null
+++ b/src/main/kotlin/space/autistic/uwumode/UwuMode.kt
@@ -0,0 +1,65 @@
+package space.autistic.uwumode
+
+import com.mojang.brigadier.arguments.BoolArgumentType;
+import com.mojang.brigadier.arguments.IntegerArgumentType;
+import com.mojang.brigadier.context.CommandContext;
+
+import net.fabricmc.fabric.api.client.command.v1.ClientCommandManager;
+import net.fabricmc.fabric.api.client.command.v1.FabricClientCommandSource;
+import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
+
+// For support join https://discord.gg/v6v4pMv
+
+var enabled = false
+var timer = 0
+
+fun uwutimer(c: CommandContext<FabricClientCommandSource>): Int {
+    val time = IntegerArgumentType.getInteger(c, "seconds");
+    if (timer != time) {
+        timer = time*20;
+        enabled = true;
+        return 1
+    }
+    return 0
+}
+
+fun uwumode(c: CommandContext<FabricClientCommandSource>): Int {
+    val enable = BoolArgumentType.getBool(c, "enable");
+    if (timer > 0 || enabled != enable) {
+        timer = 0;
+        enabled = enable;
+        return 1
+    }
+    return 0
+}
+
+@Suppress("unused")
+fun init() {
+    // This mod is client-only, so this is the client init.
+
+    ClientCommandManager.DISPATCHER.register(
+        ClientCommandManager.literal("uwu")
+        .then(
+            ClientCommandManager.argument(
+                "seconds",
+                IntegerArgumentType.integer(0, 0x7FFFFFFF/20)
+            ).executes(::uwutimer)
+        )
+        .then(
+            ClientCommandManager.argument(
+                "enable",
+                BoolArgumentType.bool()
+            ).executes(::uwumode)
+        )
+    );
+
+    ClientTickEvents.START_CLIENT_TICK.register {
+        if (timer > 0) {
+            --timer;
+            if (timer == 0) {
+                enabled = false;
+            }
+        }
+    };
+}
+