Skip to content

Commit

Permalink
refactor: rename shift extension function to replaceIf
Browse files Browse the repository at this point in the history
  • Loading branch information
junghyun397 committed Jun 19, 2024
1 parent af55b44 commit 8ec9203
Show file tree
Hide file tree
Showing 12 changed files with 25 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions core/src/main/kotlin/core/interact/commands/gameProcedures.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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.*

Expand Down Expand Up @@ -52,7 +52,7 @@ fun <A, B> 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)
Expand Down
2 changes: 1 addition & 1 deletion discord/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
8 changes: 4 additions & 4 deletions discord/src/main/kotlin/discord/interact/GuildManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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) }
Expand Down Expand Up @@ -106,15 +106,15 @@ 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)
}
}

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(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -77,8 +77,8 @@ abstract class MessageEditRequestMixin<T : MessageEditRequest<T>>(

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) }

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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)
}

Expand Down
10 changes: 5 additions & 5 deletions discord/src/main/kotlin/discord/route/commandRouter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -61,7 +61,7 @@ private fun buildPermissionNode(context: UserInteractionContext<*>, parsableComm
)

private fun <T : Event> buildAnnounceNode(context: UserInteractionContext<T>, 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)
}

Expand All @@ -72,7 +72,7 @@ private fun <T : Event> buildUpdateProfileNode(context: UserInteractionContext<T
val maybeThenUser = Option.cond(user != context.user) { user }
val maybeThenGuild = Option.cond(guild != context.guild) { guild }

return command.shift(maybeThenUser.isDefined || maybeThenGuild.isDefined) {
return command.replaceIf(maybeThenUser.isDefined || maybeThenGuild.isDefined) {
UpdateProfileCommand(command, maybeThenUser, maybeThenGuild)
}
}
Expand Down Expand Up @@ -174,7 +174,7 @@ fun slashCommandRouter(context: UserInteractionContext<SlashCommandInteractionEv
}
).fold(
onSuccess = { (io, report) ->
export(context.discordConfig, io, context.guild, context.jdaGuild)
executeIO(context.discordConfig, io, context.jdaGuild)
report
},
onFailure = { throwable ->
Expand Down Expand Up @@ -254,7 +254,7 @@ fun textCommandRouter(context: UserInteractionContext<MessageReceivedEvent>): Mo
}
).fold(
onSuccess = { (io, report) ->
export(context.discordConfig, io, context.guild, context.jdaGuild)
executeIO(context.discordConfig, io, context.jdaGuild)
report
},
onFailure = { throwable ->
Expand Down
2 changes: 1 addition & 1 deletion discord/src/main/kotlin/discord/route/componentRouter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ fun buttonInteractionRouter(context: UserInteractionContext<GenericComponentInte
}
).fold(
onSuccess = { (io, report) ->
export(context.discordConfig, io, context.guild, context.jdaGuild, messageRef)
executeIO(context.discordConfig, io, context.jdaGuild, messageRef)
report
},
onFailure = { throwable ->
Expand Down
2 changes: 1 addition & 1 deletion discord/src/main/kotlin/discord/route/guildRouter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ fun guildJoinRouter(context: InternalInteractionContext<GuildJoinEvent>): Mono<R
)
).fold(
onSuccess = { (io, report) ->
export(context.discordConfig, io, context.guild, context.jdaGuild)
executeIO(context.discordConfig, io, context.jdaGuild)
report
},
onFailure = { throwable ->
Expand Down
2 changes: 1 addition & 1 deletion discord/src/main/kotlin/discord/route/reactionRouter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ fun reactionRouter(context: UserInteractionContext<GenericMessageReactionEvent>)
),
).fold(
onSuccess = { (io, report) ->
export(context.discordConfig, io, context.guild, context.jdaGuild, messageRef)
executeIO(context.discordConfig, io, context.jdaGuild, messageRef)
report
},
onFailure = { throwable ->
Expand Down
4 changes: 2 additions & 2 deletions discord/src/main/kotlin/discord/routines.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 ->
Expand Down
2 changes: 1 addition & 1 deletion utils/src/main/kotlin/utils/lang/operators.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package utils.lang

import utils.structs.Quadruple

inline fun <T> T.shift(condition: Boolean, produce: (T) -> T): T =
inline fun <T> T.replaceIf(condition: Boolean, produce: (T) -> T): T =
if (condition)
produce(this)
else
Expand Down

0 comments on commit 8ec9203

Please sign in to comment.