From 8ec9203074a5fc85007c88cc18335957bf85e558 Mon Sep 17 00:00:00 2001 From: junghyun397 Date: Wed, 19 Jun 2024 20:58:37 +0900 Subject: [PATCH] refactor: rename shift extension function to replaceIf --- .../kotlin/core/interact/commands/ExpireGameCommand.kt | 4 ++-- .../kotlin/core/interact/commands/gameProcedures.kt | 4 ++-- discord/build.gradle.kts | 2 +- .../src/main/kotlin/discord/interact/GuildManager.kt | 8 ++++---- .../discord/interact/message/DiscordMessageBuilder.kt | 6 +++--- .../interact/parse/parsers/HelpCommandParser.kt | 4 ++-- discord/src/main/kotlin/discord/route/commandRouter.kt | 10 +++++----- .../src/main/kotlin/discord/route/componentRouter.kt | 2 +- discord/src/main/kotlin/discord/route/guildRouter.kt | 2 +- .../src/main/kotlin/discord/route/reactionRouter.kt | 2 +- discord/src/main/kotlin/discord/routines.kt | 4 ++-- utils/src/main/kotlin/utils/lang/operators.kt | 2 +- 12 files changed, 25 insertions(+), 25 deletions(-) diff --git a/core/src/main/kotlin/core/interact/commands/ExpireGameCommand.kt b/core/src/main/kotlin/core/interact/commands/ExpireGameCommand.kt index a1586a6..4fbba7d 100644 --- a/core/src/main/kotlin/core/interact/commands/ExpireGameCommand.kt +++ b/core/src/main/kotlin/core/interact/commands/ExpireGameCommand.kt @@ -11,7 +11,7 @@ import core.session.GameManager import core.session.SessionManager import core.session.SwapType import core.session.entities.* -import utils.lang.shift +import utils.lang.replaceIf import utils.lang.tuple import utils.structs.IO import utils.structs.flatMap @@ -42,7 +42,7 @@ class ExpireGameCommand( val noticePublisher = publisher.plain val boardPublisher = noticePublisher - .shift(guildSession.config.swapType == SwapType.EDIT && message != null) { publisher.edit(message!!) } + .replaceIf(guildSession.config.swapType == SwapType.EDIT && message != null) { publisher.edit(message!!) } val finishIO = buildFinishProcedure(bot, service, boardPublisher, guildSession.config, session, finishedSession) diff --git a/core/src/main/kotlin/core/interact/commands/gameProcedures.kt b/core/src/main/kotlin/core/interact/commands/gameProcedures.kt index 601b667..fae6890 100644 --- a/core/src/main/kotlin/core/interact/commands/gameProcedures.kt +++ b/core/src/main/kotlin/core/interact/commands/gameProcedures.kt @@ -12,7 +12,7 @@ import core.session.HintType import core.session.SessionManager import core.session.SwapType import core.session.entities.* -import utils.lang.shift +import utils.lang.replaceIf import utils.lang.tuple import utils.structs.* @@ -52,7 +52,7 @@ fun buildBoardProcedure( } return service.buildBoard(publisher, config.language.container, config.boardStyle.renderer, config.markType, session) - .shift(session.board.winner().isEmpty) { io -> io.addComponents( + .replaceIf(session.board.winner().isEmpty) { io -> io.addComponents( when (session) { is SwapStageOpeningSession -> service.buildSwapButtons(config.language.container) is BranchingStageOpeningSession -> service.buildBranchingButtons(config.language.container) diff --git a/discord/build.gradle.kts b/discord/build.gradle.kts index c4fca93..291f6b2 100644 --- a/discord/build.gradle.kts +++ b/discord/build.gradle.kts @@ -13,7 +13,7 @@ dependencies { implementation(project(":utils")) implementation(project(":core")) - implementation("net.dv8tion:JDA:5.0.0-beta.19") + implementation("net.dv8tion:JDA:5.0.0-beta.24") implementation("com.github.minndevelopment:jda-ktx:e8b0a7080cc234727abf5a83871ae0c9b6603a58") implementation("com.github.minndevelopment:jda-reactor:e01a635") diff --git a/discord/src/main/kotlin/discord/interact/GuildManager.kt b/discord/src/main/kotlin/discord/interact/GuildManager.kt index 1aa5108..bd28022 100644 --- a/discord/src/main/kotlin/discord/interact/GuildManager.kt +++ b/discord/src/main/kotlin/discord/interact/GuildManager.kt @@ -30,7 +30,7 @@ import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel import net.dv8tion.jda.api.interactions.commands.Command import net.dv8tion.jda.api.requests.RestAction import utils.lang.memoize -import utils.lang.shift +import utils.lang.replaceIf import utils.lang.tuple import utils.structs.Option import utils.structs.getOrNull @@ -77,7 +77,7 @@ object GuildManager { val localCommands = commands.toSet() val serverCommands = buildableCommandIndexes(container) - .shift(container == Language.ENG.container) { engBuildableCommandIndexes } + .replaceIf(container == Language.ENG.container) { engBuildableCommandIndexes } val deprecates = localCommands .filterNot { command -> serverCommands.containsKey(command.name) } @@ -106,7 +106,7 @@ object GuildManager { suspend fun archiveSession(archiveChannel: TextChannel, session: RenjuSession, archivePolicy: ArchivePolicy) { if (session.board.moves() < 20 || archivePolicy == ArchivePolicy.PRIVACY) return - val modSession = session.shift(archivePolicy == ArchivePolicy.BY_ANONYMOUS) { + val modSession = session.replaceIf(archivePolicy == ArchivePolicy.BY_ANONYMOUS) { when (session) { is AiGameSession -> session.copy(owner = anonymousUser) is PvpGameSession -> session.copy(owner = anonymousUser, opponent = anonymousUser) @@ -114,7 +114,7 @@ object GuildManager { } val modResult = modSession.gameResult.map { result -> - result.shift(archivePolicy == ArchivePolicy.BY_ANONYMOUS) { + result.replaceIf(archivePolicy == ArchivePolicy.BY_ANONYMOUS) { when (result) { is GameResult.Win -> result.copy( winner = result.winner.switchToAnonymousUser(), diff --git a/discord/src/main/kotlin/discord/interact/message/DiscordMessageBuilder.kt b/discord/src/main/kotlin/discord/interact/message/DiscordMessageBuilder.kt index 270d570..b5d4a05 100644 --- a/discord/src/main/kotlin/discord/interact/message/DiscordMessageBuilder.kt +++ b/discord/src/main/kotlin/discord/interact/message/DiscordMessageBuilder.kt @@ -7,7 +7,7 @@ import net.dv8tion.jda.api.requests.FluentRestAction import net.dv8tion.jda.api.utils.FileUpload import net.dv8tion.jda.api.utils.messages.MessageCreateRequest import net.dv8tion.jda.api.utils.messages.MessageEditRequest -import utils.lang.shift +import utils.lang.replaceIf import utils.structs.IO import utils.structs.Option import java.io.InputStream @@ -77,8 +77,8 @@ abstract class MessageEditRequestMixin>( protected fun applyAttachments(): T = this.original - .shift(this.files.isNotEmpty()) { it.setFiles(this.files) } - .shift(this.components.isNotEmpty()) { it.setComponents(this.components) } + .replaceIf(this.files.isNotEmpty()) { it.setFiles(this.files) } + .replaceIf(this.components.isNotEmpty()) { it.setComponents(this.components) } } diff --git a/discord/src/main/kotlin/discord/interact/parse/parsers/HelpCommandParser.kt b/discord/src/main/kotlin/discord/interact/parse/parsers/HelpCommandParser.kt index 7216124..f1ac685 100644 --- a/discord/src/main/kotlin/discord/interact/parse/parsers/HelpCommandParser.kt +++ b/discord/src/main/kotlin/discord/interact/parse/parsers/HelpCommandParser.kt @@ -17,7 +17,7 @@ import discord.interact.parse.ParsableCommand import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent import net.dv8tion.jda.api.events.message.MessageReceivedEvent import net.dv8tion.jda.api.requests.restaction.CommandListUpdateAction -import utils.lang.shift +import utils.lang.replaceIf import utils.structs.Either object HelpCommandParser : CommandParser, ParsableCommand, BuildableCommand { @@ -100,7 +100,7 @@ object HelpCommandParser : CommandParser, ParsableCommand, BuildableCommand { } override fun buildCommandData(action: CommandListUpdateAction, container: LanguageContainer) = - action.shift(container != Language.ENG.container) { + action.replaceIf(container != Language.ENG.container) { this.buildHelpCommandData(action, container) } diff --git a/discord/src/main/kotlin/discord/route/commandRouter.kt b/discord/src/main/kotlin/discord/route/commandRouter.kt index 902eec4..bb3820a 100644 --- a/discord/src/main/kotlin/discord/route/commandRouter.kt +++ b/discord/src/main/kotlin/discord/route/commandRouter.kt @@ -31,7 +31,7 @@ import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEve import net.dv8tion.jda.api.events.message.MessageReceivedEvent import reactor.core.publisher.Mono import utils.assets.LinuxTime -import utils.lang.shift +import utils.lang.replaceIf import utils.structs.* import java.util.concurrent.TimeUnit @@ -61,7 +61,7 @@ private fun buildPermissionNode(context: UserInteractionContext<*>, parsableComm ) private fun buildAnnounceNode(context: UserInteractionContext, command: Command): Command = - command.shift((context.user.announceId ?: -1) < (AnnounceRepository.getLatestAnnounceId(context.bot.dbConnection) ?: -1)) { + command.replaceIf((context.user.announceId ?: -1) < (AnnounceRepository.getLatestAnnounceId(context.bot.dbConnection) ?: -1)) { AnnounceCommand(command) } @@ -72,7 +72,7 @@ private fun buildUpdateProfileNode(context: UserInteractionContext - export(context.discordConfig, io, context.guild, context.jdaGuild) + executeIO(context.discordConfig, io, context.jdaGuild) report }, onFailure = { throwable -> @@ -254,7 +254,7 @@ fun textCommandRouter(context: UserInteractionContext): Mo } ).fold( onSuccess = { (io, report) -> - export(context.discordConfig, io, context.guild, context.jdaGuild) + executeIO(context.discordConfig, io, context.jdaGuild) report }, onFailure = { throwable -> diff --git a/discord/src/main/kotlin/discord/route/componentRouter.kt b/discord/src/main/kotlin/discord/route/componentRouter.kt index 72d4b37..cdd55a6 100644 --- a/discord/src/main/kotlin/discord/route/componentRouter.kt +++ b/discord/src/main/kotlin/discord/route/componentRouter.kt @@ -95,7 +95,7 @@ fun buttonInteractionRouter(context: UserInteractionContext - export(context.discordConfig, io, context.guild, context.jdaGuild, messageRef) + executeIO(context.discordConfig, io, context.jdaGuild, messageRef) report }, onFailure = { throwable -> diff --git a/discord/src/main/kotlin/discord/route/guildRouter.kt b/discord/src/main/kotlin/discord/route/guildRouter.kt index e4c4867..c907b1b 100644 --- a/discord/src/main/kotlin/discord/route/guildRouter.kt +++ b/discord/src/main/kotlin/discord/route/guildRouter.kt @@ -62,7 +62,7 @@ fun guildJoinRouter(context: InternalInteractionContext): Mono - export(context.discordConfig, io, context.guild, context.jdaGuild) + executeIO(context.discordConfig, io, context.jdaGuild) report }, onFailure = { throwable -> diff --git a/discord/src/main/kotlin/discord/route/reactionRouter.kt b/discord/src/main/kotlin/discord/route/reactionRouter.kt index 39f0c49..906a72b 100644 --- a/discord/src/main/kotlin/discord/route/reactionRouter.kt +++ b/discord/src/main/kotlin/discord/route/reactionRouter.kt @@ -78,7 +78,7 @@ fun reactionRouter(context: UserInteractionContext) ), ).fold( onSuccess = { (io, report) -> - export(context.discordConfig, io, context.guild, context.jdaGuild, messageRef) + executeIO(context.discordConfig, io, context.jdaGuild, messageRef) report }, onFailure = { throwable -> diff --git a/discord/src/main/kotlin/discord/routines.kt b/discord/src/main/kotlin/discord/routines.kt index ef93eb8..d2ddf3e 100644 --- a/discord/src/main/kotlin/discord/routines.kt +++ b/discord/src/main/kotlin/discord/routines.kt @@ -15,7 +15,7 @@ import discord.interact.TaskContext import discord.interact.message.DiscordMessagingService import discord.interact.message.MessageCreateAdaptor import discord.interact.message.MessageEditAdaptor -import discord.route.export +import discord.route.executeIO import kotlinx.coroutines.reactor.asFlux import net.dv8tion.jda.api.JDA import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel @@ -43,7 +43,7 @@ private suspend fun executeCommand( ) ).fold( onSuccess = { (io, report) -> - export(discordConfig, io, taskContext.guild, jdaGuild) + executeIO(discordConfig, io, jdaGuild) report }, onFailure = { throwable -> diff --git a/utils/src/main/kotlin/utils/lang/operators.kt b/utils/src/main/kotlin/utils/lang/operators.kt index 2df842f..84d86f3 100644 --- a/utils/src/main/kotlin/utils/lang/operators.kt +++ b/utils/src/main/kotlin/utils/lang/operators.kt @@ -2,7 +2,7 @@ package utils.lang import utils.structs.Quadruple -inline fun T.shift(condition: Boolean, produce: (T) -> T): T = +inline fun T.replaceIf(condition: Boolean, produce: (T) -> T): T = if (condition) produce(this) else