summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorSho Sakuma <me@m1sk9.dev>2026-03-17 20:34:18 +0900
committerSho Sakuma <me@m1sk9.dev>2026-03-17 20:34:18 +0900
commit634dd975038bb5b845c28ca6c96aa285ef94e965 (patch)
tree4eac57ae6533af6b5dc4c43cd5f4726aeb4f6a7a /engine
parent8b806705aa3de33964a0924f9b528189b7004087 (diff)
downloadLunaticChat-634dd975038bb5b845c28ca6c96aa285ef94e965.tar.gz
LunaticChat-634dd975038bb5b845c28ca6c96aa285ef94e965.tar.bz2
LunaticChat-634dd975038bb5b845c28ca6c96aa285ef94e965.zip
feat!: Remove ChatMode feature, followback channel chat mode
Diffstat (limited to 'engine')
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatMode.kt43
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatModeData.kt14
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChatModeStorageException.kt6
-rw-r--r--engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNode.kt4
-rw-r--r--engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatModeTest.kt33
-rw-r--r--engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelExceptionTest.kt18
-rw-r--r--engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNodeTest.kt7
-rw-r--r--engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/settings/SettingsDataClassesTest.kt36
8 files changed, 2 insertions, 159 deletions
diff --git a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatMode.kt b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatMode.kt
deleted file mode 100644
index 98bb79d..0000000
--- a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatMode.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package dev.m1sk9.lunaticChat.engine.chat
-
-/**
- * Represents the chat mode for a player.
- *
- * Chat mode determines where messages are sent by default:
- * - GLOBAL: All messages go to global chat (visible to everyone)
- * - CHANNEL: All messages go to the active channel (visible to channel members only)
- *
- * Players can temporarily override their mode by prefixing messages with '!'.
- * Chat mode is persisted and maintains its state across server restarts.
- * Default mode is GLOBAL.
- */
-enum class ChatMode {
- /**
- * Global chat mode - messages visible to all players.
- */
- GLOBAL,
-
- /**
- * Channel chat mode - messages visible only to channel members.
- * Requires player to be in an active channel.
- */
- CHANNEL,
- ;
-
- /**
- * Returns the opposite chat mode.
- * Used when player prefixes message with '!'.
- */
- fun toggle(): ChatMode =
- when (this) {
- GLOBAL -> CHANNEL
- CHANNEL -> GLOBAL
- }
-
- companion object {
- /**
- * Default chat mode for all players.
- */
- val DEFAULT = GLOBAL
- }
-}
diff --git a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatModeData.kt b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatModeData.kt
deleted file mode 100644
index b462ede..0000000
--- a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatModeData.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package dev.m1sk9.lunaticChat.engine.chat
-
-import dev.m1sk9.lunaticChat.engine.settings.UUIDSerializer
-import kotlinx.serialization.Serializable
-import java.util.UUID
-
-@Serializable
-data class ChatModeData(
- val modes: Map<
- @Serializable(with = UUIDSerializer::class)
- UUID,
- ChatMode,
- > = emptyMap(),
-)
diff --git a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChatModeStorageException.kt b/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChatModeStorageException.kt
deleted file mode 100644
index 85c1e69..0000000
--- a/engine/src/main/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChatModeStorageException.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package dev.m1sk9.lunaticChat.engine.exception
-
-class ChatModeStorageException(
- 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 72b7246..6291553 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
@@ -43,10 +43,6 @@ sealed class LunaticChatPermissionNode(
object ChannelOwnership : LunaticChatPermissionNode("lunaticchat.command.lc.channel.ownership")
- object ChatMode : LunaticChatPermissionNode("lunaticchat.command.lc.chatmode")
-
- object ChatModeToggle : LunaticChatPermissionNode("lunaticchat.command.lc.chatmode.toggle")
-
object VelocityStatus : LunaticChatPermissionNode("lunaticchat.command.lcv.status")
object Spy : LunaticChatPermissionNode("lunaticchat.spy")
diff --git a/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatModeTest.kt b/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatModeTest.kt
deleted file mode 100644
index 5656a14..0000000
--- a/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/chat/ChatModeTest.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-package dev.m1sk9.lunaticChat.engine.chat
-
-import kotlin.test.Test
-import kotlin.test.assertEquals
-
-class ChatModeTest {
- @Test
- fun `toggle should switch GLOBAL to CHANNEL`() {
- assertEquals(ChatMode.CHANNEL, ChatMode.GLOBAL.toggle())
- }
-
- @Test
- fun `toggle should switch CHANNEL to GLOBAL`() {
- assertEquals(ChatMode.GLOBAL, ChatMode.CHANNEL.toggle())
- }
-
- @Test
- fun `DEFAULT should be GLOBAL`() {
- assertEquals(ChatMode.GLOBAL, ChatMode.DEFAULT)
- }
-
- @Test
- fun `double toggle should return original mode`() {
- assertEquals(ChatMode.GLOBAL, ChatMode.GLOBAL.toggle().toggle())
- assertEquals(ChatMode.CHANNEL, ChatMode.CHANNEL.toggle().toggle())
- }
-
- @Test
- fun `enum should have exactly two values`() {
- assertEquals(2, ChatMode.entries.size)
- assertEquals(setOf(ChatMode.GLOBAL, ChatMode.CHANNEL), ChatMode.entries.toSet())
- }
-}
diff --git a/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelExceptionTest.kt b/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelExceptionTest.kt
index 955c96b..21cd5d1 100644
--- a/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelExceptionTest.kt
+++ b/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/exception/ChannelExceptionTest.kt
@@ -216,23 +216,6 @@ class ChannelExceptionTest {
assertEquals(cause, ex.cause)
}
- // --- ChatModeStorageException ---
-
- @Test
- fun `ChatModeStorageException should preserve message`() {
- val ex = ChatModeStorageException("chatmode error")
- assertEquals("chatmode error", ex.message)
- assertNull(ex.cause)
- }
-
- @Test
- fun `ChatModeStorageException should preserve cause`() {
- val cause = RuntimeException("io error")
- val ex = ChatModeStorageException("chatmode error", cause)
- assertEquals("chatmode error", ex.message)
- assertEquals(cause, ex.cause)
- }
-
// --- RequirePermissionException ---
@Test
@@ -273,7 +256,6 @@ class ChannelExceptionTest {
assertIs<Exception>(ChannelRuntimeException("test"))
assertIs<Exception>(ChannelStorageLoadException("test"))
assertIs<Exception>(ChannelStorageSaveException("test"))
- assertIs<Exception>(ChatModeStorageException("test"))
assertIs<Exception>(RequirePermissionException(listOf(LunaticChatPermissionNode.Lc)))
}
}
diff --git a/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNodeTest.kt b/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNodeTest.kt
index c9838f2..d6d74f7 100644
--- a/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNodeTest.kt
+++ b/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/permission/LunaticChatPermissionNodeTest.kt
@@ -27,8 +27,6 @@ class LunaticChatPermissionNodeTest {
LunaticChatPermissionNode.ChannelUnban,
LunaticChatPermissionNode.ChannelMod,
LunaticChatPermissionNode.ChannelOwnership,
- LunaticChatPermissionNode.ChatMode,
- LunaticChatPermissionNode.ChatModeToggle,
LunaticChatPermissionNode.VelocityStatus,
LunaticChatPermissionNode.Spy,
LunaticChatPermissionNode.NoticeUpdate,
@@ -46,8 +44,8 @@ class LunaticChatPermissionNodeTest {
}
@Test
- fun `should have 26 permission nodes`() {
- assertEquals(26, allNodes.size)
+ fun `should have 24 permission nodes`() {
+ assertEquals(24, allNodes.size)
}
@Test
@@ -57,7 +55,6 @@ class LunaticChatPermissionNodeTest {
assertEquals("lunaticchat.command.reply", LunaticChatPermissionNode.Reply.permissionNode)
assertEquals("lunaticchat.command.lc.settings", LunaticChatPermissionNode.Settings.permissionNode)
assertEquals("lunaticchat.command.lc.channel.create", LunaticChatPermissionNode.ChannelCreate.permissionNode)
- assertEquals("lunaticchat.command.lc.chatmode.toggle", LunaticChatPermissionNode.ChatModeToggle.permissionNode)
assertEquals("lunaticchat.command.lcv.status", LunaticChatPermissionNode.VelocityStatus.permissionNode)
assertEquals("lunaticchat.spy", LunaticChatPermissionNode.Spy.permissionNode)
assertEquals("lunaticchat.noticeupdate", LunaticChatPermissionNode.NoticeUpdate.permissionNode)
diff --git a/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/settings/SettingsDataClassesTest.kt b/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/settings/SettingsDataClassesTest.kt
index 8743af9..a7cc2ee 100644
--- a/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/settings/SettingsDataClassesTest.kt
+++ b/engine/src/test/kotlin/dev/m1sk9/lunaticChat/engine/settings/SettingsDataClassesTest.kt
@@ -1,7 +1,5 @@
package dev.m1sk9.lunaticChat.engine.settings
-import dev.m1sk9.lunaticChat.engine.chat.ChatMode
-import dev.m1sk9.lunaticChat.engine.chat.ChatModeData
import dev.m1sk9.lunaticChat.engine.converter.CacheData
import kotlinx.serialization.json.Json
import java.util.UUID
@@ -130,38 +128,4 @@ class SettingsDataClassesTest {
assertEquals(original.version, deserialized.version)
assertEquals(original.entries, deserialized.entries)
}
-
- // --- ChatModeData ---
-
- @Test
- fun `ChatModeData default should have empty modes map`() {
- val data = ChatModeData()
- assertTrue(data.modes.isEmpty())
- }
-
- @Test
- fun `ChatModeData serialization round-trip should preserve UUID-keyed map`() {
- val original =
- ChatModeData(
- modes =
- mapOf(
- testUUID to ChatMode.CHANNEL,
- testUUID2 to ChatMode.GLOBAL,
- ),
- )
-
- val serialized = json.encodeToString(ChatModeData.serializer(), original)
- val deserialized = json.decodeFromString(ChatModeData.serializer(), serialized)
-
- assertEquals(original.modes.size, deserialized.modes.size)
- assertEquals(ChatMode.CHANNEL, deserialized.modes[testUUID])
- assertEquals(ChatMode.GLOBAL, deserialized.modes[testUUID2])
- }
-
- @Test
- fun `ChatModeData serialized should contain UUID strings`() {
- val data = ChatModeData(modes = mapOf(testUUID to ChatMode.GLOBAL))
- val serialized = json.encodeToString(ChatModeData.serializer(), data)
- assertTrue(serialized.contains(testUUID.toString()))
- }
}