summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
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")
+}