summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorSho Sakuma <me@m1sk9.dev>2026-01-07 12:57:32 +0900
committerSho Sakuma <me@m1sk9.dev>2026-01-07 12:57:38 +0900
commitf6f2ec77fa773250b2663491628f14e5baa92f5d (patch)
tree29ede64472da8c7431bc4515d9f76b610a1a43c6 /engine
parent122af44500427cf61c979896149d1f08233a63d4 (diff)
downloadLunaticChat-f6f2ec77fa773250b2663491628f14e5baa92f5d.tar.gz
LunaticChat-f6f2ec77fa773250b2663491628f14e5baa92f5d.tar.bz2
LunaticChat-f6f2ec77fa773250b2663491628f14e5baa92f5d.zip
feat: Add permission collector
Diffstat (limited to 'engine')
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/RequirePermissionException.kt12
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNode.kt9
2 files changed, 21 insertions, 0 deletions
diff --git a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/RequirePermissionException.kt b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/RequirePermissionException.kt
new file mode 100644
index 0000000..dace909
--- /dev/null
+++ b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/RequirePermissionException.kt
@@ -0,0 +1,12 @@
+package dev.m1sk9.lunaticChat.engine.exception
+
+import dev.m1sk9.lunaticChat.engine.permission.LunaticChatPermissionNode
+
+/**
+ * Exception thrown when required permissions are missing.
+ *
+ * @param permissions The list of missing permissions.
+ */
+class RequirePermissionException(
+ permissions: List<LunaticChatPermissionNode>,
+) : Exception("Missing required permissions: ${permissions.joinToString { it.permissionNode }}")
diff --git a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNode.kt b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNode.kt
new file mode 100644
index 0000000..c7f4be6
--- /dev/null
+++ b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNode.kt
@@ -0,0 +1,9 @@
+package dev.m1sk9.lunaticChat.engine.permission
+
+sealed class LunaticChatPermissionNode(
+ val permissionNode: String,
+) {
+ object Tell : LunaticChatPermissionNode("lunaticchat.command.tell")
+
+ object Reply : LunaticChatPermissionNode("lunaticchat.command.reply")
+}