summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorSho Sakuma <me@m1sk9.dev>2026-01-25 17:28:04 +0900
committerSho Sakuma <me@m1sk9.dev>2026-01-26 00:35:42 +0900
commit1dc724dbb96a0d1fdc36c5105538e67efa5b0b87 (patch)
treeff0481301e10fb8419fb7c6d2c2ab5689a9fe225 /engine
parentd35eff7d10d6bebd5231e7a5d59a8a13f241e1ee (diff)
downloadLunaticChat-1dc724dbb96a0d1fdc36c5105538e67efa5b0b87.tar.gz
LunaticChat-1dc724dbb96a0d1fdc36c5105538e67efa5b0b87.tar.bz2
LunaticChat-1dc724dbb96a0d1fdc36c5105538e67efa5b0b87.zip
feat: Add channel command
Diffstat (limited to 'engine')
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/channel/modal/ChannelData.kt1
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelAlreadyActiveException.kt8
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelMemberAlreadyException.kt8
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelRuntimeException.kt6
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNode.kt16
5 files changed, 39 insertions, 0 deletions
diff --git a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/channel/modal/ChannelData.kt b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/channel/modal/ChannelData.kt
index 6196ab7..67e86ec 100644
--- a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/channel/modal/ChannelData.kt
+++ b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/channel/modal/ChannelData.kt
@@ -7,4 +7,5 @@ data class ChannelData(
val version: Int = 1,
val channels: Map<String, Channel> = emptyMap(),
val members: Map<String, List<ChannelMember>> = emptyMap(),
+ val activeChannels: Map<String, String> = emptyMap(),
)
diff --git a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelAlreadyActiveException.kt b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelAlreadyActiveException.kt
new file mode 100644
index 0000000..6d88a73
--- /dev/null
+++ b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelAlreadyActiveException.kt
@@ -0,0 +1,8 @@
+package dev.m1sk9.lunaticChat.engine.exception
+
+import java.util.UUID
+
+class ChannelAlreadyActiveException(
+ val playerId: UUID,
+ val channelId: String,
+) : Exception("Channel $channelId is already active for player $playerId")
diff --git a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelMemberAlreadyException.kt b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelMemberAlreadyException.kt
new file mode 100644
index 0000000..deaacb1
--- /dev/null
+++ b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelMemberAlreadyException.kt
@@ -0,0 +1,8 @@
+package dev.m1sk9.lunaticChat.engine.exception
+
+import java.util.UUID
+
+class ChannelMemberAlreadyException(
+ playerId: UUID,
+ val channelId: String,
+) : Exception("Player $playerId is already a member of channel $channelId")
diff --git a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelRuntimeException.kt b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelRuntimeException.kt
new file mode 100644
index 0000000..4805489
--- /dev/null
+++ b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelRuntimeException.kt
@@ -0,0 +1,6 @@
+package dev.m1sk9.lunaticChat.engine.exception
+
+class ChannelRuntimeException(
+ message: String,
+ cause: Throwable? = null,
+) : Exception(message, cause)
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
index 9328423..b615fb7 100644
--- a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNode.kt
+++ b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNode.kt
@@ -13,6 +13,22 @@ sealed class LunaticChatPermissionNode(
object Status : LunaticChatPermissionNode("lunaticchat.command.lc.status")
+ object Channel : LunaticChatPermissionNode("lunaticchat.command.lc.channel")
+
+ object ChannelCreate : LunaticChatPermissionNode("lunaticchat.command.lc.channel.create")
+
+ object ChannelList : LunaticChatPermissionNode("lunaticchat.command.lc.channel.list")
+
+ object ChannelJoin : LunaticChatPermissionNode("lunaticchat.command.lc.channel.join")
+
+ object ChannelLeave : LunaticChatPermissionNode("lunaticchat.command.lc.channel.leave")
+
+ object ChannelSwitch : LunaticChatPermissionNode("lunaticchat.command.lc.channel.switch")
+
+ object ChannelStatus : LunaticChatPermissionNode("lunaticchat.command.lc.channel.status")
+
+ object ChannelDelete : LunaticChatPermissionNode("lunaticchat.command.lc.channel.delete")
+
object Spy : LunaticChatPermissionNode("lunaticchat.spy")
object NoticeUpdate : LunaticChatPermissionNode("lunaticchat.noticeUpdate")