From c669943f87e81324241ee32246e3e12af7eb4b1e Mon Sep 17 00:00:00 2001 From: dalbodeule <11470513+dalbodeule@users.noreply.github.com> Date: Sat, 27 Jul 2024 10:13:33 +0900 Subject: [PATCH] manager can add/update/delete commands --- .../mori/chzzk_bot/discord/commands/AddCommand.kt | 13 ++++++++++--- .../discord/commands/AddManagerCommand.kt | 2 ++ .../chzzk_bot/discord/commands/AlertCommand.kt | 13 ++++++++++--- .../chzzk_bot/discord/commands/RemoveCommand.kt | 14 +++++++++++--- .../chzzk_bot/discord/commands/UpdateCommand.kt | 14 +++++++++++--- 5 files changed, 44 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AddCommand.kt b/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AddCommand.kt index 4ddcb12..125263d 100644 --- a/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AddCommand.kt +++ b/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AddCommand.kt @@ -10,6 +10,7 @@ import space.mori.chzzk_bot.chzzk.ChzzkHandler import space.mori.chzzk_bot.chzzk.Connector import space.mori.chzzk_bot.discord.CommandInterface import space.mori.chzzk_bot.services.CommandService +import space.mori.chzzk_bot.services.ManagerService import space.mori.chzzk_bot.services.UserService object AddCommand : CommandInterface { @@ -30,12 +31,18 @@ object AddCommand : CommandInterface { return } - val user = UserService.getUser(event.user.idLong) - if(user == null) { - event.hook.sendMessage("치지직 계정을 찾을 수 없습니다.").queue() + var user = UserService.getUser(event.user.idLong) + val manager = event.guild?.idLong?.let { ManagerService.getUser(it, event.user.idLong) } + if(user == null && manager == null) { + event.hook.sendMessage("당신은 이 명령어를 사용할 수 없습니다.").queue() return } + if (user == null) { + user = manager!!.user + ManagerService.updateManager(user, event.user.idLong, event.user.effectiveName) + } + val commands = CommandService.getCommands(user) if (commands.any { it.command == label }) { event.hook.sendMessage("$label 명령어는 이미 있습니다! 업데이트 명령어를 써주세요.").queue() diff --git a/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AddManagerCommand.kt b/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AddManagerCommand.kt index e2cbdb3..c55c4c6 100644 --- a/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AddManagerCommand.kt +++ b/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AddManagerCommand.kt @@ -36,6 +36,8 @@ object AddManagerCommand : CommandInterface { try { ManagerService.saveManager(user, manager.idLong, manager.effectiveName) + if(user.liveAlertGuild == null) + UserService.updateLiveAlert(user.id.value, event.guild!!.idLong, event.channelIdLong, "") event.hook.sendMessage("등록이 완료되었습니다. ${manager.effectiveName}").queue() } catch (e: Exception) { event.hook.sendMessage("에러가 발생했습니다.").queue() diff --git a/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AlertCommand.kt b/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AlertCommand.kt index b12511f..0849c8c 100644 --- a/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AlertCommand.kt +++ b/src/main/kotlin/space/mori/chzzk_bot/discord/commands/AlertCommand.kt @@ -9,6 +9,7 @@ import org.slf4j.LoggerFactory import space.mori.chzzk_bot.chzzk.ChzzkHandler import space.mori.chzzk_bot.chzzk.Connector import space.mori.chzzk_bot.discord.CommandInterface +import space.mori.chzzk_bot.services.ManagerService import space.mori.chzzk_bot.services.UserService object AlertCommand : CommandInterface { @@ -22,12 +23,18 @@ object AlertCommand : CommandInterface { val channel = event.getOption("channel")?.asChannel val content = event.getOption("content")?.asString - val user = UserService.getUser(event.user.idLong) - if(user == null) { - event.hook.sendMessage("치지직 계정을 찾을 수 없습니다.").queue() + var user = UserService.getUser(event.user.idLong) + val manager = event.guild?.idLong?.let { ManagerService.getUser(it, event.user.idLong) } + if(user == null && manager == null) { + event.hook.sendMessage("당신은 이 명령어를 사용할 수 없습니다.").queue() return } + if (user == null) { + user = manager!!.user + ManagerService.updateManager(user, event.user.idLong, event.user.effectiveName) + } + val chzzkChannel = Connector.getChannel(user.token) try { diff --git a/src/main/kotlin/space/mori/chzzk_bot/discord/commands/RemoveCommand.kt b/src/main/kotlin/space/mori/chzzk_bot/discord/commands/RemoveCommand.kt index d16faad..bd3f123 100644 --- a/src/main/kotlin/space/mori/chzzk_bot/discord/commands/RemoveCommand.kt +++ b/src/main/kotlin/space/mori/chzzk_bot/discord/commands/RemoveCommand.kt @@ -10,6 +10,7 @@ import space.mori.chzzk_bot.chzzk.ChzzkHandler import space.mori.chzzk_bot.chzzk.Connector import space.mori.chzzk_bot.discord.CommandInterface import space.mori.chzzk_bot.services.CommandService +import space.mori.chzzk_bot.services.ManagerService import space.mori.chzzk_bot.services.UserService object RemoveCommand : CommandInterface { @@ -26,11 +27,18 @@ object RemoveCommand : CommandInterface { return } - val user = UserService.getUser(event.user.idLong) - if(user == null) { - event.hook.sendMessage("치지직 계정을 찾을 수 없습니다.").queue() + var user = UserService.getUser(event.user.idLong) + val manager = event.guild?.idLong?.let { ManagerService.getUser(it, event.user.idLong) } + if(user == null && manager == null) { + event.hook.sendMessage("당신은 이 명령어를 사용할 수 없습니다.").queue() return } + + if (user == null) { + user = manager!!.user + ManagerService.updateManager(user, event.user.idLong, event.user.effectiveName) + } + val chzzkChannel = Connector.getChannel(user.token) try { diff --git a/src/main/kotlin/space/mori/chzzk_bot/discord/commands/UpdateCommand.kt b/src/main/kotlin/space/mori/chzzk_bot/discord/commands/UpdateCommand.kt index 8a729d6..7913a0c 100644 --- a/src/main/kotlin/space/mori/chzzk_bot/discord/commands/UpdateCommand.kt +++ b/src/main/kotlin/space/mori/chzzk_bot/discord/commands/UpdateCommand.kt @@ -10,6 +10,7 @@ import space.mori.chzzk_bot.chzzk.ChzzkHandler import space.mori.chzzk_bot.chzzk.Connector import space.mori.chzzk_bot.discord.CommandInterface import space.mori.chzzk_bot.services.CommandService +import space.mori.chzzk_bot.services.ManagerService import space.mori.chzzk_bot.services.UserService object UpdateCommand : CommandInterface { @@ -30,11 +31,18 @@ object UpdateCommand : CommandInterface { return } - val user = UserService.getUser(event.user.idLong) - if(user == null) { - event.hook.sendMessage("치지직 계정을 찾을 수 없습니다.").queue() + var user = UserService.getUser(event.user.idLong) + val manager = event.guild?.idLong?.let { ManagerService.getUser(it, event.user.idLong) } + if(user == null && manager == null) { + event.hook.sendMessage("당신은 이 명령어를 사용할 수 없습니다.").queue() return } + + if (user == null) { + user = manager!!.user + ManagerService.updateManager(user, event.user.idLong, event.user.effectiveName) + } + val chzzkChannel = Connector.getChannel(user.token) try {