From 97e322b12db8aaaf23bcb1dd81f5bea20f641b58 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 20 May 2023 12:13:12 +0000 Subject: [PATCH 001/142] chore(deps): update actions/download-artifact action to v3 --- .github/workflows/build_and_deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_and_deploy.yml b/.github/workflows/build_and_deploy.yml index 542b48e96f..c9050bfc1a 100644 --- a/.github/workflows/build_and_deploy.yml +++ b/.github/workflows/build_and_deploy.yml @@ -175,7 +175,7 @@ jobs: git push origin $TAG_NAME echo "value=$TAG_NAME" >> $GITHUB_OUTPUT - name: Download artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: SeichiAssist-build id: download @@ -197,7 +197,7 @@ jobs: - output-sha steps: - name: Download artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: SeichiAssist-build id: download @@ -262,7 +262,7 @@ jobs: - build_test_and_upload steps: - name: Download artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: SeichiAssist-build id: download From 1d10ae95e4639f436353416876d20ba3ab547ba9 Mon Sep 17 00:00:00 2001 From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com> Date: Fri, 26 May 2023 22:46:50 +0900 Subject: [PATCH 002/142] fix(deps): update sbt-assembly to 1.0.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 23fce33d09..66d467edd2 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,5 +1,5 @@ // プラグインJarを(依存関係にあるJarをすべて同梱して)出力するため -addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10") +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.0.0") // Lintを掛けるため addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.4") From 9eff7d5733a74ae3ddd5a3c84ccf4ac0d5260be4 Mon Sep 17 00:00:00 2001 From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com> Date: Fri, 26 May 2023 22:48:53 +0900 Subject: [PATCH 003/142] chore: add test task during in assembly task cf. https://github.com/sbt/sbt-assembly/pull/432/commits/361224a6202856bc2e572df811d0e6a1f1efda98 --- build.sbt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 8529685ce4..6ec24a3e5a 100644 --- a/build.sbt +++ b/build.sbt @@ -207,7 +207,10 @@ lazy val root = (project in file(".")).settings( javacOptions ++= Seq("-encoding", "utf8"), assembly / assemblyShadeRules ++= Seq( ShadeRule.rename("org.mariadb.jdbc.**" -> "com.github.unchama.seichiassist.relocateddependencies.org.mariadb.jdbc.@1").inAll - ) + ), + // sbt-assembly 1.0.0からはTestを明示的にタスクツリーに入れる必要がある + // cf. https://github.com/sbt/sbt-assembly/pull/432/commits/361224a6202856bc2e572df811d0e6a1f1efda98 + Compile / assembly / test := (Test / test).value ) // endregion From 0925b857db4437c9930421187dc19ee7c46a5c69 Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 00:05:45 +0900 Subject: [PATCH 004/142] =?UTF-8?q?chore:=20=E3=83=97=E3=83=AB=E3=83=AA?= =?UTF-8?q?=E3=82=AF=E3=82=A8=E3=82=B9=E3=83=88=E3=83=86=E3=83=B3=E3=83=97?= =?UTF-8?q?=E3=83=AC=E3=83=BC=E3=83=88=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/pull_request_template.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000000..926c1a3f18 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,15 @@ + + +**関連Issue:** + + +close: # + +--- From 38d36c1cf1c94ea134513065b0e8492bd26d603b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 28 May 2023 15:27:08 +0000 Subject: [PATCH 005/142] chore(deps): update phpmyadmin/phpmyadmin docker tag to v5 --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index a1cc9db893..10a67f60bb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -87,7 +87,7 @@ services: - spigotb stdin_open: true phpmyadmin: - image: phpmyadmin/phpmyadmin:4.9.7 + image: phpmyadmin/phpmyadmin:5.2.1 environment: - TZ=Asia/Tokyo - PMA_ARBITRARY=1 From bc00417be73eea552b4223c9a8def178037ddcce Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 00:47:18 +0900 Subject: [PATCH 006/142] =?UTF-8?q?feat:=20=E3=83=8D=E3=82=B6=E3=83=BC?= =?UTF-8?q?=E6=B0=B4=E6=99=B6=E9=A1=9E=E3=83=96=E3=83=AD=E3=83=83=E3=82=AF?= =?UTF-8?q?=E7=A0=B4=E5=A3=8A=E3=81=AE=E3=83=88=E3=82=B0=E3=83=AB=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/player/settings/PlayerSettings.scala | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala b/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala index a4f9e1b93f..aca877b83d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala +++ b/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala @@ -22,6 +22,9 @@ class PlayerSettings { // 複数種類破壊トグル var performMultipleIDBlockBreakWhenOutsideSeichiWorld: Boolean = false + // スキルでのネザー水晶類ブロックの破壊トグル + var allowBreakNetherQuartzBlock: Boolean = true + // PvPトグル var pvpflag = false var nickname: PlayerNickname = PlayerNickname(NicknameStyle.Level) @@ -61,4 +64,11 @@ class PlayerSettings { performMultipleIDBlockBreakWhenOutsideSeichiWorld = !performMultipleIDBlockBreakWhenOutsideSeichiWorld } + + /** + * スキルでのネザー水晶類ブロックの破壊のON/OFFを切り替える[UnforcedEffect] + */ + val toggleAllowBreakNetherQuartzBlock: TargetedEffect[Player] = UnfocusedEffect { + allowBreakNetherQuartzBlock = !allowBreakNetherQuartzBlock + } } From fbbd2c2225d181d78239921b9e942f76cc9564fc Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 01:11:24 +0900 Subject: [PATCH 007/142] =?UTF-8?q?refactor:=20=E4=B8=8D=E8=A6=81=E3=81=AA?= =?UTF-8?q?=20import=20=E6=96=87=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/subsystems/dragonnighttime/System.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/dragonnighttime/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/dragonnighttime/System.scala index a9b41d7134..10cb78c9c2 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/dragonnighttime/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/dragonnighttime/System.scala @@ -1,7 +1,6 @@ package com.github.unchama.seichiassist.subsystems.dragonnighttime import cats.effect.{Concurrent, Timer} -import com.github.unchama.concurrent.RepeatingTaskContext import com.github.unchama.generic.ContextCoercion import com.github.unchama.seichiassist.subsystems.dragonnighttime.application._ import com.github.unchama.seichiassist.subsystems.dragonnighttime.bukkit.instances._ From 8fda89e3e2d8066d3b33ef2c387e64d161cbbd22 Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 01:11:43 +0900 Subject: [PATCH 008/142] =?UTF-8?q?feat:=20=E3=82=B9=E3=82=AD=E3=83=AB?= =?UTF-8?q?=E3=83=A1=E3=83=8B=E3=83=A5=E3=83=BC=E3=81=AB=E5=88=87=E3=82=8A?= =?UTF-8?q?=E6=9B=BF=E3=81=88=E3=83=9C=E3=82=BF=E3=83=B3=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/player/settings/PlayerSettings.scala | 2 +- .../menus/skill/PassiveSkillMenu.scala | 43 ++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala b/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala index aca877b83d..c6d36fcee0 100644 --- a/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala +++ b/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala @@ -68,7 +68,7 @@ class PlayerSettings { /** * スキルでのネザー水晶類ブロックの破壊のON/OFFを切り替える[UnforcedEffect] */ - val toggleAllowBreakNetherQuartzBlock: TargetedEffect[Player] = UnfocusedEffect { + val toggleAllowNetherQuartzBlockBreakFlag: TargetedEffect[Player] = UnfocusedEffect { allowBreakNetherQuartzBlock = !allowBreakNetherQuartzBlock } } diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index c7d658a379..a0497dface 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -57,7 +57,8 @@ object PassiveSkillMenu extends Menu { val dynamicPartComputation = List( ChestSlotRef(0, 0) -> computeToggleMultipleBlockTypeDestructionButton, ChestSlotRef(0, 1) -> computeToggleChestBreakButton, - ChestSlotRef(1, 0) -> computeGiganticBerserkButton + ChestSlotRef(1, 0) -> computeGiganticBerserkButton, + ChestSlotRef(1, 1) -> computeToggleNetherQuartzBlockButton ).traverse(_.sequence) for { @@ -177,6 +178,46 @@ object PassiveSkillMenu extends Menu { ) }) + val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(IO { + val openerData = SeichiAssist.playermap(getUniqueId) + + val baseLore = List(s"${GREEN}スキルでのネザー水晶類ブロック破壊") + val statusLore = if (openerData.settings.allowBreakNetherQuartzBlock) { + List(s"${GREEN}ON (スキルでネザー水晶類ブロックを破壊します。)", s"${DARK_RED}クリックでOFF") + } else { + List(s"${RED}OFF (スキルでネザー水晶類ブロックを破壊しません。)", s"${DARK_GREEN}クリックでON") + } + + Button( + new IconItemStackBuilder(Material.QUARTZ_BLOCK) + .tap { builder => + if (openerData.settings.allowBreakNetherQuartzBlock) + builder.enchanted() + } + .title(s"$WHITE$UNDERLINE${BOLD}スキルでのネザー水晶類ブロック破壊") + .lore(baseLore ++ statusLore) + .build(), + LeftClickButtonEffect { + SequentialEffect( + openerData.settings.toggleAllowNetherQuartzBlockBreakFlag, + DeferredEffect(IO { + if (openerData.settings.allowBreakNetherQuartzBlock) { + SequentialEffect( + MessageEffect(s"${GREEN}スキルでのネザー水晶類ブロック破壊:ON"), + FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 1f) + ) + } else { + SequentialEffect( + MessageEffect(s"${GREEN}スキルでのネザー水晶類ブロック破壊:OFF"), + FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 0.5f) + ) + } + }) + ) + } + ) + }) + val computeGiganticBerserkButton: IO[Button] = RecomputedButton { environment .breakCountApi From acf86417938c158a7cbd5c947f24de194b3b2e41 Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 01:20:28 +0900 Subject: [PATCH 009/142] =?UTF-8?q?docs(fix):=20=E6=96=87=E8=84=88?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 926c1a3f18..afcc52bfda 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -5,7 +5,7 @@ **関連Issue:** From 5894f1b4e43164fed1c97e12597edfe05ff1fa1d Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 01:17:53 +0900 Subject: [PATCH 010/142] =?UTF-8?q?refactor:=20=E3=83=9C=E3=82=BF=E3=83=B3?= =?UTF-8?q?=E3=81=AE=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB=E3=83=BBLore?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seichiassist/menus/skill/PassiveSkillMenu.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index a0497dface..17e82e4069 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -181,7 +181,7 @@ object PassiveSkillMenu extends Menu { val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(IO { val openerData = SeichiAssist.playermap(getUniqueId) - val baseLore = List(s"${GREEN}スキルでのネザー水晶類ブロック破壊") + val baseLore = List(s"${YELLOW}スキルでネザー水晶類ブロックを破壊するスキル") val statusLore = if (openerData.settings.allowBreakNetherQuartzBlock) { List(s"${GREEN}ON (スキルでネザー水晶類ブロックを破壊します。)", s"${DARK_RED}クリックでOFF") } else { @@ -194,7 +194,7 @@ object PassiveSkillMenu extends Menu { if (openerData.settings.allowBreakNetherQuartzBlock) builder.enchanted() } - .title(s"$WHITE$UNDERLINE${BOLD}スキルでのネザー水晶類ブロック破壊") + .title(s"$WHITE$UNDERLINE${BOLD}ネザー水晶類ブロック破壊スキル切り替え") .lore(baseLore ++ statusLore) .build(), LeftClickButtonEffect { @@ -203,12 +203,12 @@ object PassiveSkillMenu extends Menu { DeferredEffect(IO { if (openerData.settings.allowBreakNetherQuartzBlock) { SequentialEffect( - MessageEffect(s"${GREEN}スキルでのネザー水晶類ブロック破壊:ON"), + MessageEffect(s"${GREEN}スキルでのネザー水晶類ブロック破壊を有効化しました。"), FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 1f) ) } else { SequentialEffect( - MessageEffect(s"${GREEN}スキルでのネザー水晶類ブロック破壊:OFF"), + MessageEffect(s"${RED}スキルでのネザー水晶類ブロック破壊を無効化しました。"), FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 0.5f) ) } From b59d17f271e381eb7b24ccccb302809b6fced751 Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 01:39:02 +0900 Subject: [PATCH 011/142] =?UTF-8?q?feat:=20=E3=83=88=E3=82=B0=E3=83=AB?= =?UTF-8?q?=E3=82=92=E3=83=97=E3=83=AC=E3=82=A4=E3=83=A4=E3=83=BC=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E5=81=B4=E3=81=B8=E7=A7=BB=E5=8B=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seichiassist/data/player/PlayerData.scala | 10 ++++++++++ .../data/player/settings/PlayerSettings.scala | 9 --------- .../seichiassist/menus/skill/PassiveSkillMenu.scala | 13 +++++-------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/data/player/PlayerData.scala b/src/main/scala/com/github/unchama/seichiassist/data/player/PlayerData.scala index 34b0cd9564..4ab8d426f0 100644 --- a/src/main/scala/com/github/unchama/seichiassist/data/player/PlayerData.scala +++ b/src/main/scala/com/github/unchama/seichiassist/data/player/PlayerData.scala @@ -46,6 +46,9 @@ class PlayerData(@Deprecated() val uuid: UUID, val name: String) { // チェスト破壊トグル var chestflag = true + // ネザー水晶類ブロック破壊トグル + var netherQuartzBlockflag = true + /** * チェスト破壊のON/OFFを切り替える[UnfocusedEffect] */ @@ -53,6 +56,13 @@ class PlayerData(@Deprecated() val uuid: UUID, val name: String) { chestflag = !chestflag } + /** + * ネザー水晶類ブロック破壊のON/OFFを切り替える[UnfocusedEffect] + */ + val toggleNetherQuartzBlockBreakFlag: TargetedEffect[Player] = UnfocusedEffect { + netherQuartzBlockflag = !netherQuartzBlockflag + } + var canCreateRegion = true var unitPerClick = 1 // 投票受け取りボタン連打防止用 diff --git a/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala b/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala index c6d36fcee0..835660ac1b 100644 --- a/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala +++ b/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala @@ -22,9 +22,6 @@ class PlayerSettings { // 複数種類破壊トグル var performMultipleIDBlockBreakWhenOutsideSeichiWorld: Boolean = false - // スキルでのネザー水晶類ブロックの破壊トグル - var allowBreakNetherQuartzBlock: Boolean = true - // PvPトグル var pvpflag = false var nickname: PlayerNickname = PlayerNickname(NicknameStyle.Level) @@ -65,10 +62,4 @@ class PlayerSettings { !performMultipleIDBlockBreakWhenOutsideSeichiWorld } - /** - * スキルでのネザー水晶類ブロックの破壊のON/OFFを切り替える[UnforcedEffect] - */ - val toggleAllowNetherQuartzBlockBreakFlag: TargetedEffect[Player] = UnfocusedEffect { - allowBreakNetherQuartzBlock = !allowBreakNetherQuartzBlock - } } diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index 17e82e4069..fc047463c8 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -68,10 +68,7 @@ object PassiveSkillMenu extends Menu { private class ButtonComputations(player: Player)(implicit environment: Environment) { - import com.github.unchama.seichiassist.concurrent.PluginExecutionContexts.{ - layoutPreparationContext, - onMainThread - } + import com.github.unchama.seichiassist.concurrent.PluginExecutionContexts.{layoutPreparationContext, onMainThread} import player._ import scala.util.chaining._ @@ -182,7 +179,7 @@ object PassiveSkillMenu extends Menu { val openerData = SeichiAssist.playermap(getUniqueId) val baseLore = List(s"${YELLOW}スキルでネザー水晶類ブロックを破壊するスキル") - val statusLore = if (openerData.settings.allowBreakNetherQuartzBlock) { + val statusLore = if (openerData.netherQuartzBlockflag) { List(s"${GREEN}ON (スキルでネザー水晶類ブロックを破壊します。)", s"${DARK_RED}クリックでOFF") } else { List(s"${RED}OFF (スキルでネザー水晶類ブロックを破壊しません。)", s"${DARK_GREEN}クリックでON") @@ -191,7 +188,7 @@ object PassiveSkillMenu extends Menu { Button( new IconItemStackBuilder(Material.QUARTZ_BLOCK) .tap { builder => - if (openerData.settings.allowBreakNetherQuartzBlock) + if (openerData.netherQuartzBlockflag) builder.enchanted() } .title(s"$WHITE$UNDERLINE${BOLD}ネザー水晶類ブロック破壊スキル切り替え") @@ -199,9 +196,9 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - openerData.settings.toggleAllowNetherQuartzBlockBreakFlag, + openerData.toggleNetherQuartzBlockBreakFlag, DeferredEffect(IO { - if (openerData.settings.allowBreakNetherQuartzBlock) { + if (openerData.netherQuartzBlockflag) { SequentialEffect( MessageEffect(s"${GREEN}スキルでのネザー水晶類ブロック破壊を有効化しました。"), FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 1f) From fe674b4d7c21658573087d04b9abb7fc58ce8909 Mon Sep 17 00:00:00 2001 From: lis Date: Mon, 29 May 2023 01:48:39 +0900 Subject: [PATCH 012/142] Update .github/pull_request_template.md Co-authored-by: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com> --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index afcc52bfda..7068f757a7 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -3,7 +3,7 @@ ここにあなたが行った変更を簡潔に説明していきましょう。詳しすぎる必要はありません。 --> -**関連Issue:** +**関連issue:** -close: # +close # --- From 478be0226ff3886b0958ff3a2ef720394d6525eb Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 01:40:23 +0900 Subject: [PATCH 014/142] =?UTF-8?q?feat:=20=E5=88=A4=E5=AE=9A=E9=83=A8?= =?UTF-8?q?=E5=88=86=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../menus/skill/PassiveSkillMenu.scala | 5 ++++- .../unchama/seichiassist/util/BreakUtil.scala | 22 ++++++++++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index fc047463c8..f725c54f68 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -68,7 +68,10 @@ object PassiveSkillMenu extends Menu { private class ButtonComputations(player: Player)(implicit environment: Environment) { - import com.github.unchama.seichiassist.concurrent.PluginExecutionContexts.{layoutPreparationContext, onMainThread} + import com.github.unchama.seichiassist.concurrent.PluginExecutionContexts.{ + layoutPreparationContext, + onMainThread + } import player._ import scala.util.chaining._ diff --git a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala index 13d4a92402..d225a4418e 100644 --- a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala +++ b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala @@ -8,11 +8,7 @@ import com.github.unchama.seichiassist.MaterialSets.{BlockBreakableBySkill, Brea import com.github.unchama.seichiassist._ import com.github.unchama.seichiassist.concurrent.PluginExecutionContexts import com.github.unchama.seichiassist.seichiskill.ActiveSkillRange._ -import com.github.unchama.seichiassist.seichiskill.SeichiSkill.{ - AssaultArmor, - DualBreak, - TrialBreak -} +import com.github.unchama.seichiassist.seichiskill.SeichiSkill.{AssaultArmor, DualBreak, TrialBreak} import com.github.unchama.seichiassist.seichiskill.SeichiSkillUsageMode.{Active, Disabled} import com.github.unchama.seichiassist.subsystems.breakcount.domain.CardinalDirection import com.github.unchama.seichiassist.subsystems.breakcount.domain.level.SeichiExpAmount @@ -136,6 +132,22 @@ object BreakUtil { } } + def isProtectedNetherQuartzBlock(player: Player, checkTarget: Block): Boolean = { + checkTarget.getType match { + // 鉱石ブロックの方はプロテクトの対象外 + case Material.QUARTZ_BLOCK | Material.QUARTZ_STAIRS => + if (!SeichiAssist.playermap(player.getUniqueId).netherQuartzBlockflag) { + ActionBarMessageEffect(s"${RED}スキルでのネザー水晶類ブロックの破壊は無効化されています") + .run(player) + .unsafeRunSync() + true + } else { + false + } + case _ => false + } + } + private def equalsIgnoreNameCaseWorld(name: String): Boolean = { val world = ManagedWorld.fromName(name).getOrElse(return false) From 00c8eef46da498fd78d0850ccababeb379fc69ae Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 01:56:30 +0900 Subject: [PATCH 015/142] =?UTF-8?q?docs(fix):=20RC=E3=81=AB=E5=90=88?= =?UTF-8?q?=E3=82=8F=E3=81=9B=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/pull_request_template.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index afb8b065cf..55ca11c1d3 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -6,8 +6,8 @@ **関連issue:** close # From 766d5ef9d97ae607c98281c3a26bd71d07724ed6 Mon Sep 17 00:00:00 2001 From: lis Date: Mon, 29 May 2023 01:56:59 +0900 Subject: [PATCH 016/142] Update .github/pull_request_template.md Co-authored-by: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com> --- .github/pull_request_template.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 55ca11c1d3..0207ebb95e 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,6 +1,12 @@ **関連issue:** From 977cb77f637107c49c39e007a4bc4c23fe79fed7 Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 02:05:09 +0900 Subject: [PATCH 017/142] =?UTF-8?q?docs:=20=E8=8B=B1=E8=AA=9E=E3=81=AB?= =?UTF-8?q?=E7=B5=B1=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/pull_request_template.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 0207ebb95e..087506f836 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,5 +1,5 @@ From 5d387fa2547b8095f58c28cf52b0c2bdc34c8178 Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 02:06:52 +0900 Subject: [PATCH 018/142] =?UTF-8?q?docs:=20=E4=BE=8B=E6=96=87=E3=82=92?= =?UTF-8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 087506f836..b3ab88269b 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,7 +4,7 @@ 情報量が多い場合は
タグで折りたたんでください。例:
ここに要約 - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + ここに詳細
[例示ここまで] --> From 0359f7e8ec5e0fe68805f31ba6d655027dfc2343 Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 02:17:26 +0900 Subject: [PATCH 019/142] =?UTF-8?q?docs:=20=E4=B8=8D=E8=A6=81=E3=81=AA?= =?UTF-8?q?=E6=96=87=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index b3ab88269b..2233de4b46 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -11,9 +11,9 @@ **関連issue:** close # From 291a987bdd3a9cf7d8cf5daebf3fb00e0761367c Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 02:25:42 +0900 Subject: [PATCH 020/142] =?UTF-8?q?docs:=20=E5=B0=8F=E6=96=87=E5=AD=97?= =?UTF-8?q?=E7=B5=B1=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/pull_request_template.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 2233de4b46..87a5609cea 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -11,8 +11,8 @@ **関連issue:** From b3b9b8755f241c13ad1666770f085d4742df00ea Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 01:55:23 +0900 Subject: [PATCH 021/142] =?UTF-8?q?feat:=20=E3=83=97=E3=83=AD=E3=83=86?= =?UTF-8?q?=E3=82=AF=E3=83=88=E5=AE=9F=E8=A1=8C=E9=83=A8=E5=88=86=E3=81=AE?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/player/settings/PlayerSettings.scala | 1 - .../github/unchama/seichiassist/util/BreakUtil.scala | 11 +++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala b/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala index 835660ac1b..a4f9e1b93f 100644 --- a/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala +++ b/src/main/scala/com/github/unchama/seichiassist/data/player/settings/PlayerSettings.scala @@ -61,5 +61,4 @@ class PlayerSettings { performMultipleIDBlockBreakWhenOutsideSeichiWorld = !performMultipleIDBlockBreakWhenOutsideSeichiWorld } - } diff --git a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala index d225a4418e..d5dd66c7fb 100644 --- a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala +++ b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala @@ -8,7 +8,11 @@ import com.github.unchama.seichiassist.MaterialSets.{BlockBreakableBySkill, Brea import com.github.unchama.seichiassist._ import com.github.unchama.seichiassist.concurrent.PluginExecutionContexts import com.github.unchama.seichiassist.seichiskill.ActiveSkillRange._ -import com.github.unchama.seichiassist.seichiskill.SeichiSkill.{AssaultArmor, DualBreak, TrialBreak} +import com.github.unchama.seichiassist.seichiskill.SeichiSkill.{ + AssaultArmor, + DualBreak, + TrialBreak +} import com.github.unchama.seichiassist.seichiskill.SeichiSkillUsageMode.{Active, Disabled} import com.github.unchama.seichiassist.subsystems.breakcount.domain.CardinalDirection import com.github.unchama.seichiassist.subsystems.breakcount.domain.level.SeichiExpAmount @@ -112,7 +116,10 @@ object BreakUtil { checkTarget: Block, lockedBlocks: Set[Block] = unsafeGetLockedBlocks() ): Boolean = { - !isProtectedChest(player, checkTarget) && + !isProtectedChest(player, checkTarget) && !isProtectedNetherQuartzBlock( + player, + checkTarget + ) && canBreak(player, checkTarget, lockedBlocks) } From a8505399dff18feca89ec87787567419497296d3 Mon Sep 17 00:00:00 2001 From: lis2a Date: Mon, 29 May 2023 22:32:46 +0900 Subject: [PATCH 022/142] =?UTF-8?q?docs!:=20=E3=83=97=E3=83=AB=E3=83=AA?= =?UTF-8?q?=E3=82=AF=E3=82=A8=E3=82=B9=E3=83=88=E4=BD=9C=E6=88=90=E3=81=AE?= =?UTF-8?q?=E7=90=86=E7=94=B1=E3=81=A8=E5=A4=89=E6=9B=B4=E7=82=B9=E3=82=92?= =?UTF-8?q?=E8=A8=98=E8=BF=B0=E3=81=99=E3=82=8B=E3=82=BB=E3=82=AF=E3=82=B7?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E3=82=92=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 関連するIssueの番号だけではプルリクエストとしては不完全であることから https://github.com/GiganticMinecraft/SeichiAssist/pull/2065#issuecomment-1567133401 --- .github/pull_request_template.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 87a5609cea..28dd7d3967 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,21 +1,24 @@ -**関連issue:** +close # + +---- + +### このPRの変更点と理由: + -close # +### 補足情報: ---- + From 4fb090017cf5e59d4d5342e7a4b5c612a60d5af8 Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 31 May 2023 09:29:25 +0900 Subject: [PATCH 023/142] =?UTF-8?q?feat:=20BreakFalg=E3=82=92=E5=AE=9A?= =?UTF-8?q?=E7=BE=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../breakflags/domain/BreakFlag.scala | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala new file mode 100644 index 0000000000..6450f37f2a --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala @@ -0,0 +1,20 @@ +package com.github.unchama.seichiassist.subsystems.breakflags.domain + +/** + * 定義されたブロックを破壊するかしないかを表すためのFlagのEnum + */ +sealed trait BreakFlag + +object BreakFlag { + + /** + * Chestブロックを破壊するかを示すEnum + */ + case object Chest extends BreakFlag + + /** + * ネザークォーツ系ブロックを破壊するかを示すEnum + */ + case object NetherQuartz extends BreakFlag + +} From e1595ec0b267ed7c9b5595621764323c9c46b897 Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 31 May 2023 09:35:44 +0900 Subject: [PATCH 024/142] =?UTF-8?q?feat:=20BreakFlagPersistence=E3=82=92?= =?UTF-8?q?=E5=AE=9A=E7=BE=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../breakflags/domain/BreakFlagPersistence.scala | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala new file mode 100644 index 0000000000..e90b8e978a --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala @@ -0,0 +1,7 @@ +package com.github.unchama.seichiassist.subsystems.breakflags.domain + +import com.github.unchama.generic.RefDict + +import java.util.UUID + +trait BreakFlagPersistence[F[_]] extends RefDict[F, UUID, BreakFlag] From 1f526092ec57cd99d6e8de65ca21e560a3d9af45 Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 31 May 2023 17:26:17 +0900 Subject: [PATCH 025/142] =?UTF-8?q?feat:=20BreakFlag=E3=81=AE=E6=B0=B8?= =?UTF-8?q?=E7=B6=9A=E5=8C=96=E5=B1=A4=E3=82=92=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../breakflags/domain/BreakFlag.scala | 19 +------- .../breakflags/domain/BreakFlagName.scala | 24 ++++++++++ .../domain/BreakFlagPersistence.scala | 2 +- .../JdbcBreakFlagPersistence.scala | 46 +++++++++++++++++++ 4 files changed, 72 insertions(+), 19 deletions(-) create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagName.scala create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala index 6450f37f2a..cc86666143 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala @@ -1,20 +1,3 @@ package com.github.unchama.seichiassist.subsystems.breakflags.domain -/** - * 定義されたブロックを破壊するかしないかを表すためのFlagのEnum - */ -sealed trait BreakFlag - -object BreakFlag { - - /** - * Chestブロックを破壊するかを示すEnum - */ - case object Chest extends BreakFlag - - /** - * ネザークォーツ系ブロックを破壊するかを示すEnum - */ - case object NetherQuartz extends BreakFlag - -} +case class BreakFlag(flagName: BreakFlagName, flag: Boolean) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagName.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagName.scala new file mode 100644 index 0000000000..cba4e1fe68 --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagName.scala @@ -0,0 +1,24 @@ +package com.github.unchama.seichiassist.subsystems.breakflags.domain + +import enumeratum.{Enum, EnumEntry} + +/** + * 定義されたブロックを破壊するかしないかを表すためのフラグの名前を集めたEnum + */ +sealed trait BreakFlagName extends EnumEntry + +object BreakFlagName extends Enum[BreakFlagName] { + + val values: IndexedSeq[BreakFlagName] = findValues + + /** + * Chestブロックを破壊するかを示すフラグ名 + */ + case object Chest extends BreakFlagName + + /** + * ネザークォーツ系ブロックを破壊するかを示すフラグ名 + */ + case object NetherQuartz extends BreakFlagName + +} diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala index e90b8e978a..5ede21796d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala @@ -4,4 +4,4 @@ import com.github.unchama.generic.RefDict import java.util.UUID -trait BreakFlagPersistence[F[_]] extends RefDict[F, UUID, BreakFlag] +trait BreakFlagPersistence[F[_]] extends RefDict[F, UUID, List[BreakFlag]] diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala new file mode 100644 index 0000000000..9801a6383f --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala @@ -0,0 +1,46 @@ +package com.github.unchama.seichiassist.subsystems.breakflags.persistence + +import cats.effect.Sync +import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagName, BreakFlagPersistence} +import scalikejdbc.{DB, scalikejdbcSQLInterpolationImplicitDef} + +import java.util.UUID + +class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { + override def read(key: UUID): F[Option[List[BreakFlag]]] = Sync[F].delay { + DB.readOnly { implicit session => + val breakFlags = sql"SELECT flag_name, can_break FROM break_flags WHERE uuid = ${key.toString}" + .map { rs => + BreakFlagName.withNameOption(rs.string("flag_name")).map { flagName => + BreakFlag(flagName, rs.boolean("can_break")) + } + } + .toList() + .apply() + .collect { + case Some(flag) => flag + } + + Some(breakFlags) + } + } + + override def write(key: UUID, value: List[BreakFlag]): F[Unit] = Sync[F].delay { + DB.localTx { implicit session => + val uuid = key.toString + val batchParams = value.map { flag => + Seq(uuid, flag.flagName.entryName, flag.flag) + } + + sql"""INSERT INTO break_flags (uuid, flag_name, can_break) + | VALUES (?, ?, ?) + | ON DUPLICATE KEY UPDATE + | can_break = VALUE(can_break) + """ + .stripMargin + .batch(batchParams: _*) + .apply[List] + } + } + +} From df680d9ed395264140496872a5fea1d5e8380ae1 Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 31 May 2023 22:16:44 +0900 Subject: [PATCH 026/142] =?UTF-8?q?feat:=20break=5Fflags=E3=82=92=E4=BD=9C?= =?UTF-8?q?=E6=88=90=E3=81=99=E3=82=8B=E3=83=9E=E3=82=A4=E3=82=B0=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V1.17.0__Create_break_flag_table.sql | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql new file mode 100644 index 0000000000..e48fbc6788 --- /dev/null +++ b/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql @@ -0,0 +1,7 @@ +use SeichiAssist; + +CREATE TABLE break_flags( + uuid CHAR(36) NOT NULL PRIMARY KEY, + flag_name VARCHAR(20) NOT NULL, + can_break BOOL NOT NULL DEFAULT TRUE +); From b4ccb7937494b093a321b28884c5530910cbc3d3 Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 31 May 2023 22:43:16 +0900 Subject: [PATCH 027/142] =?UTF-8?q?feat:=20BreakFlagRepository=E3=82=92?= =?UTF-8?q?=E5=AE=9A=E7=BE=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BreakFlagRepositoryDefinition.scala | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala new file mode 100644 index 0000000000..5994ab6945 --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala @@ -0,0 +1,18 @@ +package com.github.unchama.seichiassist.subsystems.breakflags.application.repository + +import cats.effect.Sync +import cats.effect.concurrent.Ref +import com.github.unchama.datarepository.definitions.RefDictBackedRepositoryDefinition +import com.github.unchama.datarepository.template.RepositoryDefinition +import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagPersistence} + +object BreakFlagRepositoryDefinition { + + def withContext[F[_]: Sync, Player]( + persistence: BreakFlagPersistence[F] + ): RepositoryDefinition[F, Player, Ref[F, List[BreakFlag]]] = + RefDictBackedRepositoryDefinition + .usingUuidRefDict[F, Player, List[BreakFlag]](persistence)(List.empty) + .toRefRepository + +} From ca2f90be25cbf90543f25078d701ac2217dd1f48 Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 31 May 2023 23:25:23 +0900 Subject: [PATCH 028/142] =?UTF-8?q?feat:=20BreakFlagAPI=E3=82=92=E5=AE=9A?= =?UTF-8?q?=E7=BE=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/breakflags/BreakFlagAPI.scala | 30 ++++++++++++++++++ .../subsystems/breakflags/System.scala | 31 +++++++++++++++++++ .../BreakFlagRepositoryDefinition.scala | 2 +- 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala new file mode 100644 index 0000000000..d19c6d4702 --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala @@ -0,0 +1,30 @@ +package com.github.unchama.seichiassist.subsystems.breakflags + +import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlag + +import java.util.UUID + +trait BreakFlagAPI[F[_]] { + + /** + * @return 破壊フラグを有効にする作用 + */ + def turnOnBreakFlag(player: UUID, breakFlag: BreakFlag): F[Unit] + + /** + * @return 破壊フラグを無効にする作用 + */ + def turnOffBreakFlag(player: UUID, breakFlag: BreakFlag): F[Unit] + + /** + * @return 現在の破壊フラグを取得する作用 + */ + def breakFlag(player: UUID): F[BreakFlag] + +} + +object BreakFlagAPI { + + def apply[F[_]](implicit ev: BreakFlagAPI[F]): BreakFlagAPI[F] = ev + +} diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala new file mode 100644 index 0000000000..48c2e5bb42 --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala @@ -0,0 +1,31 @@ +package com.github.unchama.seichiassist.subsystems.breakflags + +import cats.effect.{Sync, SyncEffect} +import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls +import com.github.unchama.seichiassist.meta.subsystem.Subsystem +import com.github.unchama.seichiassist.subsystems.breakflags.application.repository.BreakFlagRepositoryDefinition +import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlagPersistence +import com.github.unchama.seichiassist.subsystems.breakflags.persistence.JdbcBreakFlagPersistence + +trait System[F[_]] extends Subsystem[F] { + +} + +object System { + + import cats.implicits._ + + def wired[F[_]: SyncEffect]: F[System[F]] = { + implicit val breakFlagPersistence: BreakFlagPersistence[F] = new JdbcBreakFlagPersistence[F] + + for { + breakFlagRepositoryControls <- BukkitRepositoryControls.createHandles( + BreakFlagRepositoryDefinition.withContext + ) + } yield { + val breakFlagRepository = breakFlagRepositoryControls.repository + + } + } + +} diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala index 5994ab6945..e540b766c8 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala @@ -9,7 +9,7 @@ import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, object BreakFlagRepositoryDefinition { def withContext[F[_]: Sync, Player]( - persistence: BreakFlagPersistence[F] + implicit persistence: BreakFlagPersistence[F] ): RepositoryDefinition[F, Player, Ref[F, List[BreakFlag]]] = RefDictBackedRepositoryDefinition .usingUuidRefDict[F, Player, List[BreakFlag]](persistence)(List.empty) From ac85894ecd2cd91a227c8be06f50741df06b5755 Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 31 May 2023 23:35:04 +0900 Subject: [PATCH 029/142] =?UTF-8?q?feat:=20System=E3=81=AE=E5=AE=9A?= =?UTF-8?q?=E7=BE=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/breakflags/BreakFlagAPI.scala | 14 ++++---- .../subsystems/breakflags/System.scala | 33 ++++++++++++++++--- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala index d19c6d4702..34893812fb 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala @@ -1,30 +1,28 @@ package com.github.unchama.seichiassist.subsystems.breakflags -import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlag +import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagName} -import java.util.UUID - -trait BreakFlagAPI[F[_]] { +trait BreakFlagAPI[F[_], Player] { /** * @return 破壊フラグを有効にする作用 */ - def turnOnBreakFlag(player: UUID, breakFlag: BreakFlag): F[Unit] + def turnOnBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] /** * @return 破壊フラグを無効にする作用 */ - def turnOffBreakFlag(player: UUID, breakFlag: BreakFlag): F[Unit] + def turnOffBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] /** * @return 現在の破壊フラグを取得する作用 */ - def breakFlag(player: UUID): F[BreakFlag] + def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] } object BreakFlagAPI { - def apply[F[_]](implicit ev: BreakFlagAPI[F]): BreakFlagAPI[F] = ev + def apply[F[_], Player](implicit ev: BreakFlagAPI[F, Player]): BreakFlagAPI[F, Player] = ev } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala index 48c2e5bb42..5801af26f8 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala @@ -1,21 +1,22 @@ package com.github.unchama.seichiassist.subsystems.breakflags -import cats.effect.{Sync, SyncEffect} +import cats.effect.SyncEffect import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls import com.github.unchama.seichiassist.meta.subsystem.Subsystem import com.github.unchama.seichiassist.subsystems.breakflags.application.repository.BreakFlagRepositoryDefinition -import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlagPersistence +import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagName, BreakFlagPersistence} import com.github.unchama.seichiassist.subsystems.breakflags.persistence.JdbcBreakFlagPersistence +import org.bukkit.entity.Player -trait System[F[_]] extends Subsystem[F] { - +trait System[F[_], Player] extends Subsystem[F] { + val api: BreakFlagAPI[F, Player] } object System { import cats.implicits._ - def wired[F[_]: SyncEffect]: F[System[F]] = { + def wired[F[_]: SyncEffect]: F[System[F, Player]] = { implicit val breakFlagPersistence: BreakFlagPersistence[F] = new JdbcBreakFlagPersistence[F] for { @@ -25,6 +26,28 @@ object System { } yield { val breakFlagRepository = breakFlagRepositoryControls.repository + new System[F, Player] { + override val api: BreakFlagAPI[F, Player] = new BreakFlagAPI[F, Player] { + override def turnOnBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] = + breakFlagRepository(player).update { breakFlags => + breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag(breakFlagName, flag = true) + } + + override def turnOffBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] = + breakFlagRepository(player).update { breakFlags => + breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag(breakFlagName, flag = false) + } + + override def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] = for { + flags <- breakFlagRepository(player).get + } yield { + flags.find(_.flagName == breakFlagName) match { + case Some(value) => value.flag + case None => true // 破壊フラグのデフォルト値はtrue(破壊する) + } + } + } + } } } From df225ab853f6052f195db98f96559ba718a04d9a Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 31 May 2023 23:43:03 +0900 Subject: [PATCH 030/142] =?UTF-8?q?feat:=20System=E3=82=92SeichiAssist?= =?UTF-8?q?=E5=81=B4=E3=81=AB=E5=AE=9A=E7=BE=A9=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/SeichiAssist.scala | 6 +++++- .../subsystems/breakflags/System.scala | 19 ++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala index c4e3375fca..84420ae754 100644 --- a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala +++ b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala @@ -480,6 +480,9 @@ class SeichiAssist extends JavaPlugin() { subsystems.vote.subsystems.fairyspeech.System.wired[IO] } + private lazy val breakFlagSystem: subsystems.breakflags.System[IO, Player] = + subsystems.breakflags.System.wired[IO, SyncIO].unsafeRunSync() + /* TODO: mineStackSystemは本来privateであるべきだが、mineStackにアイテムを格納するAPIが現状の BreakUtilの実装から呼び出されている都合上やむを得ずpublicになっている。*/ lazy val mineStackSystem: subsystems.minestack.System[IO, Player, ItemStack] = @@ -520,7 +523,8 @@ class SeichiAssist extends JavaPlugin() { sharedInventorySystem, mineStackSystem, consumeGachaTicketSystem, - openirontrapdoor.System.wired + openirontrapdoor.System.wired, + breakFlagSystem ) private lazy val buildAssist: BuildAssist = { diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala index 5801af26f8..fe0874704d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala @@ -2,6 +2,7 @@ package com.github.unchama.seichiassist.subsystems.breakflags import cats.effect.SyncEffect import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls +import com.github.unchama.generic.ContextCoercion import com.github.unchama.seichiassist.meta.subsystem.Subsystem import com.github.unchama.seichiassist.subsystems.breakflags.application.repository.BreakFlagRepositoryDefinition import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagName, BreakFlagPersistence} @@ -16,12 +17,12 @@ object System { import cats.implicits._ - def wired[F[_]: SyncEffect]: F[System[F, Player]] = { - implicit val breakFlagPersistence: BreakFlagPersistence[F] = new JdbcBreakFlagPersistence[F] + def wired[F[_], G[_]: SyncEffect: ContextCoercion[*[_], F]]: G[System[F, Player]] = { + implicit val breakFlagPersistence: BreakFlagPersistence[G] = new JdbcBreakFlagPersistence[G] for { breakFlagRepositoryControls <- BukkitRepositoryControls.createHandles( - BreakFlagRepositoryDefinition.withContext + BreakFlagRepositoryDefinition.withContext[G, Player] ) } yield { val breakFlagRepository = breakFlagRepositoryControls.repository @@ -29,23 +30,23 @@ object System { new System[F, Player] { override val api: BreakFlagAPI[F, Player] = new BreakFlagAPI[F, Player] { override def turnOnBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] = - breakFlagRepository(player).update { breakFlags => + ContextCoercion(breakFlagRepository(player).update { breakFlags => breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag(breakFlagName, flag = true) - } + }) override def turnOffBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] = - breakFlagRepository(player).update { breakFlags => + ContextCoercion(breakFlagRepository(player).update { breakFlags => breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag(breakFlagName, flag = false) - } + }) - override def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] = for { + override def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] = ContextCoercion(for { flags <- breakFlagRepository(player).get } yield { flags.find(_.flagName == breakFlagName) match { case Some(value) => value.flag case None => true // 破壊フラグのデフォルト値はtrue(破壊する) } - } + }) } } } From 69dd416824a3bea8169ceeb0bcbdeb260a4b9f48 Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 31 May 2023 23:46:58 +0900 Subject: [PATCH 031/142] style: apply scalafmt and scalafix --- .../subsystems/breakflags/BreakFlagAPI.scala | 2 +- .../subsystems/breakflags/System.scala | 31 +++++++++++------ .../BreakFlagRepositoryDefinition.scala | 5 ++- .../JdbcBreakFlagPersistence.scala | 34 +++++++++---------- 4 files changed, 41 insertions(+), 31 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala index 34893812fb..7e817c5644 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala @@ -1,6 +1,6 @@ package com.github.unchama.seichiassist.subsystems.breakflags -import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagName} +import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlagName trait BreakFlagAPI[F[_], Player] { diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala index fe0874704d..8da0982493 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala @@ -5,7 +5,11 @@ import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls import com.github.unchama.generic.ContextCoercion import com.github.unchama.seichiassist.meta.subsystem.Subsystem import com.github.unchama.seichiassist.subsystems.breakflags.application.repository.BreakFlagRepositoryDefinition -import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagName, BreakFlagPersistence} +import com.github.unchama.seichiassist.subsystems.breakflags.domain.{ + BreakFlag, + BreakFlagName, + BreakFlagPersistence +} import com.github.unchama.seichiassist.subsystems.breakflags.persistence.JdbcBreakFlagPersistence import org.bukkit.entity.Player @@ -31,22 +35,27 @@ object System { override val api: BreakFlagAPI[F, Player] = new BreakFlagAPI[F, Player] { override def turnOnBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] = ContextCoercion(breakFlagRepository(player).update { breakFlags => - breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag(breakFlagName, flag = true) + breakFlags + .filterNot(_.flagName == breakFlagName) :+ BreakFlag(breakFlagName, flag = true) }) override def turnOffBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] = ContextCoercion(breakFlagRepository(player).update { breakFlags => - breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag(breakFlagName, flag = false) + breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag( + breakFlagName, + flag = false + ) }) - override def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] = ContextCoercion(for { - flags <- breakFlagRepository(player).get - } yield { - flags.find(_.flagName == breakFlagName) match { - case Some(value) => value.flag - case None => true // 破壊フラグのデフォルト値はtrue(破壊する) - } - }) + override def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] = + ContextCoercion(for { + flags <- breakFlagRepository(player).get + } yield { + flags.find(_.flagName == breakFlagName) match { + case Some(value) => value.flag + case None => true // 破壊フラグのデフォルト値はtrue(破壊する) + } + }) } } } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala index e540b766c8..384868125f 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala @@ -4,7 +4,10 @@ import cats.effect.Sync import cats.effect.concurrent.Ref import com.github.unchama.datarepository.definitions.RefDictBackedRepositoryDefinition import com.github.unchama.datarepository.template.RepositoryDefinition -import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagPersistence} +import com.github.unchama.seichiassist.subsystems.breakflags.domain.{ + BreakFlag, + BreakFlagPersistence +} object BreakFlagRepositoryDefinition { diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala index 9801a6383f..394f6fbbbf 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala @@ -1,7 +1,11 @@ package com.github.unchama.seichiassist.subsystems.breakflags.persistence import cats.effect.Sync -import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagName, BreakFlagPersistence} +import com.github.unchama.seichiassist.subsystems.breakflags.domain.{ + BreakFlag, + BreakFlagName, + BreakFlagPersistence +} import scalikejdbc.{DB, scalikejdbcSQLInterpolationImplicitDef} import java.util.UUID @@ -9,17 +13,16 @@ import java.util.UUID class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { override def read(key: UUID): F[Option[List[BreakFlag]]] = Sync[F].delay { DB.readOnly { implicit session => - val breakFlags = sql"SELECT flag_name, can_break FROM break_flags WHERE uuid = ${key.toString}" - .map { rs => - BreakFlagName.withNameOption(rs.string("flag_name")).map { flagName => - BreakFlag(flagName, rs.boolean("can_break")) + val breakFlags = + sql"SELECT flag_name, can_break FROM break_flags WHERE uuid = ${key.toString}" + .map { rs => + BreakFlagName.withNameOption(rs.string("flag_name")).map { flagName => + BreakFlag(flagName, rs.boolean("can_break")) + } } - } - .toList() - .apply() - .collect { - case Some(flag) => flag - } + .toList() + .apply() + .collect { case Some(flag) => flag } Some(breakFlags) } @@ -28,18 +31,13 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { override def write(key: UUID, value: List[BreakFlag]): F[Unit] = Sync[F].delay { DB.localTx { implicit session => val uuid = key.toString - val batchParams = value.map { flag => - Seq(uuid, flag.flagName.entryName, flag.flag) - } + val batchParams = value.map { flag => Seq(uuid, flag.flagName.entryName, flag.flag) } sql"""INSERT INTO break_flags (uuid, flag_name, can_break) | VALUES (?, ?, ?) | ON DUPLICATE KEY UPDATE | can_break = VALUE(can_break) - """ - .stripMargin - .batch(batchParams: _*) - .apply[List] + """.stripMargin.batch(batchParams: _*).apply[List] } } From 209f20bd4346c810db41e77e4d03bfa2408f4a8a Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 31 May 2023 23:57:07 +0900 Subject: [PATCH 032/142] =?UTF-8?q?feat:=20BreakFlagAPI=E3=81=ABtoggle?= =?UTF-8?q?=E7=94=A8=E9=96=A2=E6=95=B0=E3=82=92=E7=94=A8=E6=84=8F=E3=81=99?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/breakflags/BreakFlagAPI.scala | 9 ++----- .../subsystems/breakflags/System.scala | 27 +++++++++---------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala index 7e817c5644..cd37e5ba4e 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala @@ -5,14 +5,9 @@ import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlagNam trait BreakFlagAPI[F[_], Player] { /** - * @return 破壊フラグを有効にする作用 + * @return 破壊フラグをトグルする作用 */ - def turnOnBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] - - /** - * @return 破壊フラグを無効にする作用 - */ - def turnOffBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] + def toggleBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] /** * @return 現在の破壊フラグを取得する作用 diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala index 8da0982493..6b8cbb3a2d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala @@ -1,6 +1,6 @@ package com.github.unchama.seichiassist.subsystems.breakflags -import cats.effect.SyncEffect +import cats.effect.{Sync, SyncEffect} import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls import com.github.unchama.generic.ContextCoercion import com.github.unchama.seichiassist.meta.subsystem.Subsystem @@ -21,7 +21,7 @@ object System { import cats.implicits._ - def wired[F[_], G[_]: SyncEffect: ContextCoercion[*[_], F]]: G[System[F, Player]] = { + def wired[F[_]: Sync, G[_]: SyncEffect: ContextCoercion[*[_], F]]: G[System[F, Player]] = { implicit val breakFlagPersistence: BreakFlagPersistence[G] = new JdbcBreakFlagPersistence[G] for { @@ -33,19 +33,16 @@ object System { new System[F, Player] { override val api: BreakFlagAPI[F, Player] = new BreakFlagAPI[F, Player] { - override def turnOnBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] = - ContextCoercion(breakFlagRepository(player).update { breakFlags => - breakFlags - .filterNot(_.flagName == breakFlagName) :+ BreakFlag(breakFlagName, flag = true) - }) - - override def turnOffBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] = - ContextCoercion(breakFlagRepository(player).update { breakFlags => - breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag( - breakFlagName, - flag = false - ) - }) + override def toggleBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] = + for { + breakFlag <- breakFlag(player, breakFlagName) + _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => + breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag( + breakFlagName, + flag = !breakFlag + ) + }) + } yield () override def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] = ContextCoercion(for { From 38cf6318dc82cf8369726423b6e364dd0b71a688 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 00:36:50 +0900 Subject: [PATCH 033/142] =?UTF-8?q?refactor:=20=E5=8F=A4=E3=81=84=E3=83=95?= =?UTF-8?q?=E3=83=A9=E3=82=B0=E3=82=92=E6=96=B0=E3=82=B7=E3=82=B9=E3=83=86?= =?UTF-8?q?=E3=83=A0=E3=81=AB=E7=BD=AE=E3=81=8D=E6=8F=9B=E3=81=88=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/SeichiAssist.scala | 4 ++- .../seichiassist/data/player/PlayerData.scala | 20 ------------ .../menus/skill/PassiveSkillMenu.scala | 32 +++++++++++-------- .../subsystems/breakflags/BreakFlagAPI.scala | 3 +- .../subsystems/breakflags/System.scala | 10 +++--- .../unchama/seichiassist/util/BreakUtil.scala | 11 +++---- 6 files changed, 32 insertions(+), 48 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala index 84420ae754..c69886971d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala +++ b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala @@ -480,7 +480,9 @@ class SeichiAssist extends JavaPlugin() { subsystems.vote.subsystems.fairyspeech.System.wired[IO] } - private lazy val breakFlagSystem: subsystems.breakflags.System[IO, Player] = + /* TODO: breakFlagSystemは本来privateであるべきだが、 + BreakUtilで呼び出されているため、やむを得ずpublicになっている */ + lazy val breakFlagSystem: subsystems.breakflags.System[IO, Player] = subsystems.breakflags.System.wired[IO, SyncIO].unsafeRunSync() /* TODO: mineStackSystemは本来privateであるべきだが、mineStackにアイテムを格納するAPIが現状の diff --git a/src/main/scala/com/github/unchama/seichiassist/data/player/PlayerData.scala b/src/main/scala/com/github/unchama/seichiassist/data/player/PlayerData.scala index 4ab8d426f0..9227f53e45 100644 --- a/src/main/scala/com/github/unchama/seichiassist/data/player/PlayerData.scala +++ b/src/main/scala/com/github/unchama/seichiassist/data/player/PlayerData.scala @@ -43,26 +43,6 @@ class PlayerData(@Deprecated() val uuid: UUID, val name: String) { // プレイヤー名 val lowercaseName: String = name.toLowerCase() - // チェスト破壊トグル - var chestflag = true - - // ネザー水晶類ブロック破壊トグル - var netherQuartzBlockflag = true - - /** - * チェスト破壊のON/OFFを切り替える[UnfocusedEffect] - */ - val toggleChestBreakFlag: TargetedEffect[Player] = UnfocusedEffect { - chestflag = !chestflag - } - - /** - * ネザー水晶類ブロック破壊のON/OFFを切り替える[UnfocusedEffect] - */ - val toggleNetherQuartzBlockBreakFlag: TargetedEffect[Player] = UnfocusedEffect { - netherQuartzBlockflag = !netherQuartzBlockflag - } - var canCreateRegion = true var unitPerClick = 1 // 投票受け取りボタン連打防止用 diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index f725c54f68..d273f4ea33 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -11,6 +11,8 @@ import com.github.unchama.seichiassist.data.MenuInventoryData import com.github.unchama.seichiassist.menus.CommonButtons import com.github.unchama.seichiassist.menus.stickmenu.FirstPage import com.github.unchama.seichiassist.subsystems.breakcount.BreakCountAPI +import com.github.unchama.seichiassist.subsystems.breakflags.BreakFlagAPI +import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlagName import com.github.unchama.targetedeffect._ import com.github.unchama.targetedeffect.commandsender.MessageEffect import com.github.unchama.targetedeffect.player.FocusedSoundEffect @@ -30,6 +32,7 @@ object PassiveSkillMenu extends Menu { class Environment( implicit val breakCountApi: BreakCountAPI[IO, SyncIO, Player], + implicit val breakFlagAPI: BreakFlagAPI[IO, Player], val ioCanOpenFirstPage: IO CanOpen FirstPage.type ) @@ -141,16 +144,19 @@ object PassiveSkillMenu extends Menu { ) } - val computeToggleChestBreakButton: IO[Button] = RecomputedButton(IO { - val openerData = SeichiAssist.playermap(getUniqueId) + import environment._ + val computeToggleChestBreakButton: IO[Button] = RecomputedButton( + for { + chestFlag <- breakFlagAPI.breakFlag(player, BreakFlagName.Chest) + } yield { val baseLore = List(s"${GREEN}スキルでチェストを破壊するスキル") - val statusLore = if (openerData.chestflag) { + val statusLore = if (chestFlag) { List(s"${RED}整地ワールドのみで発動中(デフォルト)", "", s"$DARK_GREEN${UNDERLINE}クリックで切り替え") } else { List(s"${RED}発動しません", "", s"$DARK_GREEN${UNDERLINE}クリックで切り替え") } - val material = if (openerData.chestflag) Material.DIAMOND_AXE else Material.CHEST + val material = if (chestFlag) Material.DIAMOND_AXE else Material.CHEST Button( new IconItemStackBuilder(material) @@ -159,9 +165,9 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - openerData.toggleChestBreakFlag, + DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakFlagName.Chest))), DeferredEffect(IO { - if (openerData.chestflag) { + if (chestFlag) { SequentialEffect( MessageEffect(s"${GREEN}スキルでのチェスト破壊を有効化しました。"), FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 1f) @@ -178,11 +184,11 @@ object PassiveSkillMenu extends Menu { ) }) - val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(IO { - val openerData = SeichiAssist.playermap(getUniqueId) - + val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(for { + quartzBreakFlag <- breakFlagAPI.breakFlag(player, BreakFlagName.NetherQuartz) + } yield { val baseLore = List(s"${YELLOW}スキルでネザー水晶類ブロックを破壊するスキル") - val statusLore = if (openerData.netherQuartzBlockflag) { + val statusLore = if (quartzBreakFlag) { List(s"${GREEN}ON (スキルでネザー水晶類ブロックを破壊します。)", s"${DARK_RED}クリックでOFF") } else { List(s"${RED}OFF (スキルでネザー水晶類ブロックを破壊しません。)", s"${DARK_GREEN}クリックでON") @@ -191,7 +197,7 @@ object PassiveSkillMenu extends Menu { Button( new IconItemStackBuilder(Material.QUARTZ_BLOCK) .tap { builder => - if (openerData.netherQuartzBlockflag) + if (quartzBreakFlag) builder.enchanted() } .title(s"$WHITE$UNDERLINE${BOLD}ネザー水晶類ブロック破壊スキル切り替え") @@ -199,9 +205,9 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - openerData.toggleNetherQuartzBlockBreakFlag, + DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakFlagName.NetherQuartz))), DeferredEffect(IO { - if (openerData.netherQuartzBlockflag) { + if (quartzBreakFlag) { SequentialEffect( MessageEffect(s"${GREEN}スキルでのネザー水晶類ブロック破壊を有効化しました。"), FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 1f) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala index cd37e5ba4e..ef1bd9cc8e 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala @@ -1,5 +1,6 @@ package com.github.unchama.seichiassist.subsystems.breakflags +import cats.data.Kleisli import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlagName trait BreakFlagAPI[F[_], Player] { @@ -7,7 +8,7 @@ trait BreakFlagAPI[F[_], Player] { /** * @return 破壊フラグをトグルする作用 */ - def toggleBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] + def toggleBreakFlag(breakFlagName: BreakFlagName): Kleisli[F, Player, Unit] /** * @return 現在の破壊フラグを取得する作用 diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala index 6b8cbb3a2d..e313d23b89 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala @@ -1,15 +1,12 @@ package com.github.unchama.seichiassist.subsystems.breakflags +import cats.data.Kleisli import cats.effect.{Sync, SyncEffect} import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls import com.github.unchama.generic.ContextCoercion import com.github.unchama.seichiassist.meta.subsystem.Subsystem import com.github.unchama.seichiassist.subsystems.breakflags.application.repository.BreakFlagRepositoryDefinition -import com.github.unchama.seichiassist.subsystems.breakflags.domain.{ - BreakFlag, - BreakFlagName, - BreakFlagPersistence -} +import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagName, BreakFlagPersistence} import com.github.unchama.seichiassist.subsystems.breakflags.persistence.JdbcBreakFlagPersistence import org.bukkit.entity.Player @@ -33,7 +30,7 @@ object System { new System[F, Player] { override val api: BreakFlagAPI[F, Player] = new BreakFlagAPI[F, Player] { - override def toggleBreakFlag(player: Player, breakFlagName: BreakFlagName): F[Unit] = + override def toggleBreakFlag(breakFlagName: BreakFlagName): Kleisli[F, Player, Unit] = Kleisli { player => for { breakFlag <- breakFlag(player, breakFlagName) _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => @@ -43,6 +40,7 @@ object System { ) }) } yield () + } override def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] = ContextCoercion(for { diff --git a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala index d5dd66c7fb..838628fcaa 100644 --- a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala +++ b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala @@ -8,14 +8,11 @@ import com.github.unchama.seichiassist.MaterialSets.{BlockBreakableBySkill, Brea import com.github.unchama.seichiassist._ import com.github.unchama.seichiassist.concurrent.PluginExecutionContexts import com.github.unchama.seichiassist.seichiskill.ActiveSkillRange._ -import com.github.unchama.seichiassist.seichiskill.SeichiSkill.{ - AssaultArmor, - DualBreak, - TrialBreak -} +import com.github.unchama.seichiassist.seichiskill.SeichiSkill.{AssaultArmor, DualBreak, TrialBreak} import com.github.unchama.seichiassist.seichiskill.SeichiSkillUsageMode.{Active, Disabled} import com.github.unchama.seichiassist.subsystems.breakcount.domain.CardinalDirection import com.github.unchama.seichiassist.subsystems.breakcount.domain.level.SeichiExpAmount +import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlagName import com.github.unchama.targetedeffect.player.ActionBarMessageEffect import com.github.unchama.util.bukkit.ItemStackUtil import com.github.unchama.util.external.ExternalPlugins @@ -126,7 +123,7 @@ object BreakUtil { def isProtectedChest(player: Player, checkTarget: Block): Boolean = { checkTarget.getType match { case Material.CHEST | Material.TRAPPED_CHEST => - if (!SeichiAssist.playermap(player.getUniqueId).chestflag) { + if (!SeichiAssist.instance.breakFlagSystem.api.breakFlag(player, BreakFlagName.Chest).unsafeRunSync()) { ActionBarMessageEffect(s"${RED}スキルでのチェスト破壊は無効化されています").run(player).unsafeRunSync() true } else if (!player.getWorld.isSeichi) { @@ -143,7 +140,7 @@ object BreakUtil { checkTarget.getType match { // 鉱石ブロックの方はプロテクトの対象外 case Material.QUARTZ_BLOCK | Material.QUARTZ_STAIRS => - if (!SeichiAssist.playermap(player.getUniqueId).netherQuartzBlockflag) { + if (!SeichiAssist.instance.breakFlagSystem.api.breakFlag(player, BreakFlagName.NetherQuartz).unsafeRunSync()) { ActionBarMessageEffect(s"${RED}スキルでのネザー水晶類ブロックの破壊は無効化されています") .run(player) .unsafeRunSync() From 52fd5dc21c642d9b9bba1027eb341ca83fdc3df4 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 00:41:38 +0900 Subject: [PATCH 034/142] =?UTF-8?q?fix:=20TopLevelRouter=E3=81=ABbreakFlag?= =?UTF-8?q?SystemAPI=E3=82=92=E6=B8=A1=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/SeichiAssist.scala | 2 ++ .../seichiassist/menus/TopLevelRouter.scala | 4 ++- .../menus/skill/PassiveSkillMenu.scala | 7 ++--- .../subsystems/breakflags/System.scala | 29 +++++++++++-------- .../unchama/seichiassist/util/BreakUtil.scala | 24 +++++++++++++-- 5 files changed, 46 insertions(+), 20 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala index c69886971d..8c5f89a3a8 100644 --- a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala +++ b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala @@ -61,6 +61,7 @@ import com.github.unchama.seichiassist.subsystems._ import com.github.unchama.seichiassist.subsystems.anywhereender.AnywhereEnderChestAPI import com.github.unchama.seichiassist.subsystems.breakcount.{BreakCountAPI, BreakCountReadAPI} import com.github.unchama.seichiassist.subsystems.breakcountbar.BreakCountBarAPI +import com.github.unchama.seichiassist.subsystems.breakflags.BreakFlagAPI import com.github.unchama.seichiassist.subsystems.buildcount.BuildCountAPI import com.github.unchama.seichiassist.subsystems.discordnotification.DiscordNotificationAPI import com.github.unchama.seichiassist.subsystems.donate.DonatePremiumPointAPI @@ -701,6 +702,7 @@ class SeichiAssist extends JavaPlugin() { implicit val gachaAPI: GachaDrawAPI[IO, Player] = gachaSystem.api implicit val consumeGachaTicketAPI: ConsumeGachaTicketAPI[IO, Player] = consumeGachaTicketSystem.api + implicit val breakFlagAPI: BreakFlagAPI[IO, Player] = breakFlagSystem.api val menuRouter = TopLevelRouter.apply import SeichiAssist.Scopes.globalChatInterceptionScope diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala b/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala index 74397ac4c5..ffd8c1febf 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala @@ -29,6 +29,7 @@ import com.github.unchama.seichiassist.subsystems.anywhereender.AnywhereEnderChe import com.github.unchama.seichiassist.subsystems.breakcount.BreakCountAPI import com.github.unchama.seichiassist.subsystems.breakcount.domain.SeichiAmountData import com.github.unchama.seichiassist.subsystems.breakcountbar.BreakCountBarAPI +import com.github.unchama.seichiassist.subsystems.breakflags.BreakFlagAPI import com.github.unchama.seichiassist.subsystems.buildcount.domain.playerdata.BuildAmountData import com.github.unchama.seichiassist.subsystems.discordnotification.DiscordNotificationAPI import com.github.unchama.seichiassist.subsystems.donate.DonatePremiumPointAPI @@ -96,7 +97,8 @@ object TopLevelRouter { mineStackAPI: MineStackAPI[IO, Player, ItemStack], gachaDrawAPI: GachaDrawAPI[IO, Player], consumeGachaTicketAPI: ConsumeGachaTicketAPI[IO, Player], - fairySpeechAPI: FairySpeechAPI[IO, Player] + fairySpeechAPI: FairySpeechAPI[IO, Player], + breakFlagAPI: BreakFlagAPI[IO, Player] ): TopLevelRouter[IO] = new TopLevelRouter[IO] { import assortedRankingApi._ diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index d273f4ea33..aa15884d55 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -146,10 +146,9 @@ object PassiveSkillMenu extends Menu { import environment._ - val computeToggleChestBreakButton: IO[Button] = RecomputedButton( - for { - chestFlag <- breakFlagAPI.breakFlag(player, BreakFlagName.Chest) - } yield { + val computeToggleChestBreakButton: IO[Button] = RecomputedButton(for { + chestFlag <- breakFlagAPI.breakFlag(player, BreakFlagName.Chest) + } yield { val baseLore = List(s"${GREEN}スキルでチェストを破壊するスキル") val statusLore = if (chestFlag) { List(s"${RED}整地ワールドのみで発動中(デフォルト)", "", s"$DARK_GREEN${UNDERLINE}クリックで切り替え") diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala index e313d23b89..19cb575881 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala @@ -6,7 +6,11 @@ import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls import com.github.unchama.generic.ContextCoercion import com.github.unchama.seichiassist.meta.subsystem.Subsystem import com.github.unchama.seichiassist.subsystems.breakflags.application.repository.BreakFlagRepositoryDefinition -import com.github.unchama.seichiassist.subsystems.breakflags.domain.{BreakFlag, BreakFlagName, BreakFlagPersistence} +import com.github.unchama.seichiassist.subsystems.breakflags.domain.{ + BreakFlag, + BreakFlagName, + BreakFlagPersistence +} import com.github.unchama.seichiassist.subsystems.breakflags.persistence.JdbcBreakFlagPersistence import org.bukkit.entity.Player @@ -30,17 +34,18 @@ object System { new System[F, Player] { override val api: BreakFlagAPI[F, Player] = new BreakFlagAPI[F, Player] { - override def toggleBreakFlag(breakFlagName: BreakFlagName): Kleisli[F, Player, Unit] = Kleisli { player => - for { - breakFlag <- breakFlag(player, breakFlagName) - _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => - breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag( - breakFlagName, - flag = !breakFlag - ) - }) - } yield () - } + override def toggleBreakFlag(breakFlagName: BreakFlagName): Kleisli[F, Player, Unit] = + Kleisli { player => + for { + breakFlag <- breakFlag(player, breakFlagName) + _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => + breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag( + breakFlagName, + flag = !breakFlag + ) + }) + } yield () + } override def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] = ContextCoercion(for { diff --git a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala index 838628fcaa..cafe8f61bc 100644 --- a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala +++ b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala @@ -8,7 +8,11 @@ import com.github.unchama.seichiassist.MaterialSets.{BlockBreakableBySkill, Brea import com.github.unchama.seichiassist._ import com.github.unchama.seichiassist.concurrent.PluginExecutionContexts import com.github.unchama.seichiassist.seichiskill.ActiveSkillRange._ -import com.github.unchama.seichiassist.seichiskill.SeichiSkill.{AssaultArmor, DualBreak, TrialBreak} +import com.github.unchama.seichiassist.seichiskill.SeichiSkill.{ + AssaultArmor, + DualBreak, + TrialBreak +} import com.github.unchama.seichiassist.seichiskill.SeichiSkillUsageMode.{Active, Disabled} import com.github.unchama.seichiassist.subsystems.breakcount.domain.CardinalDirection import com.github.unchama.seichiassist.subsystems.breakcount.domain.level.SeichiExpAmount @@ -123,7 +127,14 @@ object BreakUtil { def isProtectedChest(player: Player, checkTarget: Block): Boolean = { checkTarget.getType match { case Material.CHEST | Material.TRAPPED_CHEST => - if (!SeichiAssist.instance.breakFlagSystem.api.breakFlag(player, BreakFlagName.Chest).unsafeRunSync()) { + if ( + !SeichiAssist + .instance + .breakFlagSystem + .api + .breakFlag(player, BreakFlagName.Chest) + .unsafeRunSync() + ) { ActionBarMessageEffect(s"${RED}スキルでのチェスト破壊は無効化されています").run(player).unsafeRunSync() true } else if (!player.getWorld.isSeichi) { @@ -140,7 +151,14 @@ object BreakUtil { checkTarget.getType match { // 鉱石ブロックの方はプロテクトの対象外 case Material.QUARTZ_BLOCK | Material.QUARTZ_STAIRS => - if (!SeichiAssist.instance.breakFlagSystem.api.breakFlag(player, BreakFlagName.NetherQuartz).unsafeRunSync()) { + if ( + !SeichiAssist + .instance + .breakFlagSystem + .api + .breakFlag(player, BreakFlagName.NetherQuartz) + .unsafeRunSync() + ) { ActionBarMessageEffect(s"${RED}スキルでのネザー水晶類ブロックの破壊は無効化されています") .run(player) .unsafeRunSync() From 87c74b1595809e57b2fdb5c390aafe6c6fa68913 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 13:52:11 +0900 Subject: [PATCH 035/142] =?UTF-8?q?style:=20subsystem=E5=90=8D=E3=82=92bre?= =?UTF-8?q?akskilltargetconfig=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/github/unchama/seichiassist/SeichiAssist.scala | 6 +++--- .../unchama/seichiassist/menus/TopLevelRouter.scala | 2 +- .../seichiassist/menus/skill/PassiveSkillMenu.scala | 4 ++-- .../subsystems/breakflags/domain/BreakFlag.scala | 3 --- .../BreakFlagAPI.scala | 4 ++-- .../{breakflags => breakskilltargetconfig}/System.scala | 8 ++++---- .../repository/BreakFlagRepositoryDefinition.scala | 4 ++-- .../breakskilltargetconfig/domain/BreakFlag.scala | 3 +++ .../domain/BreakFlagName.scala | 2 +- .../domain/BreakFlagPersistence.scala | 2 +- .../persistence/JdbcBreakFlagPersistence.scala | 4 ++-- .../com/github/unchama/seichiassist/util/BreakUtil.scala | 2 +- 12 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala rename src/main/scala/com/github/unchama/seichiassist/subsystems/{breakflags => breakskilltargetconfig}/BreakFlagAPI.scala (73%) rename src/main/scala/com/github/unchama/seichiassist/subsystems/{breakflags => breakskilltargetconfig}/System.scala (83%) rename src/main/scala/com/github/unchama/seichiassist/subsystems/{breakflags => breakskilltargetconfig}/application/repository/BreakFlagRepositoryDefinition.scala (76%) create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala rename src/main/scala/com/github/unchama/seichiassist/subsystems/{breakflags => breakskilltargetconfig}/domain/BreakFlagName.scala (87%) rename src/main/scala/com/github/unchama/seichiassist/subsystems/{breakflags => breakskilltargetconfig}/domain/BreakFlagPersistence.scala (63%) rename src/main/scala/com/github/unchama/seichiassist/subsystems/{breakflags => breakskilltargetconfig}/persistence/JdbcBreakFlagPersistence.scala (88%) diff --git a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala index 8c5f89a3a8..3855f0785d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala +++ b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala @@ -61,7 +61,7 @@ import com.github.unchama.seichiassist.subsystems._ import com.github.unchama.seichiassist.subsystems.anywhereender.AnywhereEnderChestAPI import com.github.unchama.seichiassist.subsystems.breakcount.{BreakCountAPI, BreakCountReadAPI} import com.github.unchama.seichiassist.subsystems.breakcountbar.BreakCountBarAPI -import com.github.unchama.seichiassist.subsystems.breakflags.BreakFlagAPI +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.BreakFlagAPI import com.github.unchama.seichiassist.subsystems.buildcount.BuildCountAPI import com.github.unchama.seichiassist.subsystems.discordnotification.DiscordNotificationAPI import com.github.unchama.seichiassist.subsystems.donate.DonatePremiumPointAPI @@ -483,8 +483,8 @@ class SeichiAssist extends JavaPlugin() { /* TODO: breakFlagSystemは本来privateであるべきだが、 BreakUtilで呼び出されているため、やむを得ずpublicになっている */ - lazy val breakFlagSystem: subsystems.breakflags.System[IO, Player] = - subsystems.breakflags.System.wired[IO, SyncIO].unsafeRunSync() + lazy val breakFlagSystem: subsystems.breakskilltargetconfig.System[IO, Player] = + subsystems.breakskilltargetconfig.System.wired[IO, SyncIO].unsafeRunSync() /* TODO: mineStackSystemは本来privateであるべきだが、mineStackにアイテムを格納するAPIが現状の BreakUtilの実装から呼び出されている都合上やむを得ずpublicになっている。*/ diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala b/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala index ffd8c1febf..960d53195d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala @@ -29,7 +29,7 @@ import com.github.unchama.seichiassist.subsystems.anywhereender.AnywhereEnderChe import com.github.unchama.seichiassist.subsystems.breakcount.BreakCountAPI import com.github.unchama.seichiassist.subsystems.breakcount.domain.SeichiAmountData import com.github.unchama.seichiassist.subsystems.breakcountbar.BreakCountBarAPI -import com.github.unchama.seichiassist.subsystems.breakflags.BreakFlagAPI +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.BreakFlagAPI import com.github.unchama.seichiassist.subsystems.buildcount.domain.playerdata.BuildAmountData import com.github.unchama.seichiassist.subsystems.discordnotification.DiscordNotificationAPI import com.github.unchama.seichiassist.subsystems.donate.DonatePremiumPointAPI diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index aa15884d55..73dbf5182d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -11,8 +11,8 @@ import com.github.unchama.seichiassist.data.MenuInventoryData import com.github.unchama.seichiassist.menus.CommonButtons import com.github.unchama.seichiassist.menus.stickmenu.FirstPage import com.github.unchama.seichiassist.subsystems.breakcount.BreakCountAPI -import com.github.unchama.seichiassist.subsystems.breakflags.BreakFlagAPI -import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlagName +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.BreakFlagAPI +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakFlagName import com.github.unchama.targetedeffect._ import com.github.unchama.targetedeffect.commandsender.MessageEffect import com.github.unchama.targetedeffect.player.FocusedSoundEffect diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala deleted file mode 100644 index cc86666143..0000000000 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlag.scala +++ /dev/null @@ -1,3 +0,0 @@ -package com.github.unchama.seichiassist.subsystems.breakflags.domain - -case class BreakFlag(flagName: BreakFlagName, flag: Boolean) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakFlagAPI.scala similarity index 73% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakFlagAPI.scala index ef1bd9cc8e..ff45976146 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/BreakFlagAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakFlagAPI.scala @@ -1,7 +1,7 @@ -package com.github.unchama.seichiassist.subsystems.breakflags +package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig import cats.data.Kleisli -import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlagName +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakFlagName trait BreakFlagAPI[F[_], Player] { diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala similarity index 83% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index 19cb575881..d7b5f684c8 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -1,17 +1,17 @@ -package com.github.unchama.seichiassist.subsystems.breakflags +package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig import cats.data.Kleisli import cats.effect.{Sync, SyncEffect} import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls import com.github.unchama.generic.ContextCoercion import com.github.unchama.seichiassist.meta.subsystem.Subsystem -import com.github.unchama.seichiassist.subsystems.breakflags.application.repository.BreakFlagRepositoryDefinition -import com.github.unchama.seichiassist.subsystems.breakflags.domain.{ +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.application.repository.BreakFlagRepositoryDefinition +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ BreakFlag, BreakFlagName, BreakFlagPersistence } -import com.github.unchama.seichiassist.subsystems.breakflags.persistence.JdbcBreakFlagPersistence +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.persistence.JdbcBreakFlagPersistence import org.bukkit.entity.Player trait System[F[_], Player] extends Subsystem[F] { diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakFlagRepositoryDefinition.scala similarity index 76% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakFlagRepositoryDefinition.scala index 384868125f..b6c1fff3b3 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/application/repository/BreakFlagRepositoryDefinition.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakFlagRepositoryDefinition.scala @@ -1,10 +1,10 @@ -package com.github.unchama.seichiassist.subsystems.breakflags.application.repository +package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.application.repository import cats.effect.Sync import cats.effect.concurrent.Ref import com.github.unchama.datarepository.definitions.RefDictBackedRepositoryDefinition import com.github.unchama.datarepository.template.RepositoryDefinition -import com.github.unchama.seichiassist.subsystems.breakflags.domain.{ +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ BreakFlag, BreakFlagPersistence } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala new file mode 100644 index 0000000000..cddae03a0c --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala @@ -0,0 +1,3 @@ +package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain + +case class BreakFlag(flagName: BreakFlagName, flag: Boolean) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagName.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagName.scala similarity index 87% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagName.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagName.scala index cba4e1fe68..3c3c5eb6f1 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagName.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagName.scala @@ -1,4 +1,4 @@ -package com.github.unchama.seichiassist.subsystems.breakflags.domain +package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain import enumeratum.{Enum, EnumEntry} diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagPersistence.scala similarity index 63% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagPersistence.scala index 5ede21796d..d26a3eb50a 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/domain/BreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagPersistence.scala @@ -1,4 +1,4 @@ -package com.github.unchama.seichiassist.subsystems.breakflags.domain +package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain import com.github.unchama.generic.RefDict diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala similarity index 88% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala index 394f6fbbbf..dc5e759200 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakflags/persistence/JdbcBreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala @@ -1,7 +1,7 @@ -package com.github.unchama.seichiassist.subsystems.breakflags.persistence +package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.persistence import cats.effect.Sync -import com.github.unchama.seichiassist.subsystems.breakflags.domain.{ +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ BreakFlag, BreakFlagName, BreakFlagPersistence diff --git a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala index cafe8f61bc..b94ee9022d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala +++ b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala @@ -16,7 +16,7 @@ import com.github.unchama.seichiassist.seichiskill.SeichiSkill.{ import com.github.unchama.seichiassist.seichiskill.SeichiSkillUsageMode.{Active, Disabled} import com.github.unchama.seichiassist.subsystems.breakcount.domain.CardinalDirection import com.github.unchama.seichiassist.subsystems.breakcount.domain.level.SeichiExpAmount -import com.github.unchama.seichiassist.subsystems.breakflags.domain.BreakFlagName +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakFlagName import com.github.unchama.targetedeffect.player.ActionBarMessageEffect import com.github.unchama.util.bukkit.ItemStackUtil import com.github.unchama.util.external.ExternalPlugins From 5287c8729df825252245245db865159563d91bca Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 13:54:13 +0900 Subject: [PATCH 036/142] =?UTF-8?q?style:=20BreakFlagName=E3=82=92BreakSki?= =?UTF-8?q?llTargetConfigKey=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seichiassist/menus/skill/PassiveSkillMenu.scala | 10 +++++----- .../breakskilltargetconfig/BreakFlagAPI.scala | 6 +++--- .../subsystems/breakskilltargetconfig/System.scala | 6 +++--- .../breakskilltargetconfig/domain/BreakFlag.scala | 2 +- ...kFlagName.scala => BreakSkillTargetConfigKey.scala} | 10 +++++----- .../persistence/JdbcBreakFlagPersistence.scala | 4 ++-- .../github/unchama/seichiassist/util/BreakUtil.scala | 6 +++--- 7 files changed, 22 insertions(+), 22 deletions(-) rename src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/{BreakFlagName.scala => BreakSkillTargetConfigKey.scala} (57%) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index 73dbf5182d..da97507ea3 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -12,7 +12,7 @@ import com.github.unchama.seichiassist.menus.CommonButtons import com.github.unchama.seichiassist.menus.stickmenu.FirstPage import com.github.unchama.seichiassist.subsystems.breakcount.BreakCountAPI import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.BreakFlagAPI -import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakFlagName +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakSkillTargetConfigKey import com.github.unchama.targetedeffect._ import com.github.unchama.targetedeffect.commandsender.MessageEffect import com.github.unchama.targetedeffect.player.FocusedSoundEffect @@ -147,7 +147,7 @@ object PassiveSkillMenu extends Menu { import environment._ val computeToggleChestBreakButton: IO[Button] = RecomputedButton(for { - chestFlag <- breakFlagAPI.breakFlag(player, BreakFlagName.Chest) + chestFlag <- breakFlagAPI.breakFlag(player, BreakSkillTargetConfigKey.Chest) } yield { val baseLore = List(s"${GREEN}スキルでチェストを破壊するスキル") val statusLore = if (chestFlag) { @@ -164,7 +164,7 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakFlagName.Chest))), + DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakSkillTargetConfigKey.Chest))), DeferredEffect(IO { if (chestFlag) { SequentialEffect( @@ -184,7 +184,7 @@ object PassiveSkillMenu extends Menu { }) val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(for { - quartzBreakFlag <- breakFlagAPI.breakFlag(player, BreakFlagName.NetherQuartz) + quartzBreakFlag <- breakFlagAPI.breakFlag(player, BreakSkillTargetConfigKey.NetherQuartz) } yield { val baseLore = List(s"${YELLOW}スキルでネザー水晶類ブロックを破壊するスキル") val statusLore = if (quartzBreakFlag) { @@ -204,7 +204,7 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakFlagName.NetherQuartz))), + DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakSkillTargetConfigKey.NetherQuartz))), DeferredEffect(IO { if (quartzBreakFlag) { SequentialEffect( diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakFlagAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakFlagAPI.scala index ff45976146..5bc6ec5285 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakFlagAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakFlagAPI.scala @@ -1,19 +1,19 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig import cats.data.Kleisli -import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakFlagName +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakSkillTargetConfigKey trait BreakFlagAPI[F[_], Player] { /** * @return 破壊フラグをトグルする作用 */ - def toggleBreakFlag(breakFlagName: BreakFlagName): Kleisli[F, Player, Unit] + def toggleBreakFlag(breakFlagName: BreakSkillTargetConfigKey): Kleisli[F, Player, Unit] /** * @return 現在の破壊フラグを取得する作用 */ - def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] + def breakFlag(player: Player, breakFlagName: BreakSkillTargetConfigKey): F[Boolean] } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index d7b5f684c8..f4ed2eaab2 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -8,7 +8,7 @@ import com.github.unchama.seichiassist.meta.subsystem.Subsystem import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.application.repository.BreakFlagRepositoryDefinition import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ BreakFlag, - BreakFlagName, + BreakSkillTargetConfigKey, BreakFlagPersistence } import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.persistence.JdbcBreakFlagPersistence @@ -34,7 +34,7 @@ object System { new System[F, Player] { override val api: BreakFlagAPI[F, Player] = new BreakFlagAPI[F, Player] { - override def toggleBreakFlag(breakFlagName: BreakFlagName): Kleisli[F, Player, Unit] = + override def toggleBreakFlag(breakFlagName: BreakSkillTargetConfigKey): Kleisli[F, Player, Unit] = Kleisli { player => for { breakFlag <- breakFlag(player, breakFlagName) @@ -47,7 +47,7 @@ object System { } yield () } - override def breakFlag(player: Player, breakFlagName: BreakFlagName): F[Boolean] = + override def breakFlag(player: Player, breakFlagName: BreakSkillTargetConfigKey): F[Boolean] = ContextCoercion(for { flags <- breakFlagRepository(player).get } yield { diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala index cddae03a0c..19fbc0edef 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala @@ -1,3 +1,3 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain -case class BreakFlag(flagName: BreakFlagName, flag: Boolean) +case class BreakFlag(flagName: BreakSkillTargetConfigKey, flag: Boolean) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagName.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala similarity index 57% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagName.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala index 3c3c5eb6f1..b1c6d715b7 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagName.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala @@ -5,20 +5,20 @@ import enumeratum.{Enum, EnumEntry} /** * 定義されたブロックを破壊するかしないかを表すためのフラグの名前を集めたEnum */ -sealed trait BreakFlagName extends EnumEntry +sealed trait BreakSkillTargetConfigKey extends EnumEntry -object BreakFlagName extends Enum[BreakFlagName] { +object BreakSkillTargetConfigKey extends Enum[BreakSkillTargetConfigKey] { - val values: IndexedSeq[BreakFlagName] = findValues + val values: IndexedSeq[BreakSkillTargetConfigKey] = findValues /** * Chestブロックを破壊するかを示すフラグ名 */ - case object Chest extends BreakFlagName + case object Chest extends BreakSkillTargetConfigKey /** * ネザークォーツ系ブロックを破壊するかを示すフラグ名 */ - case object NetherQuartz extends BreakFlagName + case object NetherQuartz extends BreakSkillTargetConfigKey } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala index dc5e759200..cbaa3b2bf2 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala @@ -3,7 +3,7 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.persis import cats.effect.Sync import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ BreakFlag, - BreakFlagName, + BreakSkillTargetConfigKey, BreakFlagPersistence } import scalikejdbc.{DB, scalikejdbcSQLInterpolationImplicitDef} @@ -16,7 +16,7 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { val breakFlags = sql"SELECT flag_name, can_break FROM break_flags WHERE uuid = ${key.toString}" .map { rs => - BreakFlagName.withNameOption(rs.string("flag_name")).map { flagName => + BreakSkillTargetConfigKey.withNameOption(rs.string("flag_name")).map { flagName => BreakFlag(flagName, rs.boolean("can_break")) } } diff --git a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala index b94ee9022d..daa11f6837 100644 --- a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala +++ b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala @@ -16,7 +16,7 @@ import com.github.unchama.seichiassist.seichiskill.SeichiSkill.{ import com.github.unchama.seichiassist.seichiskill.SeichiSkillUsageMode.{Active, Disabled} import com.github.unchama.seichiassist.subsystems.breakcount.domain.CardinalDirection import com.github.unchama.seichiassist.subsystems.breakcount.domain.level.SeichiExpAmount -import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakFlagName +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakSkillTargetConfigKey import com.github.unchama.targetedeffect.player.ActionBarMessageEffect import com.github.unchama.util.bukkit.ItemStackUtil import com.github.unchama.util.external.ExternalPlugins @@ -132,7 +132,7 @@ object BreakUtil { .instance .breakFlagSystem .api - .breakFlag(player, BreakFlagName.Chest) + .breakFlag(player, BreakSkillTargetConfigKey.Chest) .unsafeRunSync() ) { ActionBarMessageEffect(s"${RED}スキルでのチェスト破壊は無効化されています").run(player).unsafeRunSync() @@ -156,7 +156,7 @@ object BreakUtil { .instance .breakFlagSystem .api - .breakFlag(player, BreakFlagName.NetherQuartz) + .breakFlag(player, BreakSkillTargetConfigKey.NetherQuartz) .unsafeRunSync() ) { ActionBarMessageEffect(s"${RED}スキルでのネザー水晶類ブロックの破壊は無効化されています") From d749b61d1b9ec46ca970f810f40ec35458ab1365 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 13:55:39 +0900 Subject: [PATCH 037/142] =?UTF-8?q?docs:=20BreakSkillTargetConfigKey?= =?UTF-8?q?=E3=81=AE=E3=82=AA=E3=83=96=E3=82=B8=E3=82=A7=E3=82=AF=E3=83=88?= =?UTF-8?q?=E3=81=AE=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=82=92=E7=9B=B4=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/BreakSkillTargetConfigKey.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala index b1c6d715b7..bfff92fc4a 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala @@ -12,12 +12,12 @@ object BreakSkillTargetConfigKey extends Enum[BreakSkillTargetConfigKey] { val values: IndexedSeq[BreakSkillTargetConfigKey] = findValues /** - * Chestブロックを破壊するかを示すフラグ名 + * チェストを破壊するかどうか */ case object Chest extends BreakSkillTargetConfigKey /** - * ネザークォーツ系ブロックを破壊するかを示すフラグ名 + * ネザークォーツをクラフトしたブロックを破壊するかどうか */ case object NetherQuartz extends BreakSkillTargetConfigKey From 5182e84fe505a303a86b1f9705e1e43885643232 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 13:56:48 +0900 Subject: [PATCH 038/142] =?UTF-8?q?style:=20BreakFlag=E3=81=AEflag?= =?UTF-8?q?=E5=A4=89=E6=95=B0=E3=82=92includes=E3=81=AB=E5=A4=89=E3=81=88?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/breakskilltargetconfig/System.scala | 4 ++-- .../subsystems/breakskilltargetconfig/domain/BreakFlag.scala | 2 +- .../persistence/JdbcBreakFlagPersistence.scala | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index f4ed2eaab2..82a09b769e 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -41,7 +41,7 @@ object System { _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag( breakFlagName, - flag = !breakFlag + includes = !breakFlag ) }) } yield () @@ -52,7 +52,7 @@ object System { flags <- breakFlagRepository(player).get } yield { flags.find(_.flagName == breakFlagName) match { - case Some(value) => value.flag + case Some(value) => value.includes case None => true // 破壊フラグのデフォルト値はtrue(破壊する) } }) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala index 19fbc0edef..7801adedfa 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala @@ -1,3 +1,3 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain -case class BreakFlag(flagName: BreakSkillTargetConfigKey, flag: Boolean) +case class BreakFlag(flagName: BreakSkillTargetConfigKey, includes: Boolean) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala index cbaa3b2bf2..ffe80e45f1 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala @@ -31,7 +31,7 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { override def write(key: UUID, value: List[BreakFlag]): F[Unit] = Sync[F].delay { DB.localTx { implicit session => val uuid = key.toString - val batchParams = value.map { flag => Seq(uuid, flag.flagName.entryName, flag.flag) } + val batchParams = value.map { flag => Seq(uuid, flag.flagName.entryName, flag.includes) } sql"""INSERT INTO break_flags (uuid, flag_name, can_break) | VALUES (?, ?, ?) From 7c09c8fd61aae0645afa67c2ce62b61a9ad6af7f Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 13:59:13 +0900 Subject: [PATCH 039/142] =?UTF-8?q?refactor:=20BreakFlagPersistence?= =?UTF-8?q?=E3=81=8C=E6=8C=81=E3=81=A4=E5=80=A4=E3=81=AE=E5=9E=8B=E3=82=92?= =?UTF-8?q?List=E3=81=8B=E3=82=89Set=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/BreakFlagPersistence.scala | 2 +- .../persistence/JdbcBreakFlagPersistence.scala | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagPersistence.scala index d26a3eb50a..93a3293641 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagPersistence.scala @@ -4,4 +4,4 @@ import com.github.unchama.generic.RefDict import java.util.UUID -trait BreakFlagPersistence[F[_]] extends RefDict[F, UUID, List[BreakFlag]] +trait BreakFlagPersistence[F[_]] extends RefDict[F, UUID, Set[BreakFlag]] diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala index ffe80e45f1..4cf8765083 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala @@ -11,7 +11,7 @@ import scalikejdbc.{DB, scalikejdbcSQLInterpolationImplicitDef} import java.util.UUID class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { - override def read(key: UUID): F[Option[List[BreakFlag]]] = Sync[F].delay { + override def read(key: UUID): F[Option[Set[BreakFlag]]] = Sync[F].delay { DB.readOnly { implicit session => val breakFlags = sql"SELECT flag_name, can_break FROM break_flags WHERE uuid = ${key.toString}" @@ -22,16 +22,17 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { } .toList() .apply() + .toSet .collect { case Some(flag) => flag } Some(breakFlags) } } - override def write(key: UUID, value: List[BreakFlag]): F[Unit] = Sync[F].delay { + override def write(key: UUID, value: Set[BreakFlag]): F[Unit] = Sync[F].delay { DB.localTx { implicit session => val uuid = key.toString - val batchParams = value.map { flag => Seq(uuid, flag.flagName.entryName, flag.includes) } + val batchParams = value.map { flag => Seq(uuid, flag.flagName.entryName, flag.includes) }.toSeq sql"""INSERT INTO break_flags (uuid, flag_name, can_break) | VALUES (?, ?, ?) From d4d294b2129154cf3aeef50d111a08d24564ff19 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:05:54 +0900 Subject: [PATCH 040/142] =?UTF-8?q?refactor:=20Option#fold=E3=82=92?= =?UTF-8?q?=E4=BD=BF=E3=81=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/breakskilltargetconfig/System.scala | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index 82a09b769e..1858f49f06 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -50,12 +50,7 @@ object System { override def breakFlag(player: Player, breakFlagName: BreakSkillTargetConfigKey): F[Boolean] = ContextCoercion(for { flags <- breakFlagRepository(player).get - } yield { - flags.find(_.flagName == breakFlagName) match { - case Some(value) => value.includes - case None => true // 破壊フラグのデフォルト値はtrue(破壊する) - } - }) + } yield flags.find(_.flagName == breakFlagName).fold(true)(_.includes)) } } } From f9c3f076db6e445808992f2d96016ffb2cde1d29 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:08:34 +0900 Subject: [PATCH 041/142] =?UTF-8?q?style:=20SkillMenu=E3=81=AEflag?= =?UTF-8?q?=E8=A8=88=E7=AE=97=E3=81=AE=E5=A4=89=E6=95=B0=E5=90=8D=E3=82=92?= =?UTF-8?q?=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../menus/skill/PassiveSkillMenu.scala | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index da97507ea3..8440ad7ee3 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -147,15 +147,15 @@ object PassiveSkillMenu extends Menu { import environment._ val computeToggleChestBreakButton: IO[Button] = RecomputedButton(for { - chestFlag <- breakFlagAPI.breakFlag(player, BreakSkillTargetConfigKey.Chest) + breakChest <- breakFlagAPI.breakFlag(player, BreakSkillTargetConfigKey.Chest) } yield { val baseLore = List(s"${GREEN}スキルでチェストを破壊するスキル") - val statusLore = if (chestFlag) { + val statusLore = if (breakChest) { List(s"${RED}整地ワールドのみで発動中(デフォルト)", "", s"$DARK_GREEN${UNDERLINE}クリックで切り替え") } else { List(s"${RED}発動しません", "", s"$DARK_GREEN${UNDERLINE}クリックで切り替え") } - val material = if (chestFlag) Material.DIAMOND_AXE else Material.CHEST + val material = if (breakChest) Material.DIAMOND_AXE else Material.CHEST Button( new IconItemStackBuilder(material) @@ -166,7 +166,7 @@ object PassiveSkillMenu extends Menu { SequentialEffect( DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakSkillTargetConfigKey.Chest))), DeferredEffect(IO { - if (chestFlag) { + if (breakChest) { SequentialEffect( MessageEffect(s"${GREEN}スキルでのチェスト破壊を有効化しました。"), FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 1f) @@ -184,10 +184,10 @@ object PassiveSkillMenu extends Menu { }) val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(for { - quartzBreakFlag <- breakFlagAPI.breakFlag(player, BreakSkillTargetConfigKey.NetherQuartz) + breakQuartz <- breakFlagAPI.breakFlag(player, BreakSkillTargetConfigKey.NetherQuartz) } yield { val baseLore = List(s"${YELLOW}スキルでネザー水晶類ブロックを破壊するスキル") - val statusLore = if (quartzBreakFlag) { + val statusLore = if (breakQuartz) { List(s"${GREEN}ON (スキルでネザー水晶類ブロックを破壊します。)", s"${DARK_RED}クリックでOFF") } else { List(s"${RED}OFF (スキルでネザー水晶類ブロックを破壊しません。)", s"${DARK_GREEN}クリックでON") @@ -196,7 +196,7 @@ object PassiveSkillMenu extends Menu { Button( new IconItemStackBuilder(Material.QUARTZ_BLOCK) .tap { builder => - if (quartzBreakFlag) + if (breakQuartz) builder.enchanted() } .title(s"$WHITE$UNDERLINE${BOLD}ネザー水晶類ブロック破壊スキル切り替え") @@ -206,7 +206,7 @@ object PassiveSkillMenu extends Menu { SequentialEffect( DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakSkillTargetConfigKey.NetherQuartz))), DeferredEffect(IO { - if (quartzBreakFlag) { + if (breakQuartz) { SequentialEffect( MessageEffect(s"${GREEN}スキルでのネザー水晶類ブロック破壊を有効化しました。"), FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 1f) From a102e990c6dca095c3f2c517eb7a4fb768aeff5f Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:11:21 +0900 Subject: [PATCH 042/142] =?UTF-8?q?style:=20Enum=E5=90=8D=E3=82=92?= =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3=E3=83=88=E3=81=AB?= =?UTF-8?q?=E3=81=82=E3=82=8F=E3=81=9B=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/menus/skill/PassiveSkillMenu.scala | 4 ++-- .../domain/BreakSkillTargetConfigKey.scala | 2 +- .../com/github/unchama/seichiassist/util/BreakUtil.scala | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index 8440ad7ee3..d52be361a2 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -184,7 +184,7 @@ object PassiveSkillMenu extends Menu { }) val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(for { - breakQuartz <- breakFlagAPI.breakFlag(player, BreakSkillTargetConfigKey.NetherQuartz) + breakQuartz <- breakFlagAPI.breakFlag(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) } yield { val baseLore = List(s"${YELLOW}スキルでネザー水晶類ブロックを破壊するスキル") val statusLore = if (breakQuartz) { @@ -204,7 +204,7 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakSkillTargetConfigKey.NetherQuartz))), + DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakSkillTargetConfigKey.MadeFromNetherQuartz))), DeferredEffect(IO { if (breakQuartz) { SequentialEffect( diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala index bfff92fc4a..e3a59d494c 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala @@ -19,6 +19,6 @@ object BreakSkillTargetConfigKey extends Enum[BreakSkillTargetConfigKey] { /** * ネザークォーツをクラフトしたブロックを破壊するかどうか */ - case object NetherQuartz extends BreakSkillTargetConfigKey + case object MadeFromNetherQuartz extends BreakSkillTargetConfigKey } diff --git a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala index daa11f6837..309eb969c5 100644 --- a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala +++ b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala @@ -156,7 +156,7 @@ object BreakUtil { .instance .breakFlagSystem .api - .breakFlag(player, BreakSkillTargetConfigKey.NetherQuartz) + .breakFlag(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) .unsafeRunSync() ) { ActionBarMessageEffect(s"${RED}スキルでのネザー水晶類ブロックの破壊は無効化されています") From b06e6149daee1f8b9349632c3fe4ee407ce38490 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:12:27 +0900 Subject: [PATCH 043/142] =?UTF-8?q?docs:=20BreakSkillTargetConfigKey?= =?UTF-8?q?=E3=81=AE=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=82=92=E3=82=88=E3=82=8A=E9=81=A9=E5=88=87=E3=81=AA=E3=82=82?= =?UTF-8?q?=E3=81=AE=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/BreakSkillTargetConfigKey.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala index e3a59d494c..ea511195c2 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigKey.scala @@ -3,7 +3,9 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain import enumeratum.{Enum, EnumEntry} /** - * 定義されたブロックを破壊するかしないかを表すためのフラグの名前を集めたEnum + * 予め決められたブロックの集合を表現する。 + * これらの値は整地スキルでブロックを破壊する際に、 + * プレイヤーの設定に応じて一部のブロックを除外する際に使われる。 */ sealed trait BreakSkillTargetConfigKey extends EnumEntry From b0171c83eaed8f200ae0384595ad120eb72cb879 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:21:35 +0900 Subject: [PATCH 044/142] fix: compile error --- .../seichiassist/menus/skill/PassiveSkillMenu.scala | 7 +++++-- .../subsystems/breakskilltargetconfig/System.scala | 11 ++++++++--- .../repository/BreakFlagRepositoryDefinition.scala | 4 ++-- .../persistence/JdbcBreakFlagPersistence.scala | 8 +++++--- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index d52be361a2..253090a088 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -184,7 +184,8 @@ object PassiveSkillMenu extends Menu { }) val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(for { - breakQuartz <- breakFlagAPI.breakFlag(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) + breakQuartz <- breakFlagAPI + .breakFlag(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) } yield { val baseLore = List(s"${YELLOW}スキルでネザー水晶類ブロックを破壊するスキル") val statusLore = if (breakQuartz) { @@ -204,7 +205,9 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakSkillTargetConfigKey.MadeFromNetherQuartz))), + DeferredEffect( + IO(breakFlagAPI.toggleBreakFlag(BreakSkillTargetConfigKey.MadeFromNetherQuartz)) + ), DeferredEffect(IO { if (breakQuartz) { SequentialEffect( diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index 1858f49f06..06951c1f5d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -34,12 +34,14 @@ object System { new System[F, Player] { override val api: BreakFlagAPI[F, Player] = new BreakFlagAPI[F, Player] { - override def toggleBreakFlag(breakFlagName: BreakSkillTargetConfigKey): Kleisli[F, Player, Unit] = + override def toggleBreakFlag( + breakFlagName: BreakSkillTargetConfigKey + ): Kleisli[F, Player, Unit] = Kleisli { player => for { breakFlag <- breakFlag(player, breakFlagName) _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => - breakFlags.filterNot(_.flagName == breakFlagName) :+ BreakFlag( + breakFlags.filterNot(_.flagName == breakFlagName) + BreakFlag( breakFlagName, includes = !breakFlag ) @@ -47,7 +49,10 @@ object System { } yield () } - override def breakFlag(player: Player, breakFlagName: BreakSkillTargetConfigKey): F[Boolean] = + override def breakFlag( + player: Player, + breakFlagName: BreakSkillTargetConfigKey + ): F[Boolean] = ContextCoercion(for { flags <- breakFlagRepository(player).get } yield flags.find(_.flagName == breakFlagName).fold(true)(_.includes)) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakFlagRepositoryDefinition.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakFlagRepositoryDefinition.scala index b6c1fff3b3..2ca80f26e4 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakFlagRepositoryDefinition.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakFlagRepositoryDefinition.scala @@ -13,9 +13,9 @@ object BreakFlagRepositoryDefinition { def withContext[F[_]: Sync, Player]( implicit persistence: BreakFlagPersistence[F] - ): RepositoryDefinition[F, Player, Ref[F, List[BreakFlag]]] = + ): RepositoryDefinition[F, Player, Ref[F, Set[BreakFlag]]] = RefDictBackedRepositoryDefinition - .usingUuidRefDict[F, Player, List[BreakFlag]](persistence)(List.empty) + .usingUuidRefDict[F, Player, Set[BreakFlag]](persistence)(Set.empty) .toRefRepository } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala index 4cf8765083..67781e9a74 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala @@ -22,8 +22,8 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { } .toList() .apply() - .toSet .collect { case Some(flag) => flag } + .toSet Some(breakFlags) } @@ -32,13 +32,15 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { override def write(key: UUID, value: Set[BreakFlag]): F[Unit] = Sync[F].delay { DB.localTx { implicit session => val uuid = key.toString - val batchParams = value.map { flag => Seq(uuid, flag.flagName.entryName, flag.includes) }.toSeq + val batchParams = value.map { flag => + Seq(uuid, flag.flagName.entryName, flag.includes) + }.toSeq sql"""INSERT INTO break_flags (uuid, flag_name, can_break) | VALUES (?, ?, ?) | ON DUPLICATE KEY UPDATE | can_break = VALUE(can_break) - """.stripMargin.batch(batchParams: _*).apply[List] + """.stripMargin.batch(batchParams: _*).apply[List]() } } From 8f098dc4d8b62d55e04f4f78c5c2de775dac9df7 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:22:05 +0900 Subject: [PATCH 045/142] =?UTF-8?q?fix:=20V1.17.0=E3=81=A7=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E3=81=99=E3=82=8B=E3=83=87=E3=83=BC=E3=82=BF=E3=83=99?= =?UTF-8?q?=E3=83=BC=E3=82=B9=E5=90=8D=E3=81=8C=E9=96=93=E9=81=95=E3=81=A3?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE=E3=81=A7=E7=9B=B4=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/db/migration/V1.17.0__Create_break_flag_table.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql index e48fbc6788..4caf189297 100644 --- a/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql +++ b/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql @@ -1,4 +1,4 @@ -use SeichiAssist; +USE seichiassist; CREATE TABLE break_flags( uuid CHAR(36) NOT NULL PRIMARY KEY, From 066b4caa7c3c34ba3ad1860991017fc002706ef2 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:30:13 +0900 Subject: [PATCH 046/142] =?UTF-8?q?fix:=20API=E3=82=92=E5=91=BC=E3=82=93?= =?UTF-8?q?=E3=81=A0=E3=81=A8=E3=81=8D=E3=81=ABNone#get=E3=81=99=E3=82=8B?= =?UTF-8?q?=E4=B8=8D=E5=85=B7=E5=90=88=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/breakskilltargetconfig/System.scala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index 06951c1f5d..a4f5fed30c 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -57,6 +57,10 @@ object System { flags <- breakFlagRepository(player).get } yield flags.find(_.flagName == breakFlagName).fold(true)(_.includes)) } + + override val managedRepositoryControls: Seq[BukkitRepositoryControls[F, _]] = Seq( + breakFlagRepositoryControls.coerceFinalizationContextTo[F] + ) } } } From e6154ae7a1f64bcc81a866911f1ab005d94e86ad Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:31:44 +0900 Subject: [PATCH 047/142] =?UTF-8?q?refactor:=20break=5Fflags=E3=81=AEflag?= =?UTF-8?q?=5Fname=E3=82=92ENUM=E5=9E=8B=E3=81=AB=E5=A4=89=E6=9B=B4?= =?UTF-8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/db/migration/V1.17.0__Create_break_flag_table.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql index 4caf189297..6fff4b6728 100644 --- a/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql +++ b/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql @@ -2,6 +2,6 @@ USE seichiassist; CREATE TABLE break_flags( uuid CHAR(36) NOT NULL PRIMARY KEY, - flag_name VARCHAR(20) NOT NULL, + flag_name ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, can_break BOOL NOT NULL DEFAULT TRUE ); From 3715ac769079413e6c3907f1b595a0b3b872a5ab Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:33:16 +0900 Subject: [PATCH 048/142] =?UTF-8?q?style:=20can=5Fbreak=E3=82=AB=E3=83=A9?= =?UTF-8?q?=E3=83=A0=E3=82=92include=E3=82=AB=E3=83=A9=E3=83=A0=E3=81=AB?= =?UTF-8?q?=E6=94=B9=E5=90=8D=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V1.17.0__Create_break_flag_table.sql | 2 +- .../persistence/JdbcBreakFlagPersistence.scala | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql index 6fff4b6728..b0de33aeed 100644 --- a/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql +++ b/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql @@ -3,5 +3,5 @@ USE seichiassist; CREATE TABLE break_flags( uuid CHAR(36) NOT NULL PRIMARY KEY, flag_name ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, - can_break BOOL NOT NULL DEFAULT TRUE + include BOOL NOT NULL DEFAULT TRUE ); diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala index 67781e9a74..4516f93754 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala @@ -14,10 +14,10 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { override def read(key: UUID): F[Option[Set[BreakFlag]]] = Sync[F].delay { DB.readOnly { implicit session => val breakFlags = - sql"SELECT flag_name, can_break FROM break_flags WHERE uuid = ${key.toString}" + sql"SELECT flag_name, include FROM break_flags WHERE uuid = ${key.toString}" .map { rs => BreakSkillTargetConfigKey.withNameOption(rs.string("flag_name")).map { flagName => - BreakFlag(flagName, rs.boolean("can_break")) + BreakFlag(flagName, rs.boolean("include")) } } .toList() @@ -36,10 +36,10 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { Seq(uuid, flag.flagName.entryName, flag.includes) }.toSeq - sql"""INSERT INTO break_flags (uuid, flag_name, can_break) + sql"""INSERT INTO break_flags (uuid, flag_name, include) | VALUES (?, ?, ?) | ON DUPLICATE KEY UPDATE - | can_break = VALUE(can_break) + | include = VALUE(include) """.stripMargin.batch(batchParams: _*).apply[List]() } } From 6bd7087d0b0f593c4b565fd22ab5831e881b1a35 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:36:36 +0900 Subject: [PATCH 049/142] =?UTF-8?q?style:=20=E3=83=86=E3=83=BC=E3=83=96?= =?UTF-8?q?=E3=83=AB=E5=90=8D=E3=82=92=E6=94=B9=E5=90=8D=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...g_table.sql => V1.17.0__Create_break_preference_table.sql} | 2 +- .../persistence/JdbcBreakFlagPersistence.scala | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename src/main/resources/db/migration/{V1.17.0__Create_break_flag_table.sql => V1.17.0__Create_break_preference_table.sql} (81%) diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql similarity index 81% rename from src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql rename to src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql index b0de33aeed..5d91ee4112 100644 --- a/src/main/resources/db/migration/V1.17.0__Create_break_flag_table.sql +++ b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql @@ -1,6 +1,6 @@ USE seichiassist; -CREATE TABLE break_flags( +CREATE TABLE player_break_preference( uuid CHAR(36) NOT NULL PRIMARY KEY, flag_name ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, include BOOL NOT NULL DEFAULT TRUE diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala index 4516f93754..e38328fb4b 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala @@ -14,7 +14,7 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { override def read(key: UUID): F[Option[Set[BreakFlag]]] = Sync[F].delay { DB.readOnly { implicit session => val breakFlags = - sql"SELECT flag_name, include FROM break_flags WHERE uuid = ${key.toString}" + sql"SELECT flag_name, include FROM player_break_preference WHERE uuid = ${key.toString}" .map { rs => BreakSkillTargetConfigKey.withNameOption(rs.string("flag_name")).map { flagName => BreakFlag(flagName, rs.boolean("include")) @@ -36,7 +36,7 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { Seq(uuid, flag.flagName.entryName, flag.includes) }.toSeq - sql"""INSERT INTO break_flags (uuid, flag_name, include) + sql"""INSERT INTO player_break_preference (uuid, flag_name, include) | VALUES (?, ?, ?) | ON DUPLICATE KEY UPDATE | include = VALUE(include) From 614007f67afa2f0eea978a5262888511af694086 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:40:25 +0900 Subject: [PATCH 050/142] =?UTF-8?q?feat:=20uuid=E3=82=AB=E3=83=A9=E3=83=A0?= =?UTF-8?q?=E3=82=92playerdata=E3=83=86=E3=83=BC=E3=83=96=E3=83=AB?= =?UTF-8?q?=E3=81=AB=E5=AF=BE=E3=81=97=E3=81=A6=E5=A4=96=E9=83=A8=E3=82=AD?= =?UTF-8?q?=E3=83=BC=E5=88=B6=E7=B4=84=E3=82=92=E3=81=8B=E3=81=91=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V1.17.0__Create_break_preference_table.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql index 5d91ee4112..73e8aa77fa 100644 --- a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql +++ b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql @@ -3,5 +3,6 @@ USE seichiassist; CREATE TABLE player_break_preference( uuid CHAR(36) NOT NULL PRIMARY KEY, flag_name ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, - include BOOL NOT NULL DEFAULT TRUE + include BOOL NOT NULL DEFAULT TRUE, + FOREIGN KEY (uuid) REFERENCES playerdata(uuid) ); From 06d47218827f6ec80858236abc9b657d88566256 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:41:50 +0900 Subject: [PATCH 051/142] =?UTF-8?q?feat:=20player=5Fbreak=5Fpreference?= =?UTF-8?q?=E3=83=86=E3=83=BC=E3=83=96=E3=83=AB=E3=81=A7=E3=80=81uuid?= =?UTF-8?q?=E3=81=A8flag=5Fname=E3=82=92=E4=B8=BB=E3=82=AD=E3=83=BC?= =?UTF-8?q?=E5=88=B6=E7=B4=84=E3=82=92=E3=81=A4=E3=81=91=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V1.17.0__Create_break_preference_table.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql index 73e8aa77fa..7d1ecf29cc 100644 --- a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql +++ b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql @@ -1,8 +1,9 @@ USE seichiassist; CREATE TABLE player_break_preference( - uuid CHAR(36) NOT NULL PRIMARY KEY, + uuid CHAR(36) NOT NULL, flag_name ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, include BOOL NOT NULL DEFAULT TRUE, + PRIMARY KEY(uuid, flag_name), FOREIGN KEY (uuid) REFERENCES playerdata(uuid) ); From 61ff44c705d2bd85fe9875b06fb4fd9ffd280ef2 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 14:50:00 +0900 Subject: [PATCH 052/142] =?UTF-8?q?feat:=20player=5Fbreak=5Fpreference?= =?UTF-8?q?=E3=81=AEuuid=E3=82=AB=E3=83=A9=E3=83=A0=E3=81=AB=E5=AF=BE?= =?UTF-8?q?=E3=81=97=E3=81=A6index=E3=82=92=E8=B2=BC=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V1.17.0__Create_break_preference_table.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql index 7d1ecf29cc..f997e36c5d 100644 --- a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql +++ b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql @@ -5,5 +5,6 @@ CREATE TABLE player_break_preference( flag_name ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, include BOOL NOT NULL DEFAULT TRUE, PRIMARY KEY(uuid, flag_name), - FOREIGN KEY (uuid) REFERENCES playerdata(uuid) + FOREIGN KEY (uuid) REFERENCES playerdata(uuid), + INDEX index_player_break_preference_on_uuid (uuid) ); From ac0823199087c96000a12585910a5e7116efa30d Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 15:05:27 +0900 Subject: [PATCH 053/142] =?UTF-8?q?style:=20BreakFlag=E3=81=AE=E5=A4=89?= =?UTF-8?q?=E6=95=B0=E5=90=8D=E3=82=92=E9=81=A9=E5=88=87=E3=81=AA=E3=82=82?= =?UTF-8?q?=E3=81=AE=E3=81=AB=E5=A4=89=E3=81=88=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/breakskilltargetconfig/System.scala | 4 ++-- .../subsystems/breakskilltargetconfig/domain/BreakFlag.scala | 2 +- .../persistence/JdbcBreakFlagPersistence.scala | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index a4f5fed30c..29cb837dd5 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -41,7 +41,7 @@ object System { for { breakFlag <- breakFlag(player, breakFlagName) _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => - breakFlags.filterNot(_.flagName == breakFlagName) + BreakFlag( + breakFlags.filterNot(_.configKey == breakFlagName) + BreakFlag( breakFlagName, includes = !breakFlag ) @@ -55,7 +55,7 @@ object System { ): F[Boolean] = ContextCoercion(for { flags <- breakFlagRepository(player).get - } yield flags.find(_.flagName == breakFlagName).fold(true)(_.includes)) + } yield flags.find(_.configKey == breakFlagName).fold(true)(_.includes)) } override val managedRepositoryControls: Seq[BukkitRepositoryControls[F, _]] = Seq( diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala index 7801adedfa..be22945f67 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala @@ -1,3 +1,3 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain -case class BreakFlag(flagName: BreakSkillTargetConfigKey, includes: Boolean) +case class BreakFlag(configKey: BreakSkillTargetConfigKey, includes: Boolean) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala index e38328fb4b..508f0b1c95 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala @@ -33,7 +33,7 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { DB.localTx { implicit session => val uuid = key.toString val batchParams = value.map { flag => - Seq(uuid, flag.flagName.entryName, flag.includes) + Seq(uuid, flag.configKey.entryName, flag.includes) }.toSeq sql"""INSERT INTO player_break_preference (uuid, flag_name, include) From 59784917c6a82c5fbaf7a82a1f976aa041ff7849 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 15:11:37 +0900 Subject: [PATCH 054/142] =?UTF-8?q?style:=20BreakSkillTargetConfig?= =?UTF-8?q?=E3=81=AB=E3=82=AF=E3=83=A9=E3=82=B9=E5=90=8D=E3=81=AA=E3=81=A9?= =?UTF-8?q?=E3=82=92=E5=90=88=E3=82=8F=E3=81=9B=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...agAPI.scala => BreakSkillTargetConfigAPI.scala} | 6 +++--- .../subsystems/breakskilltargetconfig/System.scala | 14 +++++++------- ...eakSkillTargetConfigRepositoryDefinition.scala} | 12 ++++++------ .../breakskilltargetconfig/domain/BreakFlag.scala | 3 --- .../domain/BreakSkillTargetConfig.scala | 3 +++ ...ala => BreakSkillTargetConfigPersistence.scala} | 2 +- ...=> JdbcBreakSkillTargetConfigPersistence.scala} | 12 ++++++------ 7 files changed, 26 insertions(+), 26 deletions(-) rename src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/{BreakFlagAPI.scala => BreakSkillTargetConfigAPI.scala} (72%) rename src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/{BreakFlagRepositoryDefinition.scala => BreakSkillTargetConfigRepositoryDefinition.scala} (59%) delete mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala rename src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/{BreakFlagPersistence.scala => BreakSkillTargetConfigPersistence.scala} (59%) rename src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/{JdbcBreakFlagPersistence.scala => JdbcBreakSkillTargetConfigPersistence.scala} (73%) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakFlagAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala similarity index 72% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakFlagAPI.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala index 5bc6ec5285..9aae74dd0e 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakFlagAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala @@ -3,7 +3,7 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig import cats.data.Kleisli import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakSkillTargetConfigKey -trait BreakFlagAPI[F[_], Player] { +trait BreakSkillTargetConfigAPI[F[_], Player] { /** * @return 破壊フラグをトグルする作用 @@ -17,8 +17,8 @@ trait BreakFlagAPI[F[_], Player] { } -object BreakFlagAPI { +object BreakSkillTargetConfigAPI { - def apply[F[_], Player](implicit ev: BreakFlagAPI[F, Player]): BreakFlagAPI[F, Player] = ev + def apply[F[_], Player](implicit ev: BreakSkillTargetConfigAPI[F, Player]): BreakSkillTargetConfigAPI[F, Player] = ev } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index 29cb837dd5..8e6b88055c 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -5,13 +5,13 @@ import cats.effect.{Sync, SyncEffect} import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls import com.github.unchama.generic.ContextCoercion import com.github.unchama.seichiassist.meta.subsystem.Subsystem -import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.application.repository.BreakFlagRepositoryDefinition +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.application.repository.BreakSkillTargetConfigRepositoryDefinition import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ - BreakFlag, + BreakSkillTargetConfig, BreakSkillTargetConfigKey, - BreakFlagPersistence + BreakSkillTargetConfigPersistence } -import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.persistence.JdbcBreakFlagPersistence +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.persistence.JdbcBreakSkillTargetConfigPersistence import org.bukkit.entity.Player trait System[F[_], Player] extends Subsystem[F] { @@ -23,11 +23,11 @@ object System { import cats.implicits._ def wired[F[_]: Sync, G[_]: SyncEffect: ContextCoercion[*[_], F]]: G[System[F, Player]] = { - implicit val breakFlagPersistence: BreakFlagPersistence[G] = new JdbcBreakFlagPersistence[G] + implicit val breakFlagPersistence: BreakSkillTargetConfigPersistence[G] = new JdbcBreakSkillTargetConfigPersistence[G] for { breakFlagRepositoryControls <- BukkitRepositoryControls.createHandles( - BreakFlagRepositoryDefinition.withContext[G, Player] + BreakSkillTargetConfigRepositoryDefinition.withContext[G, Player] ) } yield { val breakFlagRepository = breakFlagRepositoryControls.repository @@ -41,7 +41,7 @@ object System { for { breakFlag <- breakFlag(player, breakFlagName) _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => - breakFlags.filterNot(_.configKey == breakFlagName) + BreakFlag( + breakFlags.filterNot(_.configKey == breakFlagName) + BreakSkillTargetConfig( breakFlagName, includes = !breakFlag ) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakFlagRepositoryDefinition.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala similarity index 59% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakFlagRepositoryDefinition.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala index 2ca80f26e4..cfd673f537 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakFlagRepositoryDefinition.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala @@ -5,17 +5,17 @@ import cats.effect.concurrent.Ref import com.github.unchama.datarepository.definitions.RefDictBackedRepositoryDefinition import com.github.unchama.datarepository.template.RepositoryDefinition import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ - BreakFlag, - BreakFlagPersistence + BreakSkillTargetConfig, + BreakSkillTargetConfigPersistence } -object BreakFlagRepositoryDefinition { +object BreakSkillTargetConfigRepositoryDefinition { def withContext[F[_]: Sync, Player]( - implicit persistence: BreakFlagPersistence[F] - ): RepositoryDefinition[F, Player, Ref[F, Set[BreakFlag]]] = + implicit persistence: BreakSkillTargetConfigPersistence[F] + ): RepositoryDefinition[F, Player, Ref[F, Set[BreakSkillTargetConfig]]] = RefDictBackedRepositoryDefinition - .usingUuidRefDict[F, Player, Set[BreakFlag]](persistence)(Set.empty) + .usingUuidRefDict[F, Player, Set[BreakSkillTargetConfig]](persistence)(Set.empty) .toRefRepository } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala deleted file mode 100644 index be22945f67..0000000000 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlag.scala +++ /dev/null @@ -1,3 +0,0 @@ -package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain - -case class BreakFlag(configKey: BreakSkillTargetConfigKey, includes: Boolean) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala new file mode 100644 index 0000000000..f88e261239 --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala @@ -0,0 +1,3 @@ +package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain + +case class BreakSkillTargetConfig(configKey: BreakSkillTargetConfigKey, includes: Boolean) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala similarity index 59% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagPersistence.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala index 93a3293641..b7860c6c21 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala @@ -4,4 +4,4 @@ import com.github.unchama.generic.RefDict import java.util.UUID -trait BreakFlagPersistence[F[_]] extends RefDict[F, UUID, Set[BreakFlag]] +trait BreakSkillTargetConfigPersistence[F[_]] extends RefDict[F, UUID, Set[BreakSkillTargetConfig]] diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala similarity index 73% rename from src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala rename to src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala index 508f0b1c95..5be160ca35 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakFlagPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala @@ -2,22 +2,22 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.persis import cats.effect.Sync import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ - BreakFlag, + BreakSkillTargetConfig, BreakSkillTargetConfigKey, - BreakFlagPersistence + BreakSkillTargetConfigPersistence } import scalikejdbc.{DB, scalikejdbcSQLInterpolationImplicitDef} import java.util.UUID -class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { - override def read(key: UUID): F[Option[Set[BreakFlag]]] = Sync[F].delay { +class JdbcBreakSkillTargetConfigPersistence[F[_]: Sync] extends BreakSkillTargetConfigPersistence[F] { + override def read(key: UUID): F[Option[Set[BreakSkillTargetConfig]]] = Sync[F].delay { DB.readOnly { implicit session => val breakFlags = sql"SELECT flag_name, include FROM player_break_preference WHERE uuid = ${key.toString}" .map { rs => BreakSkillTargetConfigKey.withNameOption(rs.string("flag_name")).map { flagName => - BreakFlag(flagName, rs.boolean("include")) + BreakSkillTargetConfig(flagName, rs.boolean("include")) } } .toList() @@ -29,7 +29,7 @@ class JdbcBreakFlagPersistence[F[_]: Sync] extends BreakFlagPersistence[F] { } } - override def write(key: UUID, value: Set[BreakFlag]): F[Unit] = Sync[F].delay { + override def write(key: UUID, value: Set[BreakSkillTargetConfig]): F[Unit] = Sync[F].delay { DB.localTx { implicit session => val uuid = key.toString val batchParams = value.map { flag => From eed1e2ccaa1f4bc63e92a01446ea7c5b9412b035 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 15:14:45 +0900 Subject: [PATCH 055/142] =?UTF-8?q?style:=20API=E5=90=8D=E3=82=92=E6=94=B9?= =?UTF-8?q?=E5=90=8D=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/SeichiAssist.scala | 4 +- .../seichiassist/menus/TopLevelRouter.scala | 54 +++++++++---------- .../menus/skill/PassiveSkillMenu.scala | 12 ++--- .../breakskilltargetconfig/System.scala | 4 +- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala index 3855f0785d..b653bfc77b 100644 --- a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala +++ b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala @@ -61,7 +61,7 @@ import com.github.unchama.seichiassist.subsystems._ import com.github.unchama.seichiassist.subsystems.anywhereender.AnywhereEnderChestAPI import com.github.unchama.seichiassist.subsystems.breakcount.{BreakCountAPI, BreakCountReadAPI} import com.github.unchama.seichiassist.subsystems.breakcountbar.BreakCountBarAPI -import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.BreakFlagAPI +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.BreakSkillTargetConfigAPI import com.github.unchama.seichiassist.subsystems.buildcount.BuildCountAPI import com.github.unchama.seichiassist.subsystems.discordnotification.DiscordNotificationAPI import com.github.unchama.seichiassist.subsystems.donate.DonatePremiumPointAPI @@ -702,7 +702,7 @@ class SeichiAssist extends JavaPlugin() { implicit val gachaAPI: GachaDrawAPI[IO, Player] = gachaSystem.api implicit val consumeGachaTicketAPI: ConsumeGachaTicketAPI[IO, Player] = consumeGachaTicketSystem.api - implicit val breakFlagAPI: BreakFlagAPI[IO, Player] = breakFlagSystem.api + implicit val breakSkillTargetConfigAPI: BreakSkillTargetConfigAPI[IO, Player] = breakFlagSystem.api val menuRouter = TopLevelRouter.apply import SeichiAssist.Scopes.globalChatInterceptionScope diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala b/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala index 960d53195d..1ed2045b31 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala @@ -29,7 +29,7 @@ import com.github.unchama.seichiassist.subsystems.anywhereender.AnywhereEnderChe import com.github.unchama.seichiassist.subsystems.breakcount.BreakCountAPI import com.github.unchama.seichiassist.subsystems.breakcount.domain.SeichiAmountData import com.github.unchama.seichiassist.subsystems.breakcountbar.BreakCountBarAPI -import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.BreakFlagAPI +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.BreakSkillTargetConfigAPI import com.github.unchama.seichiassist.subsystems.buildcount.domain.playerdata.BuildAmountData import com.github.unchama.seichiassist.subsystems.discordnotification.DiscordNotificationAPI import com.github.unchama.seichiassist.subsystems.donate.DonatePremiumPointAPI @@ -73,32 +73,32 @@ trait TopLevelRouter[F[_]] { object TopLevelRouter { def apply( - implicit javaTime: JavaTime[IO], - layoutPreparationContext: LayoutPreparationContext, - onMainThread: OnMinecraftServerThread[IO], - nonServerThreadContextShift: NonServerThreadContextShift[IO], - breakCountApi: BreakCountAPI[IO, SyncIO, Player], - breakCountBarAPI: BreakCountBarAPI[SyncIO, Player], - manaApi: ManaApi[IO, SyncIO, Player], - assortedRankingApi: AssortedRankingApi[IO], - gachaPointApi: GachaPointApi[IO, SyncIO, Player], - fastDiggingEffectApi: FastDiggingEffectApi[IO, Player], - fastDiggingSettingsApi: FastDiggingSettingsApi[IO, Player], - fourDimensionalPocketApi: FourDimensionalPocketApi[IO, Player], - globalNotification: DiscordNotificationAPI[IO], - homeReadApi: HomeReadAPI[IO], - enderChestAccessApi: AnywhereEnderChestAPI[IO], - sharedInventoryAPI: SharedInventoryAPI[IO, Player], - voteAPI: VoteAPI[IO, Player], - fairyAPI: FairyAPI[IO, SyncIO, Player], - donateAPI: DonatePremiumPointAPI[IO], - gachaTicketAPI: GachaTicketAPI[IO], - gachaPrizeAPI: GachaPrizeAPI[IO, ItemStack, Player], - mineStackAPI: MineStackAPI[IO, Player, ItemStack], - gachaDrawAPI: GachaDrawAPI[IO, Player], - consumeGachaTicketAPI: ConsumeGachaTicketAPI[IO, Player], - fairySpeechAPI: FairySpeechAPI[IO, Player], - breakFlagAPI: BreakFlagAPI[IO, Player] + implicit javaTime: JavaTime[IO], + layoutPreparationContext: LayoutPreparationContext, + onMainThread: OnMinecraftServerThread[IO], + nonServerThreadContextShift: NonServerThreadContextShift[IO], + breakCountApi: BreakCountAPI[IO, SyncIO, Player], + breakCountBarAPI: BreakCountBarAPI[SyncIO, Player], + manaApi: ManaApi[IO, SyncIO, Player], + assortedRankingApi: AssortedRankingApi[IO], + gachaPointApi: GachaPointApi[IO, SyncIO, Player], + fastDiggingEffectApi: FastDiggingEffectApi[IO, Player], + fastDiggingSettingsApi: FastDiggingSettingsApi[IO, Player], + fourDimensionalPocketApi: FourDimensionalPocketApi[IO, Player], + globalNotification: DiscordNotificationAPI[IO], + homeReadApi: HomeReadAPI[IO], + enderChestAccessApi: AnywhereEnderChestAPI[IO], + sharedInventoryAPI: SharedInventoryAPI[IO, Player], + voteAPI: VoteAPI[IO, Player], + fairyAPI: FairyAPI[IO, SyncIO, Player], + donateAPI: DonatePremiumPointAPI[IO], + gachaTicketAPI: GachaTicketAPI[IO], + gachaPrizeAPI: GachaPrizeAPI[IO, ItemStack, Player], + mineStackAPI: MineStackAPI[IO, Player, ItemStack], + gachaDrawAPI: GachaDrawAPI[IO, Player], + consumeGachaTicketAPI: ConsumeGachaTicketAPI[IO, Player], + fairySpeechAPI: FairySpeechAPI[IO, Player], + BreakSkillTargetConfigAPI: BreakSkillTargetConfigAPI[IO, Player] ): TopLevelRouter[IO] = new TopLevelRouter[IO] { import assortedRankingApi._ diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index 253090a088..52017d44c9 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -11,7 +11,7 @@ import com.github.unchama.seichiassist.data.MenuInventoryData import com.github.unchama.seichiassist.menus.CommonButtons import com.github.unchama.seichiassist.menus.stickmenu.FirstPage import com.github.unchama.seichiassist.subsystems.breakcount.BreakCountAPI -import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.BreakFlagAPI +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.BreakSkillTargetConfigAPI import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.BreakSkillTargetConfigKey import com.github.unchama.targetedeffect._ import com.github.unchama.targetedeffect.commandsender.MessageEffect @@ -32,7 +32,7 @@ object PassiveSkillMenu extends Menu { class Environment( implicit val breakCountApi: BreakCountAPI[IO, SyncIO, Player], - implicit val breakFlagAPI: BreakFlagAPI[IO, Player], + implicit val breakSkillTargetConfigAPI: BreakSkillTargetConfigAPI[IO, Player], val ioCanOpenFirstPage: IO CanOpen FirstPage.type ) @@ -147,7 +147,7 @@ object PassiveSkillMenu extends Menu { import environment._ val computeToggleChestBreakButton: IO[Button] = RecomputedButton(for { - breakChest <- breakFlagAPI.breakFlag(player, BreakSkillTargetConfigKey.Chest) + breakChest <- breakSkillTargetConfigAPI.breakFlag(player, BreakSkillTargetConfigKey.Chest) } yield { val baseLore = List(s"${GREEN}スキルでチェストを破壊するスキル") val statusLore = if (breakChest) { @@ -164,7 +164,7 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - DeferredEffect(IO(breakFlagAPI.toggleBreakFlag(BreakSkillTargetConfigKey.Chest))), + DeferredEffect(IO(breakSkillTargetConfigAPI.toggleBreakFlag(BreakSkillTargetConfigKey.Chest))), DeferredEffect(IO { if (breakChest) { SequentialEffect( @@ -184,7 +184,7 @@ object PassiveSkillMenu extends Menu { }) val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(for { - breakQuartz <- breakFlagAPI + breakQuartz <- breakSkillTargetConfigAPI .breakFlag(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) } yield { val baseLore = List(s"${YELLOW}スキルでネザー水晶類ブロックを破壊するスキル") @@ -206,7 +206,7 @@ object PassiveSkillMenu extends Menu { LeftClickButtonEffect { SequentialEffect( DeferredEffect( - IO(breakFlagAPI.toggleBreakFlag(BreakSkillTargetConfigKey.MadeFromNetherQuartz)) + IO(breakSkillTargetConfigAPI.toggleBreakFlag(BreakSkillTargetConfigKey.MadeFromNetherQuartz)) ), DeferredEffect(IO { if (breakQuartz) { diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index 8e6b88055c..b7f4ff4b89 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -15,7 +15,7 @@ import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.persist import org.bukkit.entity.Player trait System[F[_], Player] extends Subsystem[F] { - val api: BreakFlagAPI[F, Player] + val api: BreakSkillTargetConfigAPI[F, Player] } object System { @@ -33,7 +33,7 @@ object System { val breakFlagRepository = breakFlagRepositoryControls.repository new System[F, Player] { - override val api: BreakFlagAPI[F, Player] = new BreakFlagAPI[F, Player] { + override val api: BreakSkillTargetConfigAPI[F, Player] = new BreakSkillTargetConfigAPI[F, Player] { override def toggleBreakFlag( breakFlagName: BreakSkillTargetConfigKey ): Kleisli[F, Player, Unit] = From 478318f50e9385d623387498ed61a623620bd96d Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 15:15:50 +0900 Subject: [PATCH 056/142] =?UTF-8?q?style:=20API=E3=81=AE=E9=96=A2=E6=95=B0?= =?UTF-8?q?=E5=90=8D=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seichiassist/menus/skill/PassiveSkillMenu.scala | 8 ++++---- .../BreakSkillTargetConfigAPI.scala | 4 ++-- .../subsystems/breakskilltargetconfig/System.scala | 6 +++--- .../com/github/unchama/seichiassist/util/BreakUtil.scala | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index 52017d44c9..d6a47f3dc2 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -147,7 +147,7 @@ object PassiveSkillMenu extends Menu { import environment._ val computeToggleChestBreakButton: IO[Button] = RecomputedButton(for { - breakChest <- breakSkillTargetConfigAPI.breakFlag(player, BreakSkillTargetConfigKey.Chest) + breakChest <- breakSkillTargetConfigAPI.breakSkillTargetConfig(player, BreakSkillTargetConfigKey.Chest) } yield { val baseLore = List(s"${GREEN}スキルでチェストを破壊するスキル") val statusLore = if (breakChest) { @@ -164,7 +164,7 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - DeferredEffect(IO(breakSkillTargetConfigAPI.toggleBreakFlag(BreakSkillTargetConfigKey.Chest))), + DeferredEffect(IO(breakSkillTargetConfigAPI.toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.Chest))), DeferredEffect(IO { if (breakChest) { SequentialEffect( @@ -185,7 +185,7 @@ object PassiveSkillMenu extends Menu { val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(for { breakQuartz <- breakSkillTargetConfigAPI - .breakFlag(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) + .breakSkillTargetConfig(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) } yield { val baseLore = List(s"${YELLOW}スキルでネザー水晶類ブロックを破壊するスキル") val statusLore = if (breakQuartz) { @@ -206,7 +206,7 @@ object PassiveSkillMenu extends Menu { LeftClickButtonEffect { SequentialEffect( DeferredEffect( - IO(breakSkillTargetConfigAPI.toggleBreakFlag(BreakSkillTargetConfigKey.MadeFromNetherQuartz)) + IO(breakSkillTargetConfigAPI.toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.MadeFromNetherQuartz)) ), DeferredEffect(IO { if (breakQuartz) { diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala index 9aae74dd0e..ea2d6e5f14 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala @@ -8,12 +8,12 @@ trait BreakSkillTargetConfigAPI[F[_], Player] { /** * @return 破壊フラグをトグルする作用 */ - def toggleBreakFlag(breakFlagName: BreakSkillTargetConfigKey): Kleisli[F, Player, Unit] + def toggleBreakSkillTargetConfig(breakFlagName: BreakSkillTargetConfigKey): Kleisli[F, Player, Unit] /** * @return 現在の破壊フラグを取得する作用 */ - def breakFlag(player: Player, breakFlagName: BreakSkillTargetConfigKey): F[Boolean] + def breakSkillTargetConfig(player: Player, breakFlagName: BreakSkillTargetConfigKey): F[Boolean] } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index b7f4ff4b89..2943b6e692 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -34,12 +34,12 @@ object System { new System[F, Player] { override val api: BreakSkillTargetConfigAPI[F, Player] = new BreakSkillTargetConfigAPI[F, Player] { - override def toggleBreakFlag( + override def toggleBreakSkillTargetConfig( breakFlagName: BreakSkillTargetConfigKey ): Kleisli[F, Player, Unit] = Kleisli { player => for { - breakFlag <- breakFlag(player, breakFlagName) + breakFlag <- breakSkillTargetConfig(player, breakFlagName) _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => breakFlags.filterNot(_.configKey == breakFlagName) + BreakSkillTargetConfig( breakFlagName, @@ -49,7 +49,7 @@ object System { } yield () } - override def breakFlag( + override def breakSkillTargetConfig( player: Player, breakFlagName: BreakSkillTargetConfigKey ): F[Boolean] = diff --git a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala index 309eb969c5..6f48e4c7ea 100644 --- a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala +++ b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala @@ -132,7 +132,7 @@ object BreakUtil { .instance .breakFlagSystem .api - .breakFlag(player, BreakSkillTargetConfigKey.Chest) + .breakSkillTargetConfig(player, BreakSkillTargetConfigKey.Chest) .unsafeRunSync() ) { ActionBarMessageEffect(s"${RED}スキルでのチェスト破壊は無効化されています").run(player).unsafeRunSync() @@ -156,7 +156,7 @@ object BreakUtil { .instance .breakFlagSystem .api - .breakFlag(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) + .breakSkillTargetConfig(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) .unsafeRunSync() ) { ActionBarMessageEffect(s"${RED}スキルでのネザー水晶類ブロックの破壊は無効化されています") From f18605974d5ce0c6dcb0873d9ebdd4bd0c9fa636 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 15:17:37 +0900 Subject: [PATCH 057/142] style: apply scalafmt and scalafix --- .../unchama/seichiassist/SeichiAssist.scala | 3 +- .../seichiassist/menus/TopLevelRouter.scala | 52 +++++++++---------- .../menus/skill/PassiveSkillMenu.scala | 15 ++++-- .../BreakSkillTargetConfigAPI.scala | 13 +++-- .../breakskilltargetconfig/System.scala | 50 +++++++++--------- .../BreakSkillTargetConfigPersistence.scala | 3 +- ...dbcBreakSkillTargetConfigPersistence.scala | 3 +- 7 files changed, 80 insertions(+), 59 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala index b653bfc77b..bc27cdbe5e 100644 --- a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala +++ b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala @@ -702,7 +702,8 @@ class SeichiAssist extends JavaPlugin() { implicit val gachaAPI: GachaDrawAPI[IO, Player] = gachaSystem.api implicit val consumeGachaTicketAPI: ConsumeGachaTicketAPI[IO, Player] = consumeGachaTicketSystem.api - implicit val breakSkillTargetConfigAPI: BreakSkillTargetConfigAPI[IO, Player] = breakFlagSystem.api + implicit val breakSkillTargetConfigAPI: BreakSkillTargetConfigAPI[IO, Player] = + breakFlagSystem.api val menuRouter = TopLevelRouter.apply import SeichiAssist.Scopes.globalChatInterceptionScope diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala b/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala index 1ed2045b31..cfde172a20 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala @@ -73,32 +73,32 @@ trait TopLevelRouter[F[_]] { object TopLevelRouter { def apply( - implicit javaTime: JavaTime[IO], - layoutPreparationContext: LayoutPreparationContext, - onMainThread: OnMinecraftServerThread[IO], - nonServerThreadContextShift: NonServerThreadContextShift[IO], - breakCountApi: BreakCountAPI[IO, SyncIO, Player], - breakCountBarAPI: BreakCountBarAPI[SyncIO, Player], - manaApi: ManaApi[IO, SyncIO, Player], - assortedRankingApi: AssortedRankingApi[IO], - gachaPointApi: GachaPointApi[IO, SyncIO, Player], - fastDiggingEffectApi: FastDiggingEffectApi[IO, Player], - fastDiggingSettingsApi: FastDiggingSettingsApi[IO, Player], - fourDimensionalPocketApi: FourDimensionalPocketApi[IO, Player], - globalNotification: DiscordNotificationAPI[IO], - homeReadApi: HomeReadAPI[IO], - enderChestAccessApi: AnywhereEnderChestAPI[IO], - sharedInventoryAPI: SharedInventoryAPI[IO, Player], - voteAPI: VoteAPI[IO, Player], - fairyAPI: FairyAPI[IO, SyncIO, Player], - donateAPI: DonatePremiumPointAPI[IO], - gachaTicketAPI: GachaTicketAPI[IO], - gachaPrizeAPI: GachaPrizeAPI[IO, ItemStack, Player], - mineStackAPI: MineStackAPI[IO, Player, ItemStack], - gachaDrawAPI: GachaDrawAPI[IO, Player], - consumeGachaTicketAPI: ConsumeGachaTicketAPI[IO, Player], - fairySpeechAPI: FairySpeechAPI[IO, Player], - BreakSkillTargetConfigAPI: BreakSkillTargetConfigAPI[IO, Player] + implicit javaTime: JavaTime[IO], + layoutPreparationContext: LayoutPreparationContext, + onMainThread: OnMinecraftServerThread[IO], + nonServerThreadContextShift: NonServerThreadContextShift[IO], + breakCountApi: BreakCountAPI[IO, SyncIO, Player], + breakCountBarAPI: BreakCountBarAPI[SyncIO, Player], + manaApi: ManaApi[IO, SyncIO, Player], + assortedRankingApi: AssortedRankingApi[IO], + gachaPointApi: GachaPointApi[IO, SyncIO, Player], + fastDiggingEffectApi: FastDiggingEffectApi[IO, Player], + fastDiggingSettingsApi: FastDiggingSettingsApi[IO, Player], + fourDimensionalPocketApi: FourDimensionalPocketApi[IO, Player], + globalNotification: DiscordNotificationAPI[IO], + homeReadApi: HomeReadAPI[IO], + enderChestAccessApi: AnywhereEnderChestAPI[IO], + sharedInventoryAPI: SharedInventoryAPI[IO, Player], + voteAPI: VoteAPI[IO, Player], + fairyAPI: FairyAPI[IO, SyncIO, Player], + donateAPI: DonatePremiumPointAPI[IO], + gachaTicketAPI: GachaTicketAPI[IO], + gachaPrizeAPI: GachaPrizeAPI[IO, ItemStack, Player], + mineStackAPI: MineStackAPI[IO, Player, ItemStack], + gachaDrawAPI: GachaDrawAPI[IO, Player], + consumeGachaTicketAPI: ConsumeGachaTicketAPI[IO, Player], + fairySpeechAPI: FairySpeechAPI[IO, Player], + BreakSkillTargetConfigAPI: BreakSkillTargetConfigAPI[IO, Player] ): TopLevelRouter[IO] = new TopLevelRouter[IO] { import assortedRankingApi._ diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index d6a47f3dc2..3cf68c97e5 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -147,7 +147,8 @@ object PassiveSkillMenu extends Menu { import environment._ val computeToggleChestBreakButton: IO[Button] = RecomputedButton(for { - breakChest <- breakSkillTargetConfigAPI.breakSkillTargetConfig(player, BreakSkillTargetConfigKey.Chest) + breakChest <- breakSkillTargetConfigAPI + .breakSkillTargetConfig(player, BreakSkillTargetConfigKey.Chest) } yield { val baseLore = List(s"${GREEN}スキルでチェストを破壊するスキル") val statusLore = if (breakChest) { @@ -164,7 +165,12 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - DeferredEffect(IO(breakSkillTargetConfigAPI.toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.Chest))), + DeferredEffect( + IO( + breakSkillTargetConfigAPI + .toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.Chest) + ) + ), DeferredEffect(IO { if (breakChest) { SequentialEffect( @@ -206,7 +212,10 @@ object PassiveSkillMenu extends Menu { LeftClickButtonEffect { SequentialEffect( DeferredEffect( - IO(breakSkillTargetConfigAPI.toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.MadeFromNetherQuartz)) + IO( + breakSkillTargetConfigAPI + .toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.MadeFromNetherQuartz) + ) ), DeferredEffect(IO { if (breakQuartz) { diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala index ea2d6e5f14..b490077d13 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala @@ -8,17 +8,24 @@ trait BreakSkillTargetConfigAPI[F[_], Player] { /** * @return 破壊フラグをトグルする作用 */ - def toggleBreakSkillTargetConfig(breakFlagName: BreakSkillTargetConfigKey): Kleisli[F, Player, Unit] + def toggleBreakSkillTargetConfig( + breakFlagName: BreakSkillTargetConfigKey + ): Kleisli[F, Player, Unit] /** * @return 現在の破壊フラグを取得する作用 */ - def breakSkillTargetConfig(player: Player, breakFlagName: BreakSkillTargetConfigKey): F[Boolean] + def breakSkillTargetConfig( + player: Player, + breakFlagName: BreakSkillTargetConfigKey + ): F[Boolean] } object BreakSkillTargetConfigAPI { - def apply[F[_], Player](implicit ev: BreakSkillTargetConfigAPI[F, Player]): BreakSkillTargetConfigAPI[F, Player] = ev + def apply[F[_], Player]( + implicit ev: BreakSkillTargetConfigAPI[F, Player] + ): BreakSkillTargetConfigAPI[F, Player] = ev } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index 2943b6e692..55fb9f9846 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -23,7 +23,8 @@ object System { import cats.implicits._ def wired[F[_]: Sync, G[_]: SyncEffect: ContextCoercion[*[_], F]]: G[System[F, Player]] = { - implicit val breakFlagPersistence: BreakSkillTargetConfigPersistence[G] = new JdbcBreakSkillTargetConfigPersistence[G] + implicit val breakFlagPersistence: BreakSkillTargetConfigPersistence[G] = + new JdbcBreakSkillTargetConfigPersistence[G] for { breakFlagRepositoryControls <- BukkitRepositoryControls.createHandles( @@ -33,30 +34,31 @@ object System { val breakFlagRepository = breakFlagRepositoryControls.repository new System[F, Player] { - override val api: BreakSkillTargetConfigAPI[F, Player] = new BreakSkillTargetConfigAPI[F, Player] { - override def toggleBreakSkillTargetConfig( - breakFlagName: BreakSkillTargetConfigKey - ): Kleisli[F, Player, Unit] = - Kleisli { player => - for { - breakFlag <- breakSkillTargetConfig(player, breakFlagName) - _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => - breakFlags.filterNot(_.configKey == breakFlagName) + BreakSkillTargetConfig( - breakFlagName, - includes = !breakFlag - ) - }) - } yield () - } + override val api: BreakSkillTargetConfigAPI[F, Player] = + new BreakSkillTargetConfigAPI[F, Player] { + override def toggleBreakSkillTargetConfig( + breakFlagName: BreakSkillTargetConfigKey + ): Kleisli[F, Player, Unit] = + Kleisli { player => + for { + breakFlag <- breakSkillTargetConfig(player, breakFlagName) + _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => + breakFlags.filterNot(_.configKey == breakFlagName) + BreakSkillTargetConfig( + breakFlagName, + includes = !breakFlag + ) + }) + } yield () + } - override def breakSkillTargetConfig( - player: Player, - breakFlagName: BreakSkillTargetConfigKey - ): F[Boolean] = - ContextCoercion(for { - flags <- breakFlagRepository(player).get - } yield flags.find(_.configKey == breakFlagName).fold(true)(_.includes)) - } + override def breakSkillTargetConfig( + player: Player, + breakFlagName: BreakSkillTargetConfigKey + ): F[Boolean] = + ContextCoercion(for { + flags <- breakFlagRepository(player).get + } yield flags.find(_.configKey == breakFlagName).fold(true)(_.includes)) + } override val managedRepositoryControls: Seq[BukkitRepositoryControls[F, _]] = Seq( breakFlagRepositoryControls.coerceFinalizationContextTo[F] diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala index b7860c6c21..e2fafa93dc 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala @@ -4,4 +4,5 @@ import com.github.unchama.generic.RefDict import java.util.UUID -trait BreakSkillTargetConfigPersistence[F[_]] extends RefDict[F, UUID, Set[BreakSkillTargetConfig]] +trait BreakSkillTargetConfigPersistence[F[_]] + extends RefDict[F, UUID, Set[BreakSkillTargetConfig]] diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala index 5be160ca35..bcd4d83b83 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala @@ -10,7 +10,8 @@ import scalikejdbc.{DB, scalikejdbcSQLInterpolationImplicitDef} import java.util.UUID -class JdbcBreakSkillTargetConfigPersistence[F[_]: Sync] extends BreakSkillTargetConfigPersistence[F] { +class JdbcBreakSkillTargetConfigPersistence[F[_]: Sync] + extends BreakSkillTargetConfigPersistence[F] { override def read(key: UUID): F[Option[Set[BreakSkillTargetConfig]]] = Sync[F].delay { DB.readOnly { implicit session => val breakFlags = From 10c9e09062ce75cc8e956b863058409f064a7180 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 15:21:02 +0900 Subject: [PATCH 058/142] =?UTF-8?q?style:=20subsystem=E5=90=8D=E3=81=AE?= =?UTF-8?q?=E7=9B=B4=E3=81=97=E6=BC=8F=E3=82=8C=E3=82=92=E7=9B=B4=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/github/unchama/seichiassist/SeichiAssist.scala | 8 ++++---- .../com/github/unchama/seichiassist/util/BreakUtil.scala | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala index bc27cdbe5e..caf7eafff1 100644 --- a/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala +++ b/src/main/scala/com/github/unchama/seichiassist/SeichiAssist.scala @@ -481,9 +481,9 @@ class SeichiAssist extends JavaPlugin() { subsystems.vote.subsystems.fairyspeech.System.wired[IO] } - /* TODO: breakFlagSystemは本来privateであるべきだが、 + /* TODO: breakSkillTargetConfigSystemは本来privateであるべきだが、 BreakUtilで呼び出されているため、やむを得ずpublicになっている */ - lazy val breakFlagSystem: subsystems.breakskilltargetconfig.System[IO, Player] = + lazy val breakSkillTargetConfigSystem: subsystems.breakskilltargetconfig.System[IO, Player] = subsystems.breakskilltargetconfig.System.wired[IO, SyncIO].unsafeRunSync() /* TODO: mineStackSystemは本来privateであるべきだが、mineStackにアイテムを格納するAPIが現状の @@ -527,7 +527,7 @@ class SeichiAssist extends JavaPlugin() { mineStackSystem, consumeGachaTicketSystem, openirontrapdoor.System.wired, - breakFlagSystem + breakSkillTargetConfigSystem ) private lazy val buildAssist: BuildAssist = { @@ -703,7 +703,7 @@ class SeichiAssist extends JavaPlugin() { implicit val consumeGachaTicketAPI: ConsumeGachaTicketAPI[IO, Player] = consumeGachaTicketSystem.api implicit val breakSkillTargetConfigAPI: BreakSkillTargetConfigAPI[IO, Player] = - breakFlagSystem.api + breakSkillTargetConfigSystem.api val menuRouter = TopLevelRouter.apply import SeichiAssist.Scopes.globalChatInterceptionScope diff --git a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala index 6f48e4c7ea..5ef37e79cc 100644 --- a/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala +++ b/src/main/scala/com/github/unchama/seichiassist/util/BreakUtil.scala @@ -130,7 +130,7 @@ object BreakUtil { if ( !SeichiAssist .instance - .breakFlagSystem + .breakSkillTargetConfigSystem .api .breakSkillTargetConfig(player, BreakSkillTargetConfigKey.Chest) .unsafeRunSync() @@ -154,7 +154,7 @@ object BreakUtil { if ( !SeichiAssist .instance - .breakFlagSystem + .breakSkillTargetConfigSystem .api .breakSkillTargetConfig(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) .unsafeRunSync() From c68fd52e45d9f9a7bf36a8489a24a5529b960453 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 1 Jun 2023 15:22:20 +0900 Subject: [PATCH 059/142] =?UTF-8?q?style:=20=E3=81=AA=E3=81=9C=E3=81=8B?= =?UTF-8?q?=E6=96=87=E9=A0=AD=E3=81=8C=E5=A4=A7=E6=96=87=E5=AD=97=E3=81=AB?= =?UTF-8?q?=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE=E3=81=A7?= =?UTF-8?q?=E7=9B=B4=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/github/unchama/seichiassist/menus/TopLevelRouter.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala b/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala index cfde172a20..09cf6adcd4 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/TopLevelRouter.scala @@ -98,7 +98,7 @@ object TopLevelRouter { gachaDrawAPI: GachaDrawAPI[IO, Player], consumeGachaTicketAPI: ConsumeGachaTicketAPI[IO, Player], fairySpeechAPI: FairySpeechAPI[IO, Player], - BreakSkillTargetConfigAPI: BreakSkillTargetConfigAPI[IO, Player] + breakSkillTargetConfigAPI: BreakSkillTargetConfigAPI[IO, Player] ): TopLevelRouter[IO] = new TopLevelRouter[IO] { import assortedRankingApi._ From b815d1550ad167f933fc5b9e71a57d7cb8ad5220 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Jun 2023 13:59:06 +0000 Subject: [PATCH 060/142] chore(deps): update dependency sbt/sbt to v1.9.0 --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 72413de151..40b3b8e7b6 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.8.3 +sbt.version=1.9.0 From 0dcbe8302ee45e80a346a02bd0c5b2502da0f183 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Jun 2023 16:29:13 +0000 Subject: [PATCH 061/142] chore(deps): update dependency ch.epfl.scala:sbt-scalafix to v0.11.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 23fce33d09..e36dfbb70e 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -2,7 +2,7 @@ addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10") // Lintを掛けるため -addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.4") +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.11.0") // コードフォーマットするため addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.0") From 12509e204adbdcd0e1ffe786c89c09770278d6d3 Mon Sep 17 00:00:00 2001 From: Kory <6561358+kory33@users.noreply.github.com> Date: Sat, 3 Jun 2023 17:46:09 +0100 Subject: [PATCH 062/142] =?UTF-8?q?refactor:=20=E4=B8=8D=E8=A6=81=E3=81=AA?= =?UTF-8?q?=20`for`=20=E3=82=92=E5=89=8A=E9=99=A4=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seichiassist/subsystems/minestack/System.scala | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/minestack/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/minestack/System.scala index 6b2dee27b6..9050235c7d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/minestack/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/minestack/System.scala @@ -147,11 +147,9 @@ object System { } yield () } - override def autoMineStack(player: Player): F[Boolean] = for { - currentState <- ContextCoercion( - mineStackSettingRepository(player).isAutoCollectionTurnedOn - ) - } yield currentState + override def autoMineStack(player: Player): F[Boolean] = ContextCoercion( + mineStackSettingRepository(player).isAutoCollectionTurnedOn + ) override def mineStackObjectList: MineStackObjectList[F, ItemStack, Player] = _mineStackObjectList From f2c56f91d1f013ed2d1bbfd597b992b7d09dca83 Mon Sep 17 00:00:00 2001 From: lis2a Date: Sun, 4 Jun 2023 18:47:45 +0900 Subject: [PATCH 063/142] =?UTF-8?q?feat:=207=E5=91=A8=E5=B9=B4=E8=A8=98?= =?UTF-8?q?=E5=BF=B5=E3=82=A4=E3=83=99=E3=83=B3=E3=83=88=E3=81=AE=E7=99=BB?= =?UTF-8?q?=E9=8C=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/seasonalevents/anniversary/Anniversary.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/seasonalevents/anniversary/Anniversary.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/seasonalevents/anniversary/Anniversary.scala index ebddf867eb..8859f34961 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/seasonalevents/anniversary/Anniversary.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/seasonalevents/anniversary/Anniversary.scala @@ -8,7 +8,7 @@ import com.github.unchama.seichiassist.subsystems.seasonalevents.Util.{ import java.time.LocalDate object Anniversary { - val EVENT_YEAR = 2022 + val EVENT_YEAR = 2023 val ANNIVERSARY_COUNT: Int = EVENT_YEAR - 2016 val START_DATE: LocalDate = LocalDate.of(EVENT_YEAR, 6, 29) val END_DATE: LocalDate = LocalDate.of(EVENT_YEAR, 7, 5) From 87713362fe03ed16418d90b453dac70994932068 Mon Sep 17 00:00:00 2001 From: lis2a Date: Sun, 4 Jun 2023 18:54:33 +0900 Subject: [PATCH 064/142] =?UTF-8?q?feat:=20Mebius=20=E3=81=AE=E7=89=B9?= =?UTF-8?q?=E5=88=A5=E3=81=AA=E3=82=BB=E3=83=AA=E3=83=95=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit これ自動化したい気持ちがある --- .../mebius/domain/resources/MebiusMessages.scala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/mebius/domain/resources/MebiusMessages.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/mebius/domain/resources/MebiusMessages.scala index 420ae693c1..59d2a6dabc 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/mebius/domain/resources/MebiusMessages.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/mebius/domain/resources/MebiusMessages.scala @@ -98,7 +98,15 @@ object MebiusMessages { "僕はレベルアップするたびにどんどん強くなっていくんだー!", "たまには休憩してね!僕との約束だよ!", "ガチャを引けばすごいツールが出るかもしれないんだって!", - "綺麗に掘るのが整地の醍醐味だよねー!" + "綺麗に掘るのが整地の醍醐味だよねー!", + // TODO: 整地鯖7周年を記念するMebiusの特別なセリフ。イベント終了時には削除する + // https://github.com/GiganticMinecraft/SeichiAssist/pull/2076 + "おめでとう!整地鯖7周年のご挨拶、だよ!", + "整地鯖は7歳になったんだって!誕生日ケーキもらえないかなあ。", + "ねぇねぇ!6/29は特別で大切な日なんだよ!", + "こんぐらっちゅれーしょんず、せいちさーばー7thあにばーさりー!", + "6/29は7周年のお祝い!お祝いと言ったらごちそうだね!何食べよっか?", + "7周年!これからの整地鯖楽しみだね!" ) } From 61743e7bc225ef82c64699c707b727dc4800b0cc Mon Sep 17 00:00:00 2001 From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com> Date: Mon, 5 Jun 2023 19:21:04 +0900 Subject: [PATCH 065/142] =?UTF-8?q?chore:=20=E4=BD=BF=E3=81=88=E3=81=AA?= =?UTF-8?q?=E3=81=8F=E3=81=AA=E3=81=A3=E3=81=9Fmaven=E3=83=AC=E3=83=9D?= =?UTF-8?q?=E3=82=B8=E3=83=88=E3=83=AA=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.sbt | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.sbt b/build.sbt index 8529685ce4..6b9f4c6dbf 100644 --- a/build.sbt +++ b/build.sbt @@ -48,8 +48,6 @@ resolvers ++= Seq( "repo.maven.apache.org" at "https://repo.maven.apache.org/maven2", "hub.spigotmc.org" at "https://hub.spigotmc.org/nexus/content/repositories/snapshots", "oss.sonatype.org" at "https://oss.sonatype.org/content/repositories/snapshots", - "nexus.okkero.com" at "https://nexus.okkero.com/repository/maven-releases/", - "maven.elmakers.com" at "https://maven.elmakers.com/repository/", // spigot-api 1.12.2がhub.spigotmc.orgからダウンロードできなくなったため "repo.phoenix616.dev" at "https://repo.phoenix616.dev", // authlibのための // ajd4jpのミラーのため "jitpack.io" at "https://jitpack.io" From da55f1d44fddab8da9df98c8152f07e4dd63a8fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Jun 2023 13:15:20 +0000 Subject: [PATCH 066/142] chore(deps): update dependency com.eed3si9n:sbt-assembly to v1.2.0 --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 21477d38e7..cfc0cbc43a 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,5 +1,5 @@ // プラグインJarを(依存関係にあるJarをすべて同梱して)出力するため -addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.0.0") +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.2.0") // Lintを掛けるため addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.11.0") From 461621276be44a03f926e509dcd003665a7c7cb3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 7 Jun 2023 11:41:35 +0000 Subject: [PATCH 067/142] chore(deps): update dependency org.apache.commons:commons-lang3 to v3.12.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f4858244a5..9c3e7518c8 100644 --- a/build.sbt +++ b/build.sbt @@ -55,7 +55,7 @@ resolvers ++= Seq( val providedDependencies = Seq( "org.jetbrains" % "annotations" % "24.0.1", - "org.apache.commons" % "commons-lang3" % "3.9", + "org.apache.commons" % "commons-lang3" % "3.12.0", "commons-codec" % "commons-codec" % "1.15", "org.spigotmc" % "spigot-api" % "1.12.2-R0.1-SNAPSHOT", // https://maven.enginehub.org/repo/com/sk89q/worldedit/worldedit-bukkit/ From 8fc0786bde9934b01cb7bcfcf26a34807641f307 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 7 Jun 2023 11:54:02 +0000 Subject: [PATCH 068/142] chore(deps): update dependency io.sentry:sentry to v6.22.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f4858244a5..8122affeb6 100644 --- a/build.sbt +++ b/build.sbt @@ -117,7 +117,7 @@ val dependenciesToEmbed = Seq( "com.github.KisaragiEffective" % "ajd4jp-mirror" % "8.0.2.2021", // Sentry - "io.sentry" % "sentry" % "6.19.1" + "io.sentry" % "sentry" % "6.22.0" ) // endregion From b541927e516787d1fb063daeeadd643dcaddf0cf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Jun 2023 15:43:16 +0000 Subject: [PATCH 069/142] chore(deps): update dependency scala to v2.13.11 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 9c3e7518c8..7386f9701c 100644 --- a/build.sbt +++ b/build.sbt @@ -5,7 +5,7 @@ import java.io._ // region 全プロジェクト共通のメタデータ -ThisBuild / scalaVersion := "2.13.4" +ThisBuild / scalaVersion := "2.13.11" // ThisBuild / version はGitHub Actionsによって取得/自動更新される。 // 次の行は ThisBuild / version := "(\d*)" の形式でなければならない。 ThisBuild / version := "80" From 5d438c4709b024800fc9023c482990ca02753cf1 Mon Sep 17 00:00:00 2001 From: inductor Date: Wed, 7 Jun 2023 20:53:39 +0900 Subject: [PATCH 070/142] fix some flags --- build.sbt | 1 + sbt | 86 +++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 69 insertions(+), 18 deletions(-) diff --git a/build.sbt b/build.sbt index 7386f9701c..58ec1db5d2 100644 --- a/build.sbt +++ b/build.sbt @@ -14,6 +14,7 @@ ThisBuild / description := "ギガンティック☆整地鯖の独自要素を // Scalafixが要求するため、semanticdbは有効化する ThisBuild / semanticdbEnabled := true +ThisBuild / semanticdbVersion := scalafixSemanticdb.revision // endregion diff --git a/sbt b/sbt index ddc41cb4d7..41eb81eca9 100755 --- a/sbt +++ b/sbt @@ -3,14 +3,42 @@ # A more capable sbt runner, coincidentally also called sbt. # Author: Paul Phillips # https://github.com/paulp/sbt-extras +# +# Generated from http://www.opensource.org/licenses/bsd-license.php +# Copyright (c) 2011, Paul Phillips. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the author nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. set -o pipefail -declare -r sbt_release_version="1.3.8" -declare -r sbt_unreleased_version="1.3.8" +declare -r sbt_release_version="1.9.0" +declare -r sbt_unreleased_version="1.9.0" -declare -r latest_213="2.13.1" -declare -r latest_212="2.12.10" +declare -r latest_213="2.13.10" +declare -r latest_212="2.12.17" declare -r latest_211="2.11.12" declare -r latest_210="2.10.7" declare -r latest_29="2.9.3" @@ -20,11 +48,11 @@ declare -r buildProps="project/build.properties" declare -r sbt_launch_ivy_release_repo="https://repo.typesafe.com/typesafe/ivy-releases" declare -r sbt_launch_ivy_snapshot_repo="https://repo.scala-sbt.org/scalasbt/ivy-snapshots" -declare -r sbt_launch_mvn_release_repo="https://repo.scala-sbt.org/scalasbt/maven-releases" +declare -r sbt_launch_mvn_release_repo="https://repo1.maven.org/maven2" declare -r sbt_launch_mvn_snapshot_repo="https://repo.scala-sbt.org/scalasbt/maven-snapshots" declare -r default_jvm_opts_common="-Xms512m -Xss2m -XX:MaxInlineLevel=18" -declare -r noshare_opts="-Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy" +declare -r noshare_opts="-Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy -Dsbt.coursier.home=project/.coursier" declare sbt_jar sbt_dir sbt_create sbt_version sbt_script sbt_new declare sbt_explicit_version @@ -99,6 +127,7 @@ init_default_option_file() { } sbt_opts_file="$(init_default_option_file SBT_OPTS .sbtopts)" +sbtx_opts_file="$(init_default_option_file SBTX_OPTS .sbtxopts)" jvm_opts_file="$(init_default_option_file JVM_OPTS .jvmopts)" build_props_sbt() { @@ -187,7 +216,8 @@ getJavaVersion() { # but on 9 and 10 it's 9.x.y and 10.x.y. if [[ "$str" =~ ^1\.([0-9]+)(\..*)?$ ]]; then echo "${BASH_REMATCH[1]}" - elif [[ "$str" =~ ^([0-9]+)(\..*)?$ ]]; then + # Fixes https://github.com/dwijnand/sbt-extras/issues/326 + elif [[ "$str" =~ ^([0-9]+)(\..*)?(-ea)?$ ]]; then echo "${BASH_REMATCH[1]}" elif [[ -n "$str" ]]; then echoerr "Can't parse java version from: $str" @@ -218,11 +248,20 @@ java_version() { echo "$version" } +is_apple_silicon() { [[ "$(uname -s)" == "Darwin" && "$(uname -m)" == "arm64" ]]; } + # MaxPermSize critical on pre-8 JVMs but incurs noisy warning on 8+ default_jvm_opts() { local -r v="$(java_version)" - if [[ $v -ge 10 ]]; then - echo "$default_jvm_opts_common -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler" + if [[ $v -ge 17 ]]; then + echo "$default_jvm_opts_common" + elif [[ $v -ge 10 ]]; then + if is_apple_silicon; then + # As of Dec 2020, JVM for Apple Silicon (M1) doesn't support JVMCI + echo "$default_jvm_opts_common" + else + echo "$default_jvm_opts_common -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler" + fi elif [[ $v -ge 8 ]]; then echo "$default_jvm_opts_common" else @@ -230,14 +269,6 @@ default_jvm_opts() { fi } -build_props_scala() { - if [[ -r "$buildProps" ]]; then - versionLine="$(grep '^build.scala.versions' "$buildProps")" - versionString="${versionLine##build.scala.versions=}" - echo "${versionString%% .*}" - fi -} - execRunner() { # print the arguments one to a line, quoting any containing spaces vlog "# Executing command line:" && { @@ -419,6 +450,12 @@ are not special. Note: "@"-file is overridden by local '.sbtopts' or '-sbt-opts' argument. -sbt-opts file containing sbt args (if not given, .sbtopts in project root is used if present) -S-X add -X to sbt's scalacOptions (-S is stripped) + + # passing options exclusively to this runner + SBTX_OPTS environment variable holding either the sbt-extras args directly, or + the reference to a file containing sbt-extras args if given path is prepended by '@' (e.g. '@/etc/sbtxopts') + Note: "@"-file is overridden by local '.sbtxopts' or '-sbtx-opts' argument. + -sbtx-opts file containing sbt-extras args (if not given, .sbtxopts in project root is used if present) EOM exit 0 } @@ -444,7 +481,7 @@ process_args() { -trace) require_arg integer "$1" "$2" && trace_level="$2" && shift 2 ;; -debug-inc) addJava "-Dxsbt.inc.debug=true" && shift ;; - -no-colors) addJava "-Dsbt.log.noformat=true" && shift ;; + -no-colors) addJava "-Dsbt.log.noformat=true" && addJava "-Dsbt.color=false" && shift ;; -sbt-create) sbt_create=true && shift ;; -sbt-dir) require_arg path "$1" "$2" && sbt_dir="$2" && shift 2 ;; -sbt-boot) require_arg path "$1" "$2" && addJava "-Dsbt.boot.directory=$2" && shift 2 ;; @@ -475,6 +512,7 @@ process_args() { -scala-home) require_arg path "$1" "$2" && setThisBuild scalaHome "_root_.scala.Some(file(\"$2\"))" && shift 2 ;; -java-home) require_arg path "$1" "$2" && setJavaHome "$2" && shift 2 ;; -sbt-opts) require_arg path "$1" "$2" && sbt_opts_file="$2" && shift 2 ;; + -sbtx-opts) require_arg path "$1" "$2" && sbtx_opts_file="$2" && shift 2 ;; -jvm-opts) require_arg path "$1" "$2" && jvm_opts_file="$2" && shift 2 ;; -D*) addJava "$1" && shift ;; @@ -512,6 +550,18 @@ else vlog "No extra sbt options have been defined" fi +# if there are file/environment sbtx_opts, process again so we +# can supply args to this runner +if [[ -r "$sbtx_opts_file" ]]; then + vlog "Using sbt options defined in file $sbtx_opts_file" + while read -r opt; do extra_sbt_opts+=("$opt"); done < <(readConfigFile "$sbtx_opts_file") +elif [[ -n "$SBTX_OPTS" && ! ("$SBTX_OPTS" =~ ^@.*) ]]; then + vlog "Using sbt options defined in variable \$SBTX_OPTS" + IFS=" " read -r -a extra_sbt_opts <<<"$SBTX_OPTS" +else + vlog "No extra sbt options have been defined" +fi + [[ -n "${extra_sbt_opts[*]}" ]] && process_args "${extra_sbt_opts[@]}" # reset "$@" to the residual args From 7f351ffc290128f4a665508c3053bfc1a21cabe9 Mon Sep 17 00:00:00 2001 From: rito528 Date: Fri, 9 Jun 2023 14:26:30 +0900 Subject: [PATCH 071/142] =?UTF-8?q?chore:=20player=5Fbreak=5Fpreference?= =?UTF-8?q?=E3=81=AE=E3=83=86=E3=83=BC=E3=83=96=E3=83=AB=E3=81=AE=E5=A4=96?= =?UTF-8?q?=E9=83=A8=E3=82=AD=E3=83=BC=E5=88=B6=E7=B4=84=E3=82=92=E5=A4=96?= =?UTF-8?q?=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V1.17.0__Create_break_preference_table.sql | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql index f997e36c5d..fc5c847850 100644 --- a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql +++ b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql @@ -5,6 +5,5 @@ CREATE TABLE player_break_preference( flag_name ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, include BOOL NOT NULL DEFAULT TRUE, PRIMARY KEY(uuid, flag_name), - FOREIGN KEY (uuid) REFERENCES playerdata(uuid), INDEX index_player_break_preference_on_uuid (uuid) ); From 2bfb49469d7f30e44ceee18c4c1b6049ece900a7 Mon Sep 17 00:00:00 2001 From: rito528 Date: Fri, 9 Jun 2023 14:29:52 +0900 Subject: [PATCH 072/142] =?UTF-8?q?DeferredEffect=E3=82=92=E5=89=A5?= =?UTF-8?q?=E3=81=8C=E3=81=97=E3=81=A6Effect=E3=82=92=E5=91=BC=E3=81=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../menus/skill/PassiveSkillMenu.scala | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index 3cf68c97e5..d2f08151fe 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -165,12 +165,8 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - DeferredEffect( - IO( - breakSkillTargetConfigAPI - .toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.Chest) - ) - ), + breakSkillTargetConfigAPI + .toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.Chest), DeferredEffect(IO { if (breakChest) { SequentialEffect( @@ -211,12 +207,8 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - DeferredEffect( - IO( - breakSkillTargetConfigAPI - .toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.MadeFromNetherQuartz) - ) - ), + breakSkillTargetConfigAPI + .toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.MadeFromNetherQuartz), DeferredEffect(IO { if (breakQuartz) { SequentialEffect( From 12fe3479722c9c3e137bc5d9e3ff878040af9c38 Mon Sep 17 00:00:00 2001 From: rito528 Date: Fri, 9 Jun 2023 14:42:16 +0900 Subject: [PATCH 073/142] =?UTF-8?q?style:=20system=E3=81=AB=E3=83=89?= =?UTF-8?q?=E3=83=A1=E3=82=A4=E3=83=B3=E3=83=AD=E3=82=B8=E3=83=83=E3=82=AF?= =?UTF-8?q?=E3=82=92=E6=9B=B8=E3=81=8B=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/codeStyles/codeStyleConfig.xml | 2 +- .../breakskilltargetconfig/System.scala | 31 ++++++++------- ...kkitBreakSkillTargetConfigRepository.scala | 39 +++++++++++++++++++ .../BreakSkillTargetConfigRepository.scala | 15 +++++++ 4 files changed, 72 insertions(+), 15 deletions(-) create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/bukkit/BukkitBreakSkillTargetConfigRepository.scala create mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml index a55e7a179b..79ee123c2b 100644 --- a/.idea/codeStyles/codeStyleConfig.xml +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -1,5 +1,5 @@ - \ No newline at end of file diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index 55fb9f9846..aa926ea593 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -1,11 +1,16 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig import cats.data.Kleisli +import cats.effect.concurrent.Ref import cats.effect.{Sync, SyncEffect} -import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls +import com.github.unchama.datarepository.bukkit.player.{ + BukkitRepositoryControls, + PlayerDataRepository +} import com.github.unchama.generic.ContextCoercion import com.github.unchama.seichiassist.meta.subsystem.Subsystem import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.application.repository.BreakSkillTargetConfigRepositoryDefinition +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.bukkit.BukkitBreakSkillTargetConfigRepository import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ BreakSkillTargetConfig, BreakSkillTargetConfigKey, @@ -31,7 +36,10 @@ object System { BreakSkillTargetConfigRepositoryDefinition.withContext[G, Player] ) } yield { - val breakFlagRepository = breakFlagRepositoryControls.repository + implicit val breakFlagRepository + : PlayerDataRepository[Ref[G, Set[BreakSkillTargetConfig]]] = + breakFlagRepositoryControls.repository + val breakSkillTargetConfigRepository = new BukkitBreakSkillTargetConfigRepository[G] new System[F, Player] { override val api: BreakSkillTargetConfigAPI[F, Player] = @@ -40,24 +48,19 @@ object System { breakFlagName: BreakSkillTargetConfigKey ): Kleisli[F, Player, Unit] = Kleisli { player => - for { - breakFlag <- breakSkillTargetConfig(player, breakFlagName) - _ <- ContextCoercion(breakFlagRepository(player).update { breakFlags => - breakFlags.filterNot(_.configKey == breakFlagName) + BreakSkillTargetConfig( - breakFlagName, - includes = !breakFlag - ) - }) - } yield () + ContextCoercion( + breakSkillTargetConfigRepository + .toggleBreakSkillTargetConfig(player, breakFlagName) + ) } override def breakSkillTargetConfig( player: Player, breakFlagName: BreakSkillTargetConfigKey ): F[Boolean] = - ContextCoercion(for { - flags <- breakFlagRepository(player).get - } yield flags.find(_.configKey == breakFlagName).fold(true)(_.includes)) + ContextCoercion( + breakSkillTargetConfigRepository.breakSkillTargetConfig(player, breakFlagName) + ) } override val managedRepositoryControls: Seq[BukkitRepositoryControls[F, _]] = Seq( diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/bukkit/BukkitBreakSkillTargetConfigRepository.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/bukkit/BukkitBreakSkillTargetConfigRepository.scala new file mode 100644 index 0000000000..c143fe166f --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/bukkit/BukkitBreakSkillTargetConfigRepository.scala @@ -0,0 +1,39 @@ +package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.bukkit + +import cats.effect.Sync +import cats.effect.concurrent.Ref +import com.github.unchama.datarepository.bukkit.player.PlayerDataRepository +import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ + BreakSkillTargetConfig, + BreakSkillTargetConfigKey, + BreakSkillTargetConfigRepository +} +import org.bukkit.entity.Player + +class BukkitBreakSkillTargetConfigRepository[F[_]: Sync]( + implicit breakFlagRepository: PlayerDataRepository[Ref[F, Set[BreakSkillTargetConfig]]] +) extends BreakSkillTargetConfigRepository[F, Player] { + + import cats.implicits._ + + override def toggleBreakSkillTargetConfig( + player: Player, + configKey: BreakSkillTargetConfigKey + ): F[Unit] = for { + breakFlag <- breakSkillTargetConfig(player, configKey) + _ <- breakFlagRepository(player).update { breakFlags => + breakFlags.filterNot(_.configKey == configKey) + BreakSkillTargetConfig( + configKey, + includes = !breakFlag + ) + } + } yield () + + override def breakSkillTargetConfig( + player: Player, + configKey: BreakSkillTargetConfigKey + ): F[Boolean] = for { + flags <- breakFlagRepository(player).get + } yield flags.find(_.configKey == configKey).fold(true)(_.includes) + +} diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala new file mode 100644 index 0000000000..d93be48b96 --- /dev/null +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala @@ -0,0 +1,15 @@ +package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain + +trait BreakSkillTargetConfigRepository[F[_], Player] { + + /** + * @return `configKey`の破壊フラグをトグルする作用 + */ + def toggleBreakSkillTargetConfig(player: Player, configKey: BreakSkillTargetConfigKey): F[Unit] + + /** + * @return `player`の現在の破壊フラグを取得する作用 + */ + def breakSkillTargetConfig(player: Player, configKey: BreakSkillTargetConfigKey): F[Boolean] + +} From f3fdd3738dec2403a6d463090a402dbdca782a8e Mon Sep 17 00:00:00 2001 From: rito528 Date: Fri, 9 Jun 2023 14:45:38 +0900 Subject: [PATCH 074/142] style: scalafmt and scalafix --- .../seichiassist/menus/skill/PassiveSkillMenu.scala | 10 ++++++---- .../domain/BreakSkillTargetConfigRepository.scala | 5 ++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index d2f08151fe..c3503dae3b 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -165,8 +165,9 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - breakSkillTargetConfigAPI - .toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.Chest), + breakSkillTargetConfigAPI.toggleBreakSkillTargetConfig( + BreakSkillTargetConfigKey.Chest + ), DeferredEffect(IO { if (breakChest) { SequentialEffect( @@ -207,8 +208,9 @@ object PassiveSkillMenu extends Menu { .build(), LeftClickButtonEffect { SequentialEffect( - breakSkillTargetConfigAPI - .toggleBreakSkillTargetConfig(BreakSkillTargetConfigKey.MadeFromNetherQuartz), + breakSkillTargetConfigAPI.toggleBreakSkillTargetConfig( + BreakSkillTargetConfigKey.MadeFromNetherQuartz + ), DeferredEffect(IO { if (breakQuartz) { SequentialEffect( diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala index d93be48b96..c59168d84c 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala @@ -5,7 +5,10 @@ trait BreakSkillTargetConfigRepository[F[_], Player] { /** * @return `configKey`の破壊フラグをトグルする作用 */ - def toggleBreakSkillTargetConfig(player: Player, configKey: BreakSkillTargetConfigKey): F[Unit] + def toggleBreakSkillTargetConfig( + player: Player, + configKey: BreakSkillTargetConfigKey + ): F[Unit] /** * @return `player`の現在の破壊フラグを取得する作用 From 2ee8327d8fccfddeaa0d8f89e2f5dc3825aa9a69 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 9 Jun 2023 23:36:28 +0000 Subject: [PATCH 075/142] chore(deps): update mariadb docker tag to v10.11.4 --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 10a67f60bb..29679b9821 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -108,7 +108,7 @@ services: volumes: - redis-data:/data db: - image: mariadb:10.11.3 + image: mariadb:10.11.4 environment: - TZ=Asia/Tokyo - MYSQL_ROOT_PASSWORD=unchamaisgod From 5fb87f4f95e1814f266e8dd7d0c7ff07f7eba9df Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 10 Jun 2023 16:03:36 +0000 Subject: [PATCH 076/142] chore(bump): 80 -> 81 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 6291ebc65d..d818a1486a 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ import java.io._ ThisBuild / scalaVersion := "2.13.11" // ThisBuild / version はGitHub Actionsによって取得/自動更新される。 // 次の行は ThisBuild / version := "(\d*)" の形式でなければならない。 -ThisBuild / version := "80" +ThisBuild / version := "81" ThisBuild / organization := "click.seichi" ThisBuild / description := "ギガンティック☆整地鯖の独自要素を司るプラグイン" From caecf422abe3a366c3775357de4de70ef4702323 Mon Sep 17 00:00:00 2001 From: Lucky3028 Date: Sun, 11 Jun 2023 10:55:38 +0900 Subject: [PATCH 077/142] =?UTF-8?q?fix:=20=E3=82=AB=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=83=E3=83=88=E3=81=A8=E7=BE=8A=E6=AF=9B=E3=81=AEMinestack?= =?UTF-8?q?=E4=B8=8A=E3=81=AE=E5=90=8D=E5=89=8D=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../minestack/bukkit/BukkitMineStackObjectList.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/minestack/bukkit/BukkitMineStackObjectList.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/minestack/bukkit/BukkitMineStackObjectList.scala index 3e4a04d3fa..7350665717 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/minestack/bukkit/BukkitMineStackObjectList.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/minestack/bukkit/BukkitMineStackObjectList.scala @@ -422,7 +422,7 @@ class BukkitMineStackObjectList[F[_]: Sync]( ) ), MineStackObjectWithColorVariants( - MineStackObjectByMaterial(BUILDING, "wool_0", "羊毛", Material.WOOL, 0), + MineStackObjectByMaterial(BUILDING, "wool_0", "白色の羊毛", Material.WOOL, 0), List( MineStackObjectByMaterial(BUILDING, "wool_1", "橙色の羊毛", Material.WOOL, 1), MineStackObjectByMaterial(BUILDING, "wool_2", "赤紫色の羊毛", Material.WOOL, 2), @@ -442,7 +442,7 @@ class BukkitMineStackObjectList[F[_]: Sync]( ) ), MineStackObjectWithColorVariants( - MineStackObjectByMaterial(BUILDING, "carpet_0", "カーペット", Material.CARPET, 0), + MineStackObjectByMaterial(BUILDING, "carpet_0", "白色のカーペット", Material.CARPET, 0), List( MineStackObjectByMaterial(BUILDING, "carpet_1", "橙色のカーペット", Material.CARPET, 1), MineStackObjectByMaterial(BUILDING, "carpet_2", "赤紫色のカーペット", Material.CARPET, 2), From da5481fae03b316874f5fbdb0d9ff3256169ef64 Mon Sep 17 00:00:00 2001 From: Lucky3028 Date: Sun, 11 Jun 2023 12:10:09 +0900 Subject: [PATCH 078/142] =?UTF-8?q?fix:=20=E3=82=A4=E3=83=B3=E3=83=99?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=83=AA=E5=85=B1=E6=9C=89=E3=81=AB=E3=81=8A?= =?UTF-8?q?=E3=81=84=E3=81=A6=E3=80=81SequentialEffect=E3=81=8C=E5=AE=9F?= =?UTF-8?q?=E8=A1=8C=E3=81=95=E3=82=8C=E3=81=A6=E3=81=84=E3=81=AA=E3=81=8B?= =?UTF-8?q?=E3=81=A3=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/command/ShareInventoryCommand.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/sharedinventory/bukkit/command/ShareInventoryCommand.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/sharedinventory/bukkit/command/ShareInventoryCommand.scala index 0fa77c95a9..fde6f46776 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/sharedinventory/bukkit/command/ShareInventoryCommand.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/sharedinventory/bukkit/command/ShareInventoryCommand.scala @@ -29,13 +29,13 @@ class ShareInventoryCommand[F[_]: ConcurrentEffect]( val sender = context.sender for { sharedFlag <- sharedInventoryAPI.sharedFlag(sender).toIO - _ <- + eff <- if (sharedFlag == SharedFlag.Sharing) { withdrawFromSharedInventory(sender) } else { depositToSharedInventory(sender) } - } yield emptyEffect + } yield eff } .build() .asNonBlockingTabExecutor() From e5d370df126118e3ab029ea79cdef57f089f4bb5 Mon Sep 17 00:00:00 2001 From: Lucky3028 Date: Sun, 11 Jun 2023 13:11:52 +0900 Subject: [PATCH 079/142] refactor: run scalafmt --- .../sharedinventory/bukkit/command/ShareInventoryCommand.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/sharedinventory/bukkit/command/ShareInventoryCommand.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/sharedinventory/bukkit/command/ShareInventoryCommand.scala index fde6f46776..6120fcc71a 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/sharedinventory/bukkit/command/ShareInventoryCommand.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/sharedinventory/bukkit/command/ShareInventoryCommand.scala @@ -8,7 +8,6 @@ import com.github.unchama.seichiassist.subsystems.sharedinventory.SharedInventor import com.github.unchama.seichiassist.subsystems.sharedinventory.domain.SharedFlag import com.github.unchama.seichiassist.subsystems.sharedinventory.domain.bukkit.InventoryContents import com.github.unchama.seichiassist.util.InventoryOperations -import com.github.unchama.targetedeffect.TargetedEffect.emptyEffect import com.github.unchama.targetedeffect.commandsender.MessageEffect import com.github.unchama.targetedeffect.player.CommandEffect import com.github.unchama.targetedeffect.{SequentialEffect, TargetedEffect} From c961022186f414c0e9eef854f0d995360e8aa8af Mon Sep 17 00:00:00 2001 From: rito528 Date: Sun, 11 Jun 2023 20:46:49 +0900 Subject: [PATCH 080/142] =?UTF-8?q?feat:=20Repository=E3=82=92RepositoryDe?= =?UTF-8?q?finition=E3=81=A7=E5=AE=9A=E7=BE=A9=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BreakSkillTargetConfigAPI.scala | 7 +- .../breakskilltargetconfig/System.scala | 29 +++----- ...killTargetConfigRepositoryDefinition.scala | 12 ++-- ...kkitBreakSkillTargetConfigRepository.scala | 39 ---------- .../BreakSkillTargetConfigPersistence.scala | 2 +- .../BreakSkillTargetConfigRepository.scala | 46 ++++++++++-- ...dbcBreakSkillTargetConfigPersistence.scala | 71 +++++++++++-------- 7 files changed, 100 insertions(+), 106 deletions(-) delete mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/bukkit/BukkitBreakSkillTargetConfigRepository.scala diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala index b490077d13..97770a5520 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/BreakSkillTargetConfigAPI.scala @@ -9,16 +9,13 @@ trait BreakSkillTargetConfigAPI[F[_], Player] { * @return 破壊フラグをトグルする作用 */ def toggleBreakSkillTargetConfig( - breakFlagName: BreakSkillTargetConfigKey + configKey: BreakSkillTargetConfigKey ): Kleisli[F, Player, Unit] /** * @return 現在の破壊フラグを取得する作用 */ - def breakSkillTargetConfig( - player: Player, - breakFlagName: BreakSkillTargetConfigKey - ): F[Boolean] + def breakSkillTargetConfig(player: Player, configKey: BreakSkillTargetConfigKey): F[Boolean] } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index aa926ea593..a40fd88a57 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -1,18 +1,12 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig import cats.data.Kleisli -import cats.effect.concurrent.Ref import cats.effect.{Sync, SyncEffect} -import com.github.unchama.datarepository.bukkit.player.{ - BukkitRepositoryControls, - PlayerDataRepository -} +import com.github.unchama.datarepository.bukkit.player.BukkitRepositoryControls import com.github.unchama.generic.ContextCoercion import com.github.unchama.seichiassist.meta.subsystem.Subsystem import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.application.repository.BreakSkillTargetConfigRepositoryDefinition -import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.bukkit.BukkitBreakSkillTargetConfigRepository import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ - BreakSkillTargetConfig, BreakSkillTargetConfigKey, BreakSkillTargetConfigPersistence } @@ -28,43 +22,40 @@ object System { import cats.implicits._ def wired[F[_]: Sync, G[_]: SyncEffect: ContextCoercion[*[_], F]]: G[System[F, Player]] = { - implicit val breakFlagPersistence: BreakSkillTargetConfigPersistence[G] = + implicit val breakSkillTargetConfigPersistence: BreakSkillTargetConfigPersistence[G] = new JdbcBreakSkillTargetConfigPersistence[G] for { - breakFlagRepositoryControls <- BukkitRepositoryControls.createHandles( + breakSkillTargetConfigRepositoryControls <- BukkitRepositoryControls.createHandles( BreakSkillTargetConfigRepositoryDefinition.withContext[G, Player] ) } yield { - implicit val breakFlagRepository - : PlayerDataRepository[Ref[G, Set[BreakSkillTargetConfig]]] = - breakFlagRepositoryControls.repository - val breakSkillTargetConfigRepository = new BukkitBreakSkillTargetConfigRepository[G] + val breakSkillTargetConfigRepository = breakSkillTargetConfigRepositoryControls.repository new System[F, Player] { override val api: BreakSkillTargetConfigAPI[F, Player] = new BreakSkillTargetConfigAPI[F, Player] { override def toggleBreakSkillTargetConfig( - breakFlagName: BreakSkillTargetConfigKey + configKey: BreakSkillTargetConfigKey ): Kleisli[F, Player, Unit] = Kleisli { player => ContextCoercion( - breakSkillTargetConfigRepository - .toggleBreakSkillTargetConfig(player, breakFlagName) + breakSkillTargetConfigRepository(player) + .toggleBreakSkillTargetConfig(configKey) ) } override def breakSkillTargetConfig( player: Player, - breakFlagName: BreakSkillTargetConfigKey + configKey: BreakSkillTargetConfigKey ): F[Boolean] = ContextCoercion( - breakSkillTargetConfigRepository.breakSkillTargetConfig(player, breakFlagName) + breakSkillTargetConfigRepository(player).breakSkillTargetConfig(configKey) ) } override val managedRepositoryControls: Seq[BukkitRepositoryControls[F, _]] = Seq( - breakFlagRepositoryControls.coerceFinalizationContextTo[F] + breakSkillTargetConfigRepositoryControls.coerceFinalizationContextTo[F] ) } } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala index cfd673f537..c1a9200e73 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala @@ -1,21 +1,21 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.application.repository import cats.effect.Sync -import cats.effect.concurrent.Ref import com.github.unchama.datarepository.definitions.RefDictBackedRepositoryDefinition import com.github.unchama.datarepository.template.RepositoryDefinition import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ - BreakSkillTargetConfig, - BreakSkillTargetConfigPersistence + BreakSkillTargetConfigPersistence, + BreakSkillTargetConfigRepository } object BreakSkillTargetConfigRepositoryDefinition { def withContext[F[_]: Sync, Player]( implicit persistence: BreakSkillTargetConfigPersistence[F] - ): RepositoryDefinition[F, Player, Ref[F, Set[BreakSkillTargetConfig]]] = + ): RepositoryDefinition[F, Player, BreakSkillTargetConfigRepository[F]] = RefDictBackedRepositoryDefinition - .usingUuidRefDict[F, Player, Set[BreakSkillTargetConfig]](persistence)(Set.empty) - .toRefRepository + .usingUuidRefDict[F, Player, BreakSkillTargetConfigRepository[F]](persistence)( + new BreakSkillTargetConfigRepository[F] + ) } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/bukkit/BukkitBreakSkillTargetConfigRepository.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/bukkit/BukkitBreakSkillTargetConfigRepository.scala deleted file mode 100644 index c143fe166f..0000000000 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/bukkit/BukkitBreakSkillTargetConfigRepository.scala +++ /dev/null @@ -1,39 +0,0 @@ -package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.bukkit - -import cats.effect.Sync -import cats.effect.concurrent.Ref -import com.github.unchama.datarepository.bukkit.player.PlayerDataRepository -import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ - BreakSkillTargetConfig, - BreakSkillTargetConfigKey, - BreakSkillTargetConfigRepository -} -import org.bukkit.entity.Player - -class BukkitBreakSkillTargetConfigRepository[F[_]: Sync]( - implicit breakFlagRepository: PlayerDataRepository[Ref[F, Set[BreakSkillTargetConfig]]] -) extends BreakSkillTargetConfigRepository[F, Player] { - - import cats.implicits._ - - override def toggleBreakSkillTargetConfig( - player: Player, - configKey: BreakSkillTargetConfigKey - ): F[Unit] = for { - breakFlag <- breakSkillTargetConfig(player, configKey) - _ <- breakFlagRepository(player).update { breakFlags => - breakFlags.filterNot(_.configKey == configKey) + BreakSkillTargetConfig( - configKey, - includes = !breakFlag - ) - } - } yield () - - override def breakSkillTargetConfig( - player: Player, - configKey: BreakSkillTargetConfigKey - ): F[Boolean] = for { - flags <- breakFlagRepository(player).get - } yield flags.find(_.configKey == configKey).fold(true)(_.includes) - -} diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala index e2fafa93dc..7a864135e9 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala @@ -5,4 +5,4 @@ import com.github.unchama.generic.RefDict import java.util.UUID trait BreakSkillTargetConfigPersistence[F[_]] - extends RefDict[F, UUID, Set[BreakSkillTargetConfig]] + extends RefDict[F, UUID, BreakSkillTargetConfigRepository[F]] diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala index c59168d84c..411d3c1ddd 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala @@ -1,18 +1,50 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain -trait BreakSkillTargetConfigRepository[F[_], Player] { +import cats.effect.Sync +import cats.effect.concurrent.Ref + +class BreakSkillTargetConfigRepository[F[_]: Sync] { + + import cats.implicits._ + + private val breakSkillTargetConfigs: Ref[F, Set[BreakSkillTargetConfig]] = + Ref.unsafe(Set.empty) /** * @return `configKey`の破壊フラグをトグルする作用 */ - def toggleBreakSkillTargetConfig( - player: Player, - configKey: BreakSkillTargetConfigKey - ): F[Unit] + def toggleBreakSkillTargetConfig(configKey: BreakSkillTargetConfigKey): F[Unit] = for { + _ <- breakSkillTargetConfigs.getAndUpdate { breakFlags => + val currentTargetBreakConfig = + breakFlags.find(_.configKey == configKey).exists(_.includes) + + breakFlags.filterNot(_.configKey == configKey) + BreakSkillTargetConfig( + configKey, + includes = !currentTargetBreakConfig + ) + } + } yield () + + /** + * @return 現在の破壊フラグを取得する作用 + */ + def breakSkillTargetConfig(configKey: BreakSkillTargetConfigKey): F[Boolean] = { + for { + config <- breakSkillTargetConfigs.get + } yield config.find(_.configKey == configKey).exists(_.includes) + } + + /** + * この関数は永続化層で利用されることを想定しています。 + * @return 現在の[[BreakSkillTargetConfig]]をすべて取得する作用 + */ + def getConfigAll: F[Set[BreakSkillTargetConfig]] = breakSkillTargetConfigs.get /** - * @return `player`の現在の破壊フラグを取得する作用 + * この関数は永続化層で利用することを想定しています。 + * @return 現在の設定を`config`で上書きする作用 */ - def breakSkillTargetConfig(player: Player, configKey: BreakSkillTargetConfigKey): F[Boolean] + def setConfig(config: Set[BreakSkillTargetConfig]): F[Unit] = + breakSkillTargetConfigs.set(config) } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala index bcd4d83b83..753a3b1847 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala @@ -4,7 +4,8 @@ import cats.effect.Sync import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ BreakSkillTargetConfig, BreakSkillTargetConfigKey, - BreakSkillTargetConfigPersistence + BreakSkillTargetConfigPersistence, + BreakSkillTargetConfigRepository } import scalikejdbc.{DB, scalikejdbcSQLInterpolationImplicitDef} @@ -12,37 +13,49 @@ import java.util.UUID class JdbcBreakSkillTargetConfigPersistence[F[_]: Sync] extends BreakSkillTargetConfigPersistence[F] { - override def read(key: UUID): F[Option[Set[BreakSkillTargetConfig]]] = Sync[F].delay { - DB.readOnly { implicit session => - val breakFlags = - sql"SELECT flag_name, include FROM player_break_preference WHERE uuid = ${key.toString}" - .map { rs => - BreakSkillTargetConfigKey.withNameOption(rs.string("flag_name")).map { flagName => - BreakSkillTargetConfig(flagName, rs.boolean("include")) + + import cats.implicits._ + + override def read(key: UUID): F[Option[BreakSkillTargetConfigRepository[F]]] = { + for { + breakSkillTargetConfig <- Sync[F].delay { + DB.readOnly { implicit session => + sql"SELECT flag_name, include FROM player_break_preference WHERE uuid = ${key.toString}" + .map { rs => + BreakSkillTargetConfigKey.withNameOption(rs.string("flag_name")).map { flagName => + BreakSkillTargetConfig(flagName, rs.boolean("include")) + } } - } - .toList() - .apply() - .collect { case Some(flag) => flag } - .toSet - - Some(breakFlags) - } + .toList() + .apply() + .collect { case Some(flag) => flag } + .toSet + } + } + repository = new BreakSkillTargetConfigRepository[F] + _ <- repository.setConfig(breakSkillTargetConfig) + } yield Some(repository) } - override def write(key: UUID, value: Set[BreakSkillTargetConfig]): F[Unit] = Sync[F].delay { - DB.localTx { implicit session => - val uuid = key.toString - val batchParams = value.map { flag => - Seq(uuid, flag.configKey.entryName, flag.includes) - }.toSeq - - sql"""INSERT INTO player_break_preference (uuid, flag_name, include) - | VALUES (?, ?, ?) - | ON DUPLICATE KEY UPDATE - | include = VALUE(include) - """.stripMargin.batch(batchParams: _*).apply[List]() - } + override def write(key: UUID, value: BreakSkillTargetConfigRepository[F]): F[Unit] = { + for { + currentConfig <- value.getConfigAll + _ <- Sync[F].delay { + DB.localTx { implicit session => + val uuid = key.toString + val batchParams = + currentConfig.map { flag => + Seq(uuid, flag.configKey.entryName, flag.includes) + }.toSeq + + sql"""INSERT INTO player_break_preference (uuid, flag_name, include) + | VALUES (?, ?, ?) + | ON DUPLICATE KEY UPDATE + | include = VALUE(include) + """.stripMargin.batch(batchParams: _*).apply[List]() + } + } + } yield () } } From f4a76242729efa7c1373a0e6a0550b3c836aa375 Mon Sep 17 00:00:00 2001 From: rito528 Date: Wed, 14 Jun 2023 10:03:19 +0900 Subject: [PATCH 081/142] =?UTF-8?q?chore:=20BreakSkillTargetConfigReposito?= =?UTF-8?q?ry=E3=82=92=E5=BB=83=E6=AD=A2=E3=81=97=E3=80=81BreaskSkillTarge?= =?UTF-8?q?tConfigDefinition=E3=81=A7Ref=E3=82=92=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../breakskilltargetconfig/System.scala | 6 +- ...killTargetConfigRepositoryDefinition.scala | 12 +-- .../domain/BreakSkillTargetConfig.scala | 31 +++++++- .../BreakSkillTargetConfigPersistence.scala | 3 +- .../BreakSkillTargetConfigRepository.scala | 50 ------------ ...dbcBreakSkillTargetConfigPersistence.scala | 76 +++++++++---------- 6 files changed, 77 insertions(+), 101 deletions(-) delete mode 100644 src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala index a40fd88a57..08ded6514f 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/System.scala @@ -41,7 +41,7 @@ object System { Kleisli { player => ContextCoercion( breakSkillTargetConfigRepository(player) - .toggleBreakSkillTargetConfig(configKey) + .update(_.toggleBreakSkillTargetConfig(configKey)) ) } @@ -50,7 +50,9 @@ object System { configKey: BreakSkillTargetConfigKey ): F[Boolean] = ContextCoercion( - breakSkillTargetConfigRepository(player).breakSkillTargetConfig(configKey) + breakSkillTargetConfigRepository(player) + .get + .map(_.breakSkillTargetConfig(configKey)) ) } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala index c1a9200e73..05d871b5c5 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/application/repository/BreakSkillTargetConfigRepositoryDefinition.scala @@ -1,21 +1,23 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.application.repository import cats.effect.Sync +import cats.effect.concurrent.Ref import com.github.unchama.datarepository.definitions.RefDictBackedRepositoryDefinition import com.github.unchama.datarepository.template.RepositoryDefinition import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ - BreakSkillTargetConfigPersistence, - BreakSkillTargetConfigRepository + BreakSkillTargetConfig, + BreakSkillTargetConfigPersistence } object BreakSkillTargetConfigRepositoryDefinition { def withContext[F[_]: Sync, Player]( implicit persistence: BreakSkillTargetConfigPersistence[F] - ): RepositoryDefinition[F, Player, BreakSkillTargetConfigRepository[F]] = + ): RepositoryDefinition[F, Player, Ref[F, BreakSkillTargetConfig]] = RefDictBackedRepositoryDefinition - .usingUuidRefDict[F, Player, BreakSkillTargetConfigRepository[F]](persistence)( - new BreakSkillTargetConfigRepository[F] + .usingUuidRefDict[F, Player, BreakSkillTargetConfig](persistence)( + BreakSkillTargetConfig.initial ) + .toRefRepository } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala index f88e261239..6f8c0a4cac 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala @@ -1,3 +1,32 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain -case class BreakSkillTargetConfig(configKey: BreakSkillTargetConfigKey, includes: Boolean) +case class BreakSkillTargetConfig(config: Map[BreakSkillTargetConfigKey, Boolean]) { + + /** + * @return `configKey`の破壊フラグをトグルする作用 + */ + def toggleBreakSkillTargetConfig( + configKey: BreakSkillTargetConfigKey + ): BreakSkillTargetConfig = + this.copy( + this.config.filterNot(_._1 == configKey) ++ Map( + configKey -> this.config.getOrElse(configKey, false) + ) + ) + + /** + * @return 現在の破壊フラグを取得する作用 + */ + def breakSkillTargetConfig(configKey: BreakSkillTargetConfigKey): Boolean = + this.config.getOrElse(configKey, false) + +} + +object BreakSkillTargetConfig { + + /** + * [[BreakSkillTargetConfig]]の初期値 + */ + val initial: BreakSkillTargetConfig = BreakSkillTargetConfig(Map.empty) + +} diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala index 7a864135e9..6c91b1a752 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigPersistence.scala @@ -4,5 +4,4 @@ import com.github.unchama.generic.RefDict import java.util.UUID -trait BreakSkillTargetConfigPersistence[F[_]] - extends RefDict[F, UUID, BreakSkillTargetConfigRepository[F]] +trait BreakSkillTargetConfigPersistence[F[_]] extends RefDict[F, UUID, BreakSkillTargetConfig] diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala deleted file mode 100644 index 411d3c1ddd..0000000000 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfigRepository.scala +++ /dev/null @@ -1,50 +0,0 @@ -package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain - -import cats.effect.Sync -import cats.effect.concurrent.Ref - -class BreakSkillTargetConfigRepository[F[_]: Sync] { - - import cats.implicits._ - - private val breakSkillTargetConfigs: Ref[F, Set[BreakSkillTargetConfig]] = - Ref.unsafe(Set.empty) - - /** - * @return `configKey`の破壊フラグをトグルする作用 - */ - def toggleBreakSkillTargetConfig(configKey: BreakSkillTargetConfigKey): F[Unit] = for { - _ <- breakSkillTargetConfigs.getAndUpdate { breakFlags => - val currentTargetBreakConfig = - breakFlags.find(_.configKey == configKey).exists(_.includes) - - breakFlags.filterNot(_.configKey == configKey) + BreakSkillTargetConfig( - configKey, - includes = !currentTargetBreakConfig - ) - } - } yield () - - /** - * @return 現在の破壊フラグを取得する作用 - */ - def breakSkillTargetConfig(configKey: BreakSkillTargetConfigKey): F[Boolean] = { - for { - config <- breakSkillTargetConfigs.get - } yield config.find(_.configKey == configKey).exists(_.includes) - } - - /** - * この関数は永続化層で利用されることを想定しています。 - * @return 現在の[[BreakSkillTargetConfig]]をすべて取得する作用 - */ - def getConfigAll: F[Set[BreakSkillTargetConfig]] = breakSkillTargetConfigs.get - - /** - * この関数は永続化層で利用することを想定しています。 - * @return 現在の設定を`config`で上書きする作用 - */ - def setConfig(config: Set[BreakSkillTargetConfig]): F[Unit] = - breakSkillTargetConfigs.set(config) - -} diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala index 753a3b1847..6f2b50ed5a 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala @@ -4,8 +4,7 @@ import cats.effect.Sync import com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain.{ BreakSkillTargetConfig, BreakSkillTargetConfigKey, - BreakSkillTargetConfigPersistence, - BreakSkillTargetConfigRepository + BreakSkillTargetConfigPersistence } import scalikejdbc.{DB, scalikejdbcSQLInterpolationImplicitDef} @@ -14,48 +13,43 @@ import java.util.UUID class JdbcBreakSkillTargetConfigPersistence[F[_]: Sync] extends BreakSkillTargetConfigPersistence[F] { - import cats.implicits._ - - override def read(key: UUID): F[Option[BreakSkillTargetConfigRepository[F]]] = { - for { - breakSkillTargetConfig <- Sync[F].delay { - DB.readOnly { implicit session => - sql"SELECT flag_name, include FROM player_break_preference WHERE uuid = ${key.toString}" - .map { rs => - BreakSkillTargetConfigKey.withNameOption(rs.string("flag_name")).map { flagName => - BreakSkillTargetConfig(flagName, rs.boolean("include")) - } - } - .toList() - .apply() - .collect { case Some(flag) => flag } - .toSet + override def read(key: UUID): F[Option[BreakSkillTargetConfig]] = Sync[F].delay { + val config = DB.readOnly { implicit session => + sql"SELECT flag_name, include FROM player_break_preference WHERE uuid = ${key.toString}" + .map { rs => + BreakSkillTargetConfigKey.withNameOption(rs.string("flag_name")).map { flagName => + Map(flagName -> rs.boolean("include")) + } } - } - repository = new BreakSkillTargetConfigRepository[F] - _ <- repository.setConfig(breakSkillTargetConfig) - } yield Some(repository) + .toList() + .apply() + .collect { case Some(flag) => flag } + .foldLeft(Map.empty[BreakSkillTargetConfigKey, Boolean]) { + case (previous, next) => previous ++ next + } + } + + Some(BreakSkillTargetConfig(config)) } - override def write(key: UUID, value: BreakSkillTargetConfigRepository[F]): F[Unit] = { - for { - currentConfig <- value.getConfigAll - _ <- Sync[F].delay { - DB.localTx { implicit session => - val uuid = key.toString - val batchParams = - currentConfig.map { flag => - Seq(uuid, flag.configKey.entryName, flag.includes) - }.toSeq - - sql"""INSERT INTO player_break_preference (uuid, flag_name, include) - | VALUES (?, ?, ?) - | ON DUPLICATE KEY UPDATE - | include = VALUE(include) - """.stripMargin.batch(batchParams: _*).apply[List]() - } - } - } yield () + override def write(key: UUID, value: BreakSkillTargetConfig): F[Unit] = Sync[F].delay { + DB.localTx { implicit session => + val uuid = key.toString + val batchParams = + value + .config + .map { + case (configKey, includes) => + Seq(uuid, configKey.entryName, includes) + } + .toSeq + + sql"""INSERT INTO player_break_preference (uuid, flag_name, include) + | VALUES (?, ?, ?) + | ON DUPLICATE KEY UPDATE + | include = VALUE(include) + """.stripMargin.batch(batchParams: _*).apply[List]() + } } } From 5ca893476eb44a99e22cd46d5e700f286d5ea538 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Jun 2023 13:13:48 +0000 Subject: [PATCH 082/142] chore(deps): update dependency io.sentry:sentry to v6.23.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d818a1486a..923b1fbea1 100644 --- a/build.sbt +++ b/build.sbt @@ -118,7 +118,7 @@ val dependenciesToEmbed = Seq( "com.github.KisaragiEffective" % "ajd4jp-mirror" % "8.0.2.2021", // Sentry - "io.sentry" % "sentry" % "6.22.0" + "io.sentry" % "sentry" % "6.23.0" ) // endregion From c8d33ce47aae9438819d077d5cf3f3718973ae84 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 15 Jun 2023 23:02:36 +0900 Subject: [PATCH 083/142] =?UTF-8?q?=E5=A6=96=E7=B2=BE=E3=81=AB=E3=82=88?= =?UTF-8?q?=E3=82=8B=E3=83=9E=E3=83=8A=E3=81=AE=E5=9B=9E=E5=BE=A9=E9=87=8F?= =?UTF-8?q?=E3=81=8C300=E4=BB=A5=E4=B8=8A=E3=81=AB=E3=81=AA=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fairy/domain/property/FairyRecoveryManaAmount.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyRecoveryManaAmount.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyRecoveryManaAmount.scala index 845a70de4c..883f9de8c0 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyRecoveryManaAmount.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyRecoveryManaAmount.scala @@ -8,7 +8,7 @@ object FairyRecoveryManaAmount { require(levelCappedManaAmount >= 0.0, "levelCappedManaAmountは非負の値で指定してください。") FairyRecoveryMana( (levelCappedManaAmount / 10 - levelCappedManaAmount / 30 + new Random() - .nextInt((levelCappedManaAmount / 20).toInt) / 2.9).toInt + 200 + .nextInt((levelCappedManaAmount / 20).toInt) / 2.9).toInt + 300 ) } From 81685df5401b7288931d1f292a57c71d3c38777d Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 15 Jun 2023 23:39:40 +0900 Subject: [PATCH 084/142] =?UTF-8?q?=E5=A6=96=E7=B2=BE=E3=81=AB=E3=82=88?= =?UTF-8?q?=E3=82=8B=E3=83=9E=E3=83=8A=E3=81=AE=E5=9B=9E=E5=BE=A9=E9=87=8F?= =?UTF-8?q?=E3=81=8C300=E3=82=92=E4=B8=8B=E5=9B=9E=E3=81=A3=E3=81=9F?= =?UTF-8?q?=E5=A0=B4=E5=90=88=E7=94=A8=E3=81=AE=E3=83=91=E3=82=BF=E3=83=BC?= =?UTF-8?q?=E3=83=B3=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/actions/BukkitRecoveryMana.scala | 27 +++++++++++++------ .../property/FairyRecoveryManaAmount.scala | 2 +- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/actions/BukkitRecoveryMana.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/actions/BukkitRecoveryMana.scala index 45ddd226e6..d71abfdcfa 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/actions/BukkitRecoveryMana.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/actions/BukkitRecoveryMana.scala @@ -91,6 +91,15 @@ class BukkitRecoveryMana[F[_]: ConcurrentEffect: JavaTime, G[_]: ContextCoercion defaultRecoveryMana.recoveryMana * 0.7 + bonusRecoveryAmount ) + manaRecoveryState <- Sync[F].delay { + // NOTE: recoveryManaAmountが300を下回ると、がちゃりんごを一つも消費しないが、 + // りんごを消費できなかったときと同じ処理を行うと仕様として紛らわしいので、 + // 回復量が300未満だった場合はりんごを消費して回復したことにする + if (appleConsumeAmount == 0 && recoveryManaAmount > 300) + FairyManaRecoveryState.RecoveredWithoutApple + else FairyManaRecoveryState.RecoveredWithApple + } + _ <- { fairyPersistence.increaseConsumedAppleAmountByFairy( uuid, @@ -99,12 +108,7 @@ class BukkitRecoveryMana[F[_]: ConcurrentEffect: JavaTime, G[_]: ContextCoercion ContextCoercion( manaApi.manaAmount(player).restoreAbsolute(ManaAmount(recoveryManaAmount)) ) >> - fairySpeech.speechRandomly( - player, - if (appleConsumeAmount == 0) - FairyManaRecoveryState.RecoveredWithoutApple - else FairyManaRecoveryState.RecoveredWithApple - ) >> + fairySpeech.speechRandomly(player, manaRecoveryState) >> mineStackAPI .mineStackRepository .subtractStackedAmountOf(player, gachaRingoObject.get, appleConsumeAmount) >> @@ -112,9 +116,16 @@ class BukkitRecoveryMana[F[_]: ConcurrentEffect: JavaTime, G[_]: ContextCoercion MessageEffectF( s"$RESET$YELLOW${BOLD}マナ妖精が${Math.floor(recoveryManaAmount)}マナを回復してくれました" ), - if (appleConsumeAmount != 0) + if ( + manaRecoveryState == FairyManaRecoveryState.RecoveredWithApple && appleConsumeAmount != 0 + ) MessageEffectF(s"$RESET$YELLOW${BOLD}あっ!${appleConsumeAmount}個のがちゃりんごが食べられてる!") - else MessageEffectF(s"$RESET$YELLOW${BOLD}あなたは妖精にりんごを渡しませんでした。") + else if ( + manaRecoveryState == FairyManaRecoveryState.RecoveredWithApple && appleConsumeAmount == 0 + ) + MessageEffectF(s"$RESET$YELLOW${BOLD}回復量ががちゃりんご1つ分に満たなかったため、あなたは妖精にりんごを渡しませんでした。") + else + MessageEffectF(s"$RESET$YELLOW${BOLD}あなたは妖精にりんごを渡しませんでした。") ).apply(player) }.whenA(isFairyUsing && isRecoverTiming && !nonRecoveredManaAmount.isFull) finishUse <- JavaTime[F] diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyRecoveryManaAmount.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyRecoveryManaAmount.scala index 883f9de8c0..845a70de4c 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyRecoveryManaAmount.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyRecoveryManaAmount.scala @@ -8,7 +8,7 @@ object FairyRecoveryManaAmount { require(levelCappedManaAmount >= 0.0, "levelCappedManaAmountは非負の値で指定してください。") FairyRecoveryMana( (levelCappedManaAmount / 10 - levelCappedManaAmount / 30 + new Random() - .nextInt((levelCappedManaAmount / 20).toInt) / 2.9).toInt + 300 + .nextInt((levelCappedManaAmount / 20).toInt) / 2.9).toInt + 200 ) } From 42260b8a2b4e31585c762c331844abaec39995a2 Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 15 Jun 2023 23:43:39 +0900 Subject: [PATCH 085/142] =?UTF-8?q?=E5=9B=9E=E5=BE=A9=E9=87=8F=E3=81=8C300?= =?UTF-8?q?=E3=82=92=E4=B8=8B=E5=9B=9E=E3=81=A3=E3=81=9F=E5=A0=B4=E5=90=88?= =?UTF-8?q?=E3=81=AEState=E3=82=92=E7=94=A8=E6=84=8F=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/actions/BukkitRecoveryMana.scala | 22 ++++++++++--------- .../property/FairyManaRecoveryState.scala | 5 +++++ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/actions/BukkitRecoveryMana.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/actions/BukkitRecoveryMana.scala index d71abfdcfa..4333a49514 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/actions/BukkitRecoveryMana.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/actions/BukkitRecoveryMana.scala @@ -96,6 +96,8 @@ class BukkitRecoveryMana[F[_]: ConcurrentEffect: JavaTime, G[_]: ContextCoercion // りんごを消費できなかったときと同じ処理を行うと仕様として紛らわしいので、 // 回復量が300未満だった場合はりんごを消費して回復したことにする if (appleConsumeAmount == 0 && recoveryManaAmount > 300) + FairyManaRecoveryState.RecoverWithoutAppleButLessThanAApple + else if (appleConsumeAmount == 0) FairyManaRecoveryState.RecoveredWithoutApple else FairyManaRecoveryState.RecoveredWithApple } @@ -116,16 +118,16 @@ class BukkitRecoveryMana[F[_]: ConcurrentEffect: JavaTime, G[_]: ContextCoercion MessageEffectF( s"$RESET$YELLOW${BOLD}マナ妖精が${Math.floor(recoveryManaAmount)}マナを回復してくれました" ), - if ( - manaRecoveryState == FairyManaRecoveryState.RecoveredWithApple && appleConsumeAmount != 0 - ) - MessageEffectF(s"$RESET$YELLOW${BOLD}あっ!${appleConsumeAmount}個のがちゃりんごが食べられてる!") - else if ( - manaRecoveryState == FairyManaRecoveryState.RecoveredWithApple && appleConsumeAmount == 0 - ) - MessageEffectF(s"$RESET$YELLOW${BOLD}回復量ががちゃりんご1つ分に満たなかったため、あなたは妖精にりんごを渡しませんでした。") - else - MessageEffectF(s"$RESET$YELLOW${BOLD}あなたは妖精にりんごを渡しませんでした。") + manaRecoveryState match { + case FairyManaRecoveryState.RecoverWithoutAppleButLessThanAApple => + MessageEffectF( + s"$RESET$YELLOW${BOLD}回復量ががちゃりんご1つ分に満たなかったため、あなたは妖精にりんごを渡しませんでした。" + ) + case FairyManaRecoveryState.RecoveredWithApple => + MessageEffectF(s"$RESET$YELLOW${BOLD}あっ!${appleConsumeAmount}個のがちゃりんごが食べられてる!") + case _ => + MessageEffectF(s"$RESET$YELLOW${BOLD}あなたは妖精にりんごを渡しませんでした。") + } ).apply(player) }.whenA(isFairyUsing && isRecoverTiming && !nonRecoveredManaAmount.isFull) finishUse <- JavaTime[F] diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyManaRecoveryState.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyManaRecoveryState.scala index 2461d27c89..3aabf7a281 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyManaRecoveryState.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/property/FairyManaRecoveryState.scala @@ -17,6 +17,11 @@ object FairyManaRecoveryState { */ case object RecoveredWithoutApple extends FairyManaRecoveryState + /** + * マナを回復したが、回復量がりんご一つ分に満たなかったため、りんごを消費しなかった + */ + case object RecoverWithoutAppleButLessThanAApple extends FairyManaRecoveryState + /** * りんごを消費してマナを回復した */ From 8ffc7049ed9111ea944188650a20a08b03ffb64c Mon Sep 17 00:00:00 2001 From: rito528 Date: Thu, 15 Jun 2023 23:45:55 +0900 Subject: [PATCH 086/142] =?UTF-8?q?=E5=A6=96=E7=B2=BE=E3=81=AE=E5=96=8B?= =?UTF-8?q?=E3=82=8B=E5=A0=B4=E5=90=88=E3=81=AEmatch=E3=81=AB=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=81=97=E3=81=9FState=E3=82=92=E8=BF=BD=E5=8A=A0?= =?UTF-8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vote/subsystems/fairy/bukkit/BukkitFairySpeech.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/BukkitFairySpeech.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/BukkitFairySpeech.scala index 2b524699a9..b19655fafa 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/BukkitFairySpeech.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/bukkit/BukkitFairySpeech.scala @@ -50,6 +50,8 @@ class BukkitFairySpeech[F[_]: Sync: JavaTime]( FairyMessageTable.manaFullMessages case FairyManaRecoveryState.RecoveredWithApple => FairyMessageTable.consumed + case FairyManaRecoveryState.RecoverWithoutAppleButLessThanAApple => + FairyMessageTable.consumed case FairyManaRecoveryState.RecoveredWithoutApple => FairyMessageTable.notConsumed } From 8b48f4611e8550e9aa3eed8f90fac359d0f65432 Mon Sep 17 00:00:00 2001 From: lis2a Date: Fri, 16 Jun 2023 00:42:25 +0900 Subject: [PATCH 087/142] =?UTF-8?q?docs:=20=E3=83=86=E3=83=B3=E3=83=97?= =?UTF-8?q?=E3=83=AC=E3=83=BC=E3=83=88=E5=AF=BE=E5=BF=9C=E7=89=88=E3=81=AE?= =?UTF-8?q?=E8=AA=AC=E6=98=8E=E3=81=AB=E7=BD=AE=E3=81=8D=E6=8F=9B=E3=81=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CONTRIBUTING.md | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5c9a880df2..cccaba7490 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -212,11 +212,34 @@ DockerマシンのIPアドレス(Linux等なら`localhost`)を`DOCKER_IP`とし その後、自分の手元から自分のGitHubアカウントへ内容を反映します。 #### Pull Requestの作成 -次に、自分のGitHubアカウントにあるSeichiAssistを開いて、変更を依頼する手続き (Pull Request) の準備画面へ移動します。 -画面が切り替わります。右上のCreate pull requestと書かれたボタンを押してください。 -そうすると、高さが狭い場所と広い場所が表示されます。 -狭い場所には、変更の概要を50文字以内で簡単に書いてください。 (TODO: コンベンショナルコミット) -広い場所には、書くべきだと思ったことを書いてください。詳しすぎるということはありません。 +次に、自分のGitHubアカウントにあるSeichiAssistを開いて、変更を依頼する手続き (Pull Request) の準備画面へ移動し、右上のCreate pull requestと書かれたボタンを押すとこのような入力欄が表示されます。 + +```md +close # + +---- + +### このPRの変更点と理由: + +### 補足情報: +``` +(一部省略) + +書くべき主な内容の説明はコメントに記載されています。 + +どれも必須ではありませんが、メンテナたちにどんな変更をしたのか正確に伝えるためにもなるべく書くことを心かけるといいでしょう。 + +- **`close #`** + - プルリクエストと対象のIssueを紐付ける事ができます。 + - そのプルリクエストに関係し、なおかつマージ後に自動でクローズしたいIssueの番号を指定してください。 + - 複数のIssueを紐付ける場合は `close #1, close #2` と繰り返し指定します。 + - 詳細: [キーワードを使用してPull RequestをIssueにリンクする - GitHub Docs](https://docs.github.com/ja/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) +- **`このPRの変更点と理由:`** + - このプルリクエストで行った変更点とその理由を記述します。 + - 自明な場合は書く必要はありませんが、なるべく書くようにします。 +- **`補足情報:`** + - その他、メンテナたちに伝えたい事があれば自由に書いてください。 + 一通り書き終わったら、長い場所の右下にある「Create pull request」と書かれたボタンを押してください。 ### コードレビューを待つ From c2289feec7a669e550a2f34a685492faedc99abb Mon Sep 17 00:00:00 2001 From: rito528 Date: Fri, 16 Jun 2023 15:22:03 +0900 Subject: [PATCH 088/142] =?UTF-8?q?=E5=A6=96=E7=B2=BE=E3=81=AE=E3=83=A9?= =?UTF-8?q?=E3=83=B3=E3=82=AD=E3=83=B3=E3=82=B0=E3=81=8C=E6=AD=A3=E3=81=97?= =?UTF-8?q?=E3=81=8F=E8=A1=A8=E7=A4=BA=E3=81=95=E3=82=8C=E3=81=AA=E3=81=84?= =?UTF-8?q?=E4=B8=8D=E5=85=B7=E5=90=88=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/menus/VoteMenu.scala | 14 ++++++++------ .../vote/subsystems/fairy/FairyAPI.scala | 2 +- .../vote/subsystems/fairy/System.scala | 2 +- .../fairy/domain/FairyPersistence.scala | 2 +- .../infrastructure/JdbcFairyPersistence.scala | 16 ++++++++-------- 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala index c63cb29296..6950f76ec2 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala @@ -388,12 +388,14 @@ object VoteMenu extends Menu { topFourRanking.lift(1), topFourRanking.lift(2), topFourRanking.lift(3) - ).flatMap(_.flatten).flatMap { rankData => - List( - s"${GRAY}たくさんくれたニンゲン第${rankData.rank}位!", - s"${GRAY}なまえ:${rankData.playerName} りんご:${rankData.consumed.amount}個" - ) - } + ).map { + case Some(rankData) => + List( + s"${GRAY}たくさんくれたニンゲン第${rankData.rank}位!", + s"${GRAY}なまえ:${rankData.playerName} りんご:${rankData.consumed.amount}個" + ) + case None => List.empty + }.foldLeft(List.empty[String])((left, right) => left ++ right) val statistics = myRank.map { rank => List( s"${AQUA}ぜーんぶで${allEatenAppleAmount.amount}個もらえた!", diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/FairyAPI.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/FairyAPI.scala index 1a037693bb..8127d7192f 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/FairyAPI.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/FairyAPI.scala @@ -55,7 +55,7 @@ trait FairyReadAPI[F[_], G[_], Player] { /** * @return 妖精に食べさせたりんごの量の上位`top`件を返す作用 */ - def rankingByMostConsumedApple(top: Int): F[Vector[Option[AppleConsumeAmountRank]]] + def rankingByMostConsumedApple(top: Int): F[Vector[AppleConsumeAmountRank]] /** * @return 妖精が食べたりんごの合計数を返す作用 diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/System.scala index f02daa6925..72d03d92e0 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/System.scala @@ -105,7 +105,7 @@ object System { override def rankingByMostConsumedApple( top: Int - ): IO[Vector[Option[AppleConsumeAmountRank]]] = + ): IO[Vector[AppleConsumeAmountRank]] = persistence.fetchMostConsumedApplePlayersByFairy(top) override def totalConsumedApple: IO[AppleAmount] = diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/FairyPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/FairyPersistence.scala index 9331e34689..60de8f9490 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/FairyPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/domain/FairyPersistence.scala @@ -91,7 +91,7 @@ trait FairyPersistence[F[_]] { * @param top 最上位から何番目まで取得するか件数を指定する。0以下であってはならない。 * @return 指定した件数が要素数となり、その並びが消費量の降順になっているような順序つきのコレクションを返す作用。 */ - def fetchMostConsumedApplePlayersByFairy(top: Int): F[Vector[Option[AppleConsumeAmountRank]]] + def fetchMostConsumedApplePlayersByFairy(top: Int): F[Vector[AppleConsumeAmountRank]] /** * @return 妖精が今まで食べたりんごの合計数を返す作用 diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala index 1e86fc4584..bf82bfe27c 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala @@ -183,19 +183,19 @@ class JdbcFairyPersistence[F[_]: Sync] extends FairyPersistence[F] { override def fetchMostConsumedApplePlayersByFairy( top: Int - ): F[Vector[Option[AppleConsumeAmountRank]]] = + ): F[Vector[AppleConsumeAmountRank]] = Sync[F].delay { DB.readOnly { implicit session => - sql"""SELECT name,given_apple_amount,COUNT(*) AS rank FROM vote_fairy + sql"""SELECT name, given_apple_amount, RANK() OVER(ORDER BY given_apple_amount DESC) AS rank FROM vote_fairy | INNER JOIN playerdata ON (vote_fairy.uuid = playerdata.uuid) - | ORDER BY rank DESC LIMIT $top;""" + | LIMIT $top;""" .stripMargin .map { rs => - for { - name <- rs.stringOpt("name") - rank <- rs.intOpt("rank") - givenAppleAmount <- rs.intOpt("given_apple_amount") - } yield AppleConsumeAmountRank(name, rank, AppleAmount(givenAppleAmount)) + val name = rs.string("name") + val rank = rs.int("rank") + val givenAppleAmount = rs.int("given_apple_amount") + + AppleConsumeAmountRank(name, rank, AppleAmount(givenAppleAmount)) } .toList() .apply() From f13b8b909f7214d8c50456ccbd7d9b29a983ea86 Mon Sep 17 00:00:00 2001 From: rito528 Date: Fri, 16 Jun 2023 15:32:20 +0900 Subject: [PATCH 089/142] =?UTF-8?q?=E8=87=AA=E5=88=86=E3=81=AE=E5=A6=96?= =?UTF-8?q?=E7=B2=BE=E3=81=AE=E7=8A=B6=E6=85=8B=E3=81=8C=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?=E3=81=95=E3=82=8C=E3=81=AA=E3=81=84=E4=B8=8D=E5=85=B7=E5=90=88?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fairy/infrastructure/JdbcFairyPersistence.scala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala index bf82bfe27c..4060f179e9 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala @@ -161,11 +161,11 @@ class JdbcFairyPersistence[F[_]: Sync] extends FairyPersistence[F] { ): F[Option[AppleConsumeAmountRank]] = Sync[F].delay { DB.readOnly { implicit session => - sql"""SELECT vote_fairy.uuid AS uuid,name,given_apple_amount,COUNT(*) AS rank + sql"""SELECT vote_fairy.uuid AS uuid, name, given_apple_amount, + | RANK() OVER(ORDER BY given_apple_amount DESC) AS rank | FROM vote_fairy | INNER JOIN playerdata - | ON (playerdata.uuid = vote_fairy.uuid) - | ORDER BY rank DESC;""" + | ON (playerdata.uuid = vote_fairy.uuid)""" .stripMargin .map(rs => rs.string("uuid") -> AppleConsumeAmountRank( From 50856c61fd44d8cc13167a1983d5ea06f50d1d6a Mon Sep 17 00:00:00 2001 From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com> Date: Fri, 16 Jun 2023 23:28:13 +0900 Subject: [PATCH 090/142] =?UTF-8?q?docs:=20=E8=A1=A8=E8=A8=98=E3=83=96?= =?UTF-8?q?=E3=83=AC=E3=81=AE=E4=BF=AE=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CONTRIBUTING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cccaba7490..1269c9143b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,8 +1,8 @@ # 開発体制 ## 開発を始めるために必要なもの -- [Intellij IDEA](https://www.jetbrains.com/idea/) などの統合開発環境 -- [AdoptOpenJDK 1.8](https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot) +- [IntelliJ IDEA](https://www.jetbrains.com/idea/) などの統合開発環境 +- [JDK 8](https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot) - [sbt 1.6](https://www.scala-sbt.org/1.x/docs/Setup.html) - [Scala 2.13](https://www.scala-lang.org/download/) - Spigot 1.12.2 @@ -16,7 +16,7 @@ [AdoptOpenJDK 1.8](https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot) のインストールを推奨します。 #### 統合開発環境 -次に、[Intellij IDEA](https://www.jetbrains.com/idea/)などの統合開発環境を導入します。 +次に、[IntelliJ IDEA](https://www.jetbrains.com/idea/)などの統合開発環境を導入します。 有料版 **Ultimate Edition** と機能が制限された無料版 **Community Edition** が2つありますが、SeichiAssist を開発する上では無料版で十分です。 @@ -26,7 +26,7 @@ > > 学生の場合は、[学生ライセンス](https://www.jetbrains.com/community/education/#students)を申請することで Ultimate Edition を無料で利用できます。 -##### Intellij +##### IntelliJ * インストールする時、Gitプラグインを有効にします。 * Scala用の[プラグイン](https://plugins.jetbrains.com/plugin/1347-scala)を導入してください。 From c6bbf1a8715fcd7614123c38575f482411518465 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Jun 2023 20:34:15 +0000 Subject: [PATCH 091/142] chore(deps): update dependency eu.timepit:refined to v0.11.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 923b1fbea1..00b86b5744 100644 --- a/build.sbt +++ b/build.sbt @@ -103,7 +103,7 @@ val dependenciesToEmbed = Seq( "com.typesafe.scala-logging" % "scala-logging-slf4j_2.10" % "2.1.2", // type-safety utils - "eu.timepit" %% "refined" % "0.10.3", + "eu.timepit" %% "refined" % "0.11.0", "com.beachape" %% "enumeratum" % "1.7.2", // protobuf From be91538c6f649711bd78de3e4ce3f419a9b40064 Mon Sep 17 00:00:00 2001 From: rito528 Date: Sat, 17 Jun 2023 13:06:54 +0900 Subject: [PATCH 092/142] =?UTF-8?q?style:=20map#foldLeft=E3=82=92=E4=BD=BF?= =?UTF-8?q?=E3=82=8F=E3=81=9A=E3=81=ABflatMap=E3=82=92=E4=BD=BF=E3=81=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/github/unchama/seichiassist/menus/VoteMenu.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala index 6950f76ec2..2f9a774b60 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala @@ -388,14 +388,14 @@ object VoteMenu extends Menu { topFourRanking.lift(1), topFourRanking.lift(2), topFourRanking.lift(3) - ).map { + ).flatMap { case Some(rankData) => List( s"${GRAY}たくさんくれたニンゲン第${rankData.rank}位!", s"${GRAY}なまえ:${rankData.playerName} りんご:${rankData.consumed.amount}個" ) case None => List.empty - }.foldLeft(List.empty[String])((left, right) => left ++ right) + } val statistics = myRank.map { rank => List( s"${AQUA}ぜーんぶで${allEatenAppleAmount.amount}個もらえた!", From 644cca7295971b935ce614f0458d3a690e1e6dbe Mon Sep 17 00:00:00 2001 From: rito528 Date: Sat, 17 Jun 2023 13:25:18 +0900 Subject: [PATCH 093/142] =?UTF-8?q?style:=20topFourRanking=E3=82=92?= =?UTF-8?q?=E3=81=9D=E3=81=AE=E3=81=BE=E3=81=BEflatMap=E3=81=97=E3=81=A6?= =?UTF-8?q?=E3=83=A9=E3=83=B3=E3=82=AD=E3=83=B3=E3=82=B0=E3=82=92=E6=A7=8B?= =?UTF-8?q?=E6=88=90=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/menus/VoteMenu.scala | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala index 2f9a774b60..b2c3668a55 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/VoteMenu.scala @@ -383,18 +383,11 @@ object VoteMenu extends Menu { s"$RESET${DARK_GRAY}召喚されたらラッキーだよ!" ) val topFourRankingLore = - List( - topFourRanking.headOption, - topFourRanking.lift(1), - topFourRanking.lift(2), - topFourRanking.lift(3) - ).flatMap { - case Some(rankData) => - List( - s"${GRAY}たくさんくれたニンゲン第${rankData.rank}位!", - s"${GRAY}なまえ:${rankData.playerName} りんご:${rankData.consumed.amount}個" - ) - case None => List.empty + topFourRanking.flatMap { rankData => + List( + s"${GRAY}たくさんくれたニンゲン第${rankData.rank}位!", + s"${GRAY}なまえ:${rankData.playerName} りんご:${rankData.consumed.amount}個" + ) } val statistics = myRank.map { rank => List( From 73d46f9fb4209d12f536c29099d1817ec407fc3b Mon Sep 17 00:00:00 2001 From: rito528 Date: Sat, 17 Jun 2023 19:48:52 +0900 Subject: [PATCH 094/142] =?UTF-8?q?fix:=20=E6=8A=9C=E3=81=91=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=81=9FORDER=20BY=E5=8F=A5=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fairy/infrastructure/JdbcFairyPersistence.scala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala index 4060f179e9..f7f39eb8f9 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/vote/subsystems/fairy/infrastructure/JdbcFairyPersistence.scala @@ -165,7 +165,8 @@ class JdbcFairyPersistence[F[_]: Sync] extends FairyPersistence[F] { | RANK() OVER(ORDER BY given_apple_amount DESC) AS rank | FROM vote_fairy | INNER JOIN playerdata - | ON (playerdata.uuid = vote_fairy.uuid)""" + | ON (playerdata.uuid = vote_fairy.uuid) + | ORDER BY rank""" .stripMargin .map(rs => rs.string("uuid") -> AppleConsumeAmountRank( @@ -187,7 +188,8 @@ class JdbcFairyPersistence[F[_]: Sync] extends FairyPersistence[F] { Sync[F].delay { DB.readOnly { implicit session => sql"""SELECT name, given_apple_amount, RANK() OVER(ORDER BY given_apple_amount DESC) AS rank FROM vote_fairy - | INNER JOIN playerdata ON (vote_fairy.uuid = playerdata.uuid) + | INNER JOIN playerdata ON (vote_fairy.uuid = playerdata.uuid) + | ORDER BY rank | LIMIT $top;""" .stripMargin .map { rs => From 981a5061e3800216d39c5bd08d801aa61542bb8f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 17 Jun 2023 13:21:10 +0000 Subject: [PATCH 095/142] chore(bump): 81 -> 82 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 923b1fbea1..4627ebf8e5 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ import java.io._ ThisBuild / scalaVersion := "2.13.11" // ThisBuild / version はGitHub Actionsによって取得/自動更新される。 // 次の行は ThisBuild / version := "(\d*)" の形式でなければならない。 -ThisBuild / version := "81" +ThisBuild / version := "82" ThisBuild / organization := "click.seichi" ThisBuild / description := "ギガンティック☆整地鯖の独自要素を司るプラグイン" From a3bed294e080e0b692734557e3cc5ab4b4a9ae60 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 Jun 2023 20:35:29 +0000 Subject: [PATCH 096/142] chore(deps): update dependency commons-codec:commons-codec to v1.16.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4627ebf8e5..7510e6da0c 100644 --- a/build.sbt +++ b/build.sbt @@ -57,7 +57,7 @@ resolvers ++= Seq( val providedDependencies = Seq( "org.jetbrains" % "annotations" % "24.0.1", "org.apache.commons" % "commons-lang3" % "3.12.0", - "commons-codec" % "commons-codec" % "1.15", + "commons-codec" % "commons-codec" % "1.16.0", "org.spigotmc" % "spigot-api" % "1.12.2-R0.1-SNAPSHOT", // https://maven.enginehub.org/repo/com/sk89q/worldedit/worldedit-bukkit/ "com.sk89q.worldguard" % "worldguard-legacy" % "6.2", From 1e4d5e30472393d3d1d9b4946f31255a8904fe4f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:04:35 +0000 Subject: [PATCH 097/142] chore(deps): update dependency io.sentry:sentry to v6.24.0 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 4627ebf8e5..d0e535006f 100644 --- a/build.sbt +++ b/build.sbt @@ -118,7 +118,7 @@ val dependenciesToEmbed = Seq( "com.github.KisaragiEffective" % "ajd4jp-mirror" % "8.0.2.2021", // Sentry - "io.sentry" % "sentry" % "6.23.0" + "io.sentry" % "sentry" % "6.24.0" ) // endregion From bc009cd6fe77d235c7edfa032685d9505d7c0f4b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 07:19:48 +0000 Subject: [PATCH 098/142] chore(deps): update dependency sbt/sbt to v1.9.1 --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 40b3b8e7b6..3c0b78a7c6 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.0 +sbt.version=1.9.1 From 90f459b30b86326c4ac768846e3c612897c36c73 Mon Sep 17 00:00:00 2001 From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com> Date: Tue, 27 Jun 2023 17:44:12 +0900 Subject: [PATCH 099/142] chore(ci): pin runner version --- .github/workflows/check-sql-version-duplicated-files.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-sql-version-duplicated-files.yml b/.github/workflows/check-sql-version-duplicated-files.yml index 6b123efaee..4f81978a47 100644 --- a/.github/workflows/check-sql-version-duplicated-files.yml +++ b/.github/workflows/check-sql-version-duplicated-files.yml @@ -15,7 +15,7 @@ on: - .github/workflows/check-sql-version-duplicated-files.yml jobs: check: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - name: Checkout repository uses: actions/checkout@v3 From 72b0eb07a866593202284b25d616fdf0805526c9 Mon Sep 17 00:00:00 2001 From: Lucky Date: Wed, 28 Jun 2023 22:03:21 +0900 Subject: [PATCH 100/142] =?UTF-8?q?fix:=20if=E3=81=AE=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E3=81=8C=E9=80=86=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=82=8B=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seichiassist/subsystems/gacha/bukkit/GachaCommand.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala index 8231252c60..02c6815433 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala @@ -415,7 +415,7 @@ class GachaCommand[ if (!dateRegex.matches(startDate) || !dateRegex.matches(endDate)) { IO(MessageEffect(s"${RED}開始日/終了日はyyyy-MM-ddの形式で指定してください。")) - } else if (eventName.name.length <= 30) { + } else if (eventName.name.length > 30) { IO(MessageEffect(s"${RED}イベント名は30字以内で指定してください。")) } else { val eff = for { From a58490e56a849458dde3306bd22fa55aa3baefd6 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Wed, 28 Jun 2023 22:12:10 +0900 Subject: [PATCH 101/142] =?UTF-8?q?fix:=20=E3=82=AC=E3=83=81=E3=83=A3?= =?UTF-8?q?=E6=99=AF=E5=93=81=E3=81=AE=E7=A2=BA=E7=8E=87=E3=81=A8=E9=87=8F?= =?UTF-8?q?=E3=82=92=E5=A4=89=E6=9B=B4=E3=81=99=E3=82=8B=E3=82=B3=E3=83=9E?= =?UTF-8?q?=E3=83=B3=E3=83=89=E3=81=AE=E3=83=91=E3=83=BC=E3=82=B5=E3=83=BC?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E3=81=8C=E9=80=86=E3=81=AB=E3=81=AA=E3=81=A3?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/gacha/bukkit/GachaCommand.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala index 02c6815433..028a888610 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala @@ -288,8 +288,8 @@ class GachaCommand[ .beginConfiguration() .argumentsParsers( List( - Parsers.closedRangeInt(1, 64, MessageEffect("数は1~64で指定してください。")), - Parsers.closedRangeInt(1, Int.MaxValue, MessageEffect("IDは正の値を指定してください。")) + Parsers.closedRangeInt(1, Int.MaxValue, MessageEffect("IDは正の値を指定してください。")), + Parsers.closedRangeInt(1, 64, MessageEffect("数は1~64で指定してください。")) ) ) .execution { context => @@ -326,8 +326,8 @@ class GachaCommand[ .beginConfiguration() .argumentsParsers( List( - probabilityParser, - Parsers.closedRangeInt(1, Int.MaxValue, MessageEffect("IDは正の値を指定してください。")) + Parsers.closedRangeInt(1, Int.MaxValue, MessageEffect("IDは正の値を指定してください。")), + probabilityParser ) ) .execution { context => From ab2db724bd7185bedf3732bf9eee022b53869602 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Wed, 28 Jun 2023 22:15:07 +0900 Subject: [PATCH 102/142] =?UTF-8?q?chore:=20=E6=95=B0=20->=20=E3=82=A2?= =?UTF-8?q?=E3=82=A4=E3=83=86=E3=83=A0=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seichiassist/subsystems/gacha/bukkit/GachaCommand.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala index 028a888610..69c3eadc80 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala @@ -289,7 +289,7 @@ class GachaCommand[ .argumentsParsers( List( Parsers.closedRangeInt(1, Int.MaxValue, MessageEffect("IDは正の値を指定してください。")), - Parsers.closedRangeInt(1, 64, MessageEffect("数は1~64で指定してください。")) + Parsers.closedRangeInt(1, 64, MessageEffect("アイテム数は1~64で指定してください。")) ) ) .execution { context => From b44805fa42c9a2f4a57f8aa716a24ad2a2233496 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Wed, 28 Jun 2023 22:29:34 +0900 Subject: [PATCH 103/142] =?UTF-8?q?fix:=20=E3=82=AC=E3=83=81=E3=83=A3?= =?UTF-8?q?=E3=82=A4=E3=83=99=E3=83=B3=E3=83=88=E5=90=8D=E3=81=AE=E6=B0=B8?= =?UTF-8?q?=E7=B6=9A=E5=8C=96=E3=81=A7=E6=96=87=E5=AD=97=E5=88=97=E3=81=AB?= =?UTF-8?q?=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84=E3=81=AA=E3=81=8B=E3=81=A3?= =?UTF-8?q?=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gachaprize/infrastructure/JdbcGachaEventPersistence.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaEventPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaEventPersistence.scala index 80dbd2c06b..5acfa18c6f 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaEventPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaEventPersistence.scala @@ -16,7 +16,7 @@ class JdbcGachaEventPersistence[F[_]: Sync] extends GachaEventPersistence[F] { DB.localTx { implicit session => sql"""INSERT INTO gacha_events | (event_name, event_start_time, event_end_time) VALUES - | (${gachaEvent.eventName}, ${gachaEvent.getStartDateString}, ${gachaEvent.getEndDateString}) + | (${gachaEvent.eventName.name}, ${gachaEvent.getStartDateString}, ${gachaEvent.getEndDateString}) """.stripMargin.execute().apply() } } From f0738909a4c7dfc9aab2cb6e9ceb5537c01bf47f Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Wed, 28 Jun 2023 22:42:31 +0900 Subject: [PATCH 104/142] =?UTF-8?q?fix:=20=E5=8F=96=E5=BE=97=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=82=AC=E3=83=81=E3=83=A3=E3=83=AA=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=81=AE=E3=83=9F=E3=82=B9=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seichiassist/subsystems/gacha/bukkit/GachaCommand.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala index 69c3eadc80..d5f3180580 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala @@ -229,7 +229,7 @@ class GachaCommand[ .execution { context => val eventName = context.args.yetToBeParsed.headOption.map(GachaEventName) val eff = for { - gachaPrizes <- gachaPrizeAPI.listOfNow + gachaPrizes <- gachaPrizeAPI.allGachaPrizeList } yield { val gachaPrizeInformation = gachaPrizes .filter { gachaPrize => From 16f9b18f1fd905e7e68abf477af981a6736afc99 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Wed, 28 Jun 2023 22:45:25 +0900 Subject: [PATCH 105/142] style: apply scalafmt and scalafix --- .../gachaprize/infrastructure/JdbcGachaEventPersistence.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaEventPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaEventPersistence.scala index 5acfa18c6f..e19d092390 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaEventPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaEventPersistence.scala @@ -16,7 +16,9 @@ class JdbcGachaEventPersistence[F[_]: Sync] extends GachaEventPersistence[F] { DB.localTx { implicit session => sql"""INSERT INTO gacha_events | (event_name, event_start_time, event_end_time) VALUES - | (${gachaEvent.eventName.name}, ${gachaEvent.getStartDateString}, ${gachaEvent.getEndDateString}) + | (${gachaEvent + .eventName + .name}, ${gachaEvent.getStartDateString}, ${gachaEvent.getEndDateString}) """.stripMargin.execute().apply() } } From 4449ff4294bd2057806b43c14ca9aad8136a7093 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Wed, 28 Jun 2023 23:33:03 +0900 Subject: [PATCH 106/142] =?UTF-8?q?fix:=20=E3=82=AC=E3=83=81=E3=83=A3?= =?UTF-8?q?=E6=99=AF=E5=93=81=E3=81=AE=E4=BF=9D=E5=AD=98=E3=82=B3=E3=83=9E?= =?UTF-8?q?=E3=83=B3=E3=83=89=E3=81=A7=E3=82=A4=E3=83=99=E3=83=B3=E3=83=88?= =?UTF-8?q?=E7=94=A8=E3=81=AE=E3=82=AC=E3=83=81=E3=83=A3=E6=99=AF=E5=93=81?= =?UTF-8?q?=E3=81=8C=E4=BF=9D=E5=AD=98=E3=81=A7=E3=81=8D=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F=E4=B8=8D=E5=85=B7=E5=90=88?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../seichiassist/subsystems/gacha/bukkit/GachaCommand.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala index d5f3180580..77f3b17c5b 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gacha/bukkit/GachaCommand.scala @@ -379,7 +379,7 @@ class GachaCommand[ .beginConfiguration() .execution { _ => val eff = for { - gachaPrizes <- gachaPrizeAPI.listOfNow + gachaPrizes <- gachaPrizeAPI.allGachaPrizeList _ <- gachaPrizeAPI.replace(gachaPrizes) } yield MessageEffect("ガチャデータをmysqlに保存しました。") From 4bd31126678ddc3343fa75243e1d23df421bbeac Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Thu, 29 Jun 2023 20:14:43 +0900 Subject: [PATCH 107/142] =?UTF-8?q?fix:=20add=E3=82=B3=E3=83=9E=E3=83=B3?= =?UTF-8?q?=E3=83=89=E3=81=A7=E8=87=AA=E5=8B=95=E7=9A=84=E3=81=AB=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/gachaprize/System.scala | 1 + .../domain/GachaPrizeListPersistence.scala | 5 +++++ .../JdbcGachaPrizeListPersistence.scala | 14 ++++++++++++++ 3 files changed, 20 insertions(+) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala index c8998691f2..86246bfcbb 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala @@ -100,6 +100,7 @@ object System { ) +: prizes } newGachaPrizes <- allGachaPrizesListReference.get + _ <- _gachaPersistence.addGachaPrize(newGachaPrizes.head) _ <- _gachaPersistence .addMineStackGachaObject( newGachaPrizes.head.id, diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala index ed92b13e6f..e74e0f0653 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala @@ -12,6 +12,11 @@ trait GachaPrizeListPersistence[F[_], ItemStack] { */ def list: F[Vector[GachaPrize[ItemStack]]] + /** + * @return ガチャアイテムを追加する作用 + */ + def addGachaPrize(gachaPrize: GachaPrize[ItemStack]): F[Unit] + /** * @return ガチャリストを更新する作用 */ diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala index 2c842c86cd..5dc90cc445 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala @@ -47,6 +47,20 @@ class JdbcGachaPrizeListPersistence[F[_]: Sync, ItemStack: Cloneable]( } } + override def addGachaPrize(gachaPrize: GachaPrize[ItemStack]): F[Unit] = Sync[F].delay { + DB.localTx { implicit session => + val eventId = gachaPrize.gachaEventName.flatMap { eventName => + sql"SELECT id FROM gacha_events WHERE event_name = ${eventName.name}" + .map(_.int("id")) + .single() + .apply() + } + + sql"INSERT INTO gachadata VALUES (${gachaPrize.id.id}, ${gachaPrize.probability.value}, ${serializeAndDeserialize + .serialize(gachaPrize.itemStack)}, $eventId)".execute().apply() + } + } + override def set(gachaPrizesList: Vector[GachaPrize[ItemStack]]): F[Unit] = { Sync[F].delay { DB.localTx { implicit session => From 8ea9c600a50e42bac20abd299cf9832a73bdf477 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Thu, 29 Jun 2023 20:25:04 +0900 Subject: [PATCH 108/142] =?UTF-8?q?fix:=20=E3=82=A4=E3=83=99=E3=83=B3?= =?UTF-8?q?=E3=83=88=E4=B8=AD=E3=81=AE=E3=82=AC=E3=83=81=E3=83=A3=E3=83=AA?= =?UTF-8?q?=E3=82=B9=E3=83=88=E3=81=AB=E3=82=A8=E3=83=B3=E3=83=81=E3=83=A3?= =?UTF-8?q?=E3=83=B3=E3=83=88=E7=93=B6=E3=82=92=E5=90=AB=E3=82=81=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/subsystems/gachaprize/System.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala index 86246bfcbb..d55099b213 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala @@ -115,7 +115,7 @@ object System { } yield { createdEvents.find(_.isHolding) match { case Some(value) => - prizes.filter(_.gachaEventName.contains(value.eventName)) + prizes.filter(_.gachaEventName.contains(value.eventName)) :+ expBottle case None => prizes.filter(_.gachaEventName.isEmpty) } From d60642c04cd2c364140615339b39f43840a16c88 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Thu, 29 Jun 2023 21:50:45 +0900 Subject: [PATCH 109/142] =?UTF-8?q?fix:=20remove=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=A2=E3=82=A4=E3=83=86=E3=83=A0=E3=81=AE=E5=AF=BE=E8=B1=A1?= =?UTF-8?q?=E3=81=AEfilter=E6=9D=A1=E4=BB=B6=E3=82=92=E7=9B=B4=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/subsystems/gachaprize/System.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala index d55099b213..40d5d2f5c9 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala @@ -88,7 +88,7 @@ object System { override def removeByGachaPrizeId(gachaPrizeId: GachaPrizeId): F[Unit] = for { _ <- allGachaPrizesListReference.update { prizes => - prizes.filter(_.id == gachaPrizeId) + prizes.filterNot(_.id == gachaPrizeId) } _ <- _gachaPersistence.deleteMineStackGachaObject(gachaPrizeId) } yield () From 08361293a22e28b25f015657d767dd7e74f702ce Mon Sep 17 00:00:00 2001 From: Lucky Date: Thu, 29 Jun 2023 22:12:05 +0900 Subject: [PATCH 110/142] =?UTF-8?q?ci:=20Discord=E3=81=B8=E3=81=AE?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=82=92=E5=AE=9F=E9=9A=9B=E3=81=AB=E5=8D=B3=E3=81=97=E3=81=9F?= =?UTF-8?q?=E3=82=82=E3=81=AE=E3=81=AB=E5=A4=89=E6=9B=B4=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build_and_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_deploy.yml b/.github/workflows/build_and_deploy.yml index 21d057b752..8e3c0709ce 100644 --- a/.github/workflows/build_and_deploy.yml +++ b/.github/workflows/build_and_deploy.yml @@ -250,7 +250,7 @@ jobs: with: webhook: ${{ secrets.DISCORD_DEBUG_SERVER_NOTIFICATION_WEBHOOK }} title: "デバッグサーバーへデプロイ" - description: "deb_s1等にプラグインを配置しました。数分後に再起動します。" + description: "deb_s1等にプラグインを配置しました。数分から数十分後に再起動します。" username: GitHub Actions noprefix: true avatar_url: ${{ secrets.DISCORD_AVATAR_URL }} From 7d949efeb95307a73213c046d6cfeeebc9e4b4c0 Mon Sep 17 00:00:00 2001 From: Lucky Date: Thu, 29 Jun 2023 22:16:20 +0900 Subject: [PATCH 111/142] ci: fix minutes --- .github/workflows/build_and_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_deploy.yml b/.github/workflows/build_and_deploy.yml index 8e3c0709ce..c185d463f9 100644 --- a/.github/workflows/build_and_deploy.yml +++ b/.github/workflows/build_and_deploy.yml @@ -250,7 +250,7 @@ jobs: with: webhook: ${{ secrets.DISCORD_DEBUG_SERVER_NOTIFICATION_WEBHOOK }} title: "デバッグサーバーへデプロイ" - description: "deb_s1等にプラグインを配置しました。数分から数十分後に再起動します。" + description: "deb_s1等にプラグインを配置しました。30分後に再起動します。" username: GitHub Actions noprefix: true avatar_url: ${{ secrets.DISCORD_AVATAR_URL }} From 23120189f012c10740e036dac8d1e41c358101aa Mon Sep 17 00:00:00 2001 From: Lucky Date: Thu, 29 Jun 2023 22:19:44 +0900 Subject: [PATCH 112/142] ci: apply review Co-authored-by: rito528 <39003544+rito528@users.noreply.github.com> --- .github/workflows/build_and_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_deploy.yml b/.github/workflows/build_and_deploy.yml index c185d463f9..b1e083c6f1 100644 --- a/.github/workflows/build_and_deploy.yml +++ b/.github/workflows/build_and_deploy.yml @@ -250,7 +250,7 @@ jobs: with: webhook: ${{ secrets.DISCORD_DEBUG_SERVER_NOTIFICATION_WEBHOOK }} title: "デバッグサーバーへデプロイ" - description: "deb_s1等にプラグインを配置しました。30分後に再起動します。" + description: "deb_s1等にプラグインを配置しました。30分程度で再起動します。" username: GitHub Actions noprefix: true avatar_url: ${{ secrets.DISCORD_AVATAR_URL }} From e4597c79d0f4e4e974c501dee007b11a08a177d5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 29 Jun 2023 13:42:45 +0000 Subject: [PATCH 113/142] chore(bump): 82 -> 83 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d0e535006f..63373d4518 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ import java.io._ ThisBuild / scalaVersion := "2.13.11" // ThisBuild / version はGitHub Actionsによって取得/自動更新される。 // 次の行は ThisBuild / version := "(\d*)" の形式でなければならない。 -ThisBuild / version := "82" +ThisBuild / version := "83" ThisBuild / organization := "click.seichi" ThisBuild / description := "ギガンティック☆整地鯖の独自要素を司るプラグイン" From 407c7b5cd1f0c88ee4e19f33a9df8952016d3437 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Thu, 29 Jun 2023 23:45:08 +0900 Subject: [PATCH 114/142] =?UTF-8?q?fix:=20=E3=82=AC=E3=83=81=E3=83=A3?= =?UTF-8?q?=E6=99=AF=E5=93=81=E3=81=AE=E3=83=AA=E3=82=B9=E3=83=88=E3=81=AE?= =?UTF-8?q?=E5=8F=96=E5=BE=97=E3=81=AB=E5=A4=B1=E6=95=97=E3=81=97=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infrastructure/JdbcGachaPrizeListPersistence.scala | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala index 5dc90cc445..1ed2b9e27b 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala @@ -18,11 +18,7 @@ class JdbcGachaPrizeListPersistence[F[_]: Sync, ItemStack: Cloneable]( override def list: F[Vector[GachaPrize[ItemStack]]] = { Sync[F].delay { DB.readOnly { implicit session => - sql"""SELECT gachadata.id, gachadata.probability, gachadata.itemstack, gacha_events.event_name FROM gachadata - | LEFT OUTER JOIN gacha_events ON gachadata.event_id = gacha_events.id - | UNION - | SELECT gachadata.id, gachadata.probability, gachadata.itemstack, gacha_events.event_name FROM gachadata - | RIGHT OUTER JOIN gacha_events ON gachadata.event_id = gacha_events.id""" + sql"SELECT gachadata.id AS gacha_prize_id, probability, itemstack, event_name FROM gachadata INNER JOIN gacha_events ON gachadata.event_id = gacha_events.id" .stripMargin .map { rs => val probability = rs.double("probability") @@ -34,7 +30,7 @@ class JdbcGachaPrizeListPersistence[F[_]: Sync, ItemStack: Cloneable]( itemStack, GachaProbability(probability), probability < 0.1, - GachaPrizeId(rs.int("id")), + GachaPrizeId(rs.int("gacha_prize_id")), rs.stringOpt("event_name").map(GachaEventName) ) } From eb56b4163aa9500207ab970349de651a92c8aa8e Mon Sep 17 00:00:00 2001 From: Kisaragi Marine Date: Thu, 29 Jun 2023 23:56:13 +0900 Subject: [PATCH 115/142] =?UTF-8?q?feat:=20case=20class=E3=81=AB=E5=AF=BE?= =?UTF-8?q?=E3=81=97=E3=81=A6=E6=9A=97=E9=BB=99=E3=81=AEtoString=E3=82=92?= =?UTF-8?q?=E5=91=BC=E3=82=93=E3=81=A7=E3=81=84=E3=82=8B=E7=AE=87=E6=89=80?= =?UTF-8?q?=E3=82=92=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=83=AA=E3=83=B3=E3=83=88=E3=82=92=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Kisaragi Marine --- build.sbt | 7 +- .../fix/ImplicitToStringCallOnCaseClass.scala | 79 +++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala diff --git a/build.sbt b/build.sbt index 63373d4518..f0b1ddb383 100644 --- a/build.sbt +++ b/build.sbt @@ -15,6 +15,8 @@ ThisBuild / description := "ギガンティック☆整地鯖の独自要素を // Scalafixが要求するため、semanticdbは有効化する ThisBuild / semanticdbEnabled := true ThisBuild / semanticdbVersion := scalafixSemanticdb.revision +ThisBuild / scalafixScalaBinaryVersion := + CrossVersion.binaryScalaVersion(scalaVersion.value) // endregion @@ -68,6 +70,9 @@ val providedDependencies = Seq( "org.typelevel" %% "simulacrum" % "1.0.1" ).map(_ % "provided") +val scalafixCoreDep = + "ch.epfl.scala" %% "scalafix-core" % _root_.scalafix.sbt.BuildInfo.scalafixVersion % ScalafixConfig + val testDependencies = Seq( "org.scalamock" %% "scalamock" % "5.2.0", "org.scalatest" %% "scalatest" % "3.2.16", @@ -189,7 +194,7 @@ Compile / PB.targets := Seq(scalapb.gen() -> (Compile / sourceManaged).value / " lazy val root = (project in file(".")).settings( name := "SeichiAssist", assembly / assemblyOutputPath := baseDirectory.value / "target" / "build" / "SeichiAssist.jar", - libraryDependencies := providedDependencies ++ testDependencies ++ dependenciesToEmbed, + libraryDependencies := (providedDependencies :+ scalafixCoreDep) ++ testDependencies ++ dependenciesToEmbed, excludeDependencies := Seq(ExclusionRule(organization = "org.bukkit", name = "bukkit")), unmanagedBase := baseDirectory.value / "localDependencies", scalacOptions ++= Seq( diff --git a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala b/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala new file mode 100644 index 0000000000..e73a91f0df --- /dev/null +++ b/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala @@ -0,0 +1,79 @@ +package fix + +import scalafix.v1._ + +import scala.meta._ + +/** + * Lints on string interpolation where its variable part contains `case class` without `toString`. + */ +class ImplicitToStringCallOnCaseClass extends SemanticRule("ImplicitToStringCallOnCaseClass") { + override def fix(implicit doc: SemanticDocument): Patch = { + val s = doc.tree.collect { + // string interpolation in standard library + case inter @ Term.Interpolate((prefix, _, args)) => + if (prefix.value != "s") { + return Patch.empty + } + + Patch.fromIterable( + args.collect { arg => + val tp = arg.symbol + val info = tp.info.get + // does `tp` point to some `case class`? + val isCaseClass = info.isCase && info.isClass + + // lazily evaluated since most classes are not `case class` + lazy val isToStringOverriden = info.overriddenSymbols.exists(overridenMethodSym => overridenMethodSym.value == "toString" && { + val sig = overridenMethodSym.info.get.signature + sig match { + case MethodSignature(List(), List(), returnType) => + val ret = simpleDealias(returnType) + ret match { + case TypeRef(_, symbol, _) => symbol.value == "java.lang.String" + case _ => false + } + case _ => false + } + }) + + if (!isCaseClass || isToStringOverriden) { + return Patch.empty + } + + Patch.lint(new Diagnostic { + override def message: String = "Case class value shouldn't interpolated, please use `toString` if it is really intended snippet" + + // points to arg + override def position: _root_.scala.meta.Position = arg.pos + }) + } + ) + case _ => Patch.empty + } + + Patch.fromIterable(s) + } + + def getType(symbol: Symbol)(implicit sym: Symtab): SemanticType = + symbol.info.get.signature match { + case MethodSignature(_, _, returnType) => + returnType + } + + def simpleDealias(tpe: SemanticType)(implicit sym: Symtab): SemanticType = { + def dealiasSymbol(symbol: Symbol): Symbol = + symbol.info.get.signature match { + case TypeSignature(_, lowerBound@TypeRef(_, dealiased, _), upperBound) + if lowerBound == upperBound => + dealiased + case _ => + symbol + } + + tpe match { + case TypeRef(prefix, symbol, typeArguments) => + TypeRef(prefix, dealiasSymbol(symbol), typeArguments.map(simpleDealias)) + } + } +} From 45e19768c6ac43dd1f89f2d80e13da83ba117820 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 00:08:49 +0900 Subject: [PATCH 116/142] =?UTF-8?q?fix:=20=E3=82=AC=E3=83=81=E3=83=A3?= =?UTF-8?q?=E3=82=A4=E3=83=99=E3=83=B3=E3=83=88=E3=81=AE=E4=BD=9C=E6=88=90?= =?UTF-8?q?=E3=81=AB=E3=82=88=E3=81=A3=E3=81=A6=E8=A4=87=E8=A3=BD=E3=81=95?= =?UTF-8?q?=E3=82=8C=E3=81=9F=E3=82=AC=E3=83=81=E3=83=A3=E6=99=AF=E5=93=81?= =?UTF-8?q?=E3=82=92=E6=B0=B8=E7=B6=9A=E5=8C=96=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/gachaprize/System.scala | 15 ++++++++---- .../domain/GachaPrizeListPersistence.scala | 5 ++++ .../JdbcGachaPrizeListPersistence.scala | 24 +++++++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala index 40d5d2f5c9..77622c7238 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala @@ -133,11 +133,18 @@ object System { override def createGachaEvent(gachaEvent: GachaEvent): F[Unit] = { for { _ <- _gachaEventPersistence.createGachaEvent(gachaEvent) - prizes <- allGachaPrizesListReference.get - defaultGachaPrizes = prizes + currentAllGachaPrizes <- allGachaPrizesListReference.get + maxId = currentAllGachaPrizes.map(_.id.id).max + eventGachaPrizes = currentAllGachaPrizes .filter(_.gachaEventName.isEmpty) - .map(_.copy(gachaEventName = Some(gachaEvent.eventName))) - _ <- replace(defaultGachaPrizes ++ prizes) + .map(gachaPrize => + gachaPrize.copy( + gachaEventName = Some(gachaEvent.eventName), + id = maxId + gachaPrize.id + ) + ) + _ <- replace(eventGachaPrizes ++ currentAllGachaPrizes) + _ <- _gachaPersistence.addGachaPrizes(eventGachaPrizes) } yield () } diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala index e74e0f0653..6a86c01521 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala @@ -17,6 +17,11 @@ trait GachaPrizeListPersistence[F[_], ItemStack] { */ def addGachaPrize(gachaPrize: GachaPrize[ItemStack]): F[Unit] + /** + * @return 複数のガチャアイテムを追加する作用 + */ + def addGachaPrizes(gachaPrizes: Vector[GachaPrize[ItemStack]]): F[Unit] + /** * @return ガチャリストを更新する作用 */ diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala index 1ed2b9e27b..ddd617f718 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala @@ -57,6 +57,30 @@ class JdbcGachaPrizeListPersistence[F[_]: Sync, ItemStack: Cloneable]( } } + override def addGachaPrizes(gachaPrizes: Vector[GachaPrize[ItemStack]]): F[Unit] = + Sync[F].delay { + DB.localTx { implicit session => + // ここでは一つのイベントのアイテムのみが複数指定されることを想定しているので、1つ目のイベントで決め打ちする + val eventId = gachaPrizes.head.gachaEventName.flatMap { eventName => + sql"SELECT id FROM gacha_events WHERE event_name = ${eventName.name}" + .map(_.int("id")) + .single() + .apply() + } + + val batchParams = gachaPrizes.map { gachaPrize => + Seq( + gachaPrize.id.id, + gachaPrize.probability.value, + serializeAndDeserialize.serialize(gachaPrize.itemStack), + eventId + ) + } + + sql"INSERT INTO gachadata VALUES (?, ?, ?, ?)".batch(batchParams).apply[List]() + } + } + override def set(gachaPrizesList: Vector[GachaPrize[ItemStack]]): F[Unit] = { Sync[F].delay { DB.localTx { implicit session => From a8ee44947b0c7b5507e848fcc794259792c96c13 Mon Sep 17 00:00:00 2001 From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com> Date: Fri, 30 Jun 2023 00:11:19 +0900 Subject: [PATCH 117/142] =?UTF-8?q?ci:=20=E9=9D=9E=E6=8E=A8=E5=A5=A8?= =?UTF-8?q?=E3=81=A8=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84=E3=82=8Bset-outpu?= =?UTF-8?q?t=E3=82=92=E7=BD=AE=E3=81=8D=E6=8F=9B=E3=81=88=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/create_new_release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create_new_release.yml b/.github/workflows/create_new_release.yml index 3f12f1bf3e..e149e8d727 100644 --- a/.github/workflows/create_new_release.yml +++ b/.github/workflows/create_new_release.yml @@ -11,7 +11,7 @@ jobs: steps: - name: Extract branch name id: job - run: echo "::set-output name=value::$(echo ${GITHUB_REF#refs/heads/})" + run: echo "value=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_OUTPUT bump_version: runs-on: ubuntu-20.04 @@ -34,7 +34,7 @@ jobs: update_version_to () { echo "置換先のバージョン: $1" - echo "::set-output name=new_version::$1" + echo "new_version=$1" >> $GITHUB_OUTPUT sed -i -e "s/ThisBuild \/ version := \"[0-9]\+\"/ThisBuild \/ version := \"$1\"/g" build.sbt } @@ -43,7 +43,7 @@ jobs: exit 1 fi - echo "::set-output name=old_version::$(get_defined_versions)" + echo "old_version=$(get_defined_versions)" >> $GITHUB_OUTPUT update_version_to $(get_defined_versions | xargs expr 1 +) # 本来であればActionsに権限を増やしたりbranch protection ruleに例外を設けるなどしてpushを許したいが、 From 07583ac98e448b4b85fd7a21011b03064a0ed8a8 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 00:17:14 +0900 Subject: [PATCH 118/142] fix: compile error --- .../unchama/seichiassist/subsystems/gachaprize/System.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala index 77622c7238..eeaf1c9670 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala @@ -140,7 +140,7 @@ object System { .map(gachaPrize => gachaPrize.copy( gachaEventName = Some(gachaEvent.eventName), - id = maxId + gachaPrize.id + id = GachaPrizeId(maxId + gachaPrize.id.id) ) ) _ <- replace(eventGachaPrizes ++ currentAllGachaPrizes) From 34fa1244933fbeb889f965aa2f8210de3e2a3329 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 00:41:31 +0900 Subject: [PATCH 119/142] =?UTF-8?q?fix:=20inner=20join=20=E3=82=92=20outer?= =?UTF-8?q?=20join=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infrastructure/JdbcGachaPrizeListPersistence.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala index ddd617f718..c42b899d83 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala @@ -18,7 +18,7 @@ class JdbcGachaPrizeListPersistence[F[_]: Sync, ItemStack: Cloneable]( override def list: F[Vector[GachaPrize[ItemStack]]] = { Sync[F].delay { DB.readOnly { implicit session => - sql"SELECT gachadata.id AS gacha_prize_id, probability, itemstack, event_name FROM gachadata INNER JOIN gacha_events ON gachadata.event_id = gacha_events.id" + sql"SELECT gachadata.id AS gacha_prize_id, probability, itemstack, event_name FROM gachadata LEFT OUTER JOIN gacha_events ON gachadata.event_id = gacha_events.id" .stripMargin .map { rs => val probability = rs.double("probability") From ac3e90746e549101f978ef838075b1c66b507721 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 14:13:58 +0900 Subject: [PATCH 120/142] =?UTF-8?q?fix:=20=E3=82=AC=E3=83=81=E3=83=A3?= =?UTF-8?q?=E3=83=87=E3=83=BC=E3=82=BF=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=81=A8=E3=81=8D=E3=81=AE=E3=82=AB=E3=83=A9=E3=83=A0?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E3=81=8C=E6=8A=9C=E3=81=91=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F=E3=81=AE=E3=81=A7=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JdbcGachaPrizeListPersistence.scala | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala index c42b899d83..632b254ae2 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala @@ -52,8 +52,11 @@ class JdbcGachaPrizeListPersistence[F[_]: Sync, ItemStack: Cloneable]( .apply() } - sql"INSERT INTO gachadata VALUES (${gachaPrize.id.id}, ${gachaPrize.probability.value}, ${serializeAndDeserialize - .serialize(gachaPrize.itemStack)}, $eventId)".execute().apply() + sql"INSERT INTO gachadata (id, probability, itemstack, event_id) VALUES (${gachaPrize.id.id}, ${gachaPrize + .probability + .value}, ${serializeAndDeserialize.serialize(gachaPrize.itemStack)}, $eventId)" + .execute() + .apply() } } @@ -77,7 +80,9 @@ class JdbcGachaPrizeListPersistence[F[_]: Sync, ItemStack: Cloneable]( ) } - sql"INSERT INTO gachadata VALUES (?, ?, ?, ?)".batch(batchParams).apply[List]() + sql"INSERT INTO gachadata (id, probability, itemstack, event_id) VALUES (?, ?, ?, ?)" + .batch(batchParams) + .apply[List]() } } From f263c89750d363d4f7698fad174dafeddbc4681b Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 14:31:17 +0900 Subject: [PATCH 121/142] =?UTF-8?q?fix:=20batch=E3=82=A4=E3=83=B3=E3=82=B5?= =?UTF-8?q?=E3=83=BC=E3=83=88=E3=81=99=E3=82=8BList=E3=82=92=E5=8F=AF?= =?UTF-8?q?=E5=A4=89=E9=95=B7=E5=BC=95=E6=95=B0=E3=81=A8=E3=81=97=E3=81=A6?= =?UTF-8?q?=E6=B8=A1=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infrastructure/JdbcGachaPrizeListPersistence.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala index 632b254ae2..84770d875e 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala @@ -81,7 +81,7 @@ class JdbcGachaPrizeListPersistence[F[_]: Sync, ItemStack: Cloneable]( } sql"INSERT INTO gachadata (id, probability, itemstack, event_id) VALUES (?, ?, ?, ?)" - .batch(batchParams) + .batch(batchParams: _*) .apply[List]() } } @@ -98,7 +98,7 @@ class JdbcGachaPrizeListPersistence[F[_]: Sync, ItemStack: Cloneable]( gachaPrize.gachaEventName.map(_.name) ) } - sql"insert into gachadata values (?,?,?,?)".batch(batchParams).apply[List]() + sql"insert into gachadata values (?,?,?,?)".batch(batchParams: _*).apply[List]() } } } From fa340ff7a7a74c51d78802b327b35ba1fc44b2b7 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 14:51:05 +0900 Subject: [PATCH 122/142] =?UTF-8?q?fix:=20=E3=82=AC=E3=83=81=E3=83=A3?= =?UTF-8?q?=E3=82=A4=E3=83=99=E3=83=B3=E3=83=88=E3=81=AE=E9=96=8B=E5=82=AC?= =?UTF-8?q?=E6=97=A5=E6=99=82=E3=81=AB=E5=88=9D=E6=97=A5=E3=81=8C=E5=90=AB?= =?UTF-8?q?=E3=81=BE=E3=82=8C=E3=81=A6=E3=81=84=E3=81=AA=E3=81=8B=E3=81=A3?= =?UTF-8?q?=E3=81=9F=E4=B8=8D=E5=85=B7=E5=90=88=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/gachaprize/domain/gachaevent/GachaEvent.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala index 8d7c837ea9..6d273ca905 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala @@ -28,7 +28,7 @@ case class GachaEvent(eventName: GachaEventName, startDate: LocalDate, endDate: def isHolding: Boolean = { val now = LocalDate.now() - now.isAfter(startDate) && now.isBefore(endDate) + now.isAfter(startDate.minusDays(1)) && now.isBefore(endDate) } } From 40ca34fa16ea8cf08535763baa9328042b573f70 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 15:31:26 +0900 Subject: [PATCH 123/142] =?UTF-8?q?fix:=20=E7=B5=82=E4=BA=86=E6=97=A5?= =?UTF-8?q?=E6=99=82=E3=82=82=E7=9B=B4=E3=81=97=E3=80=81=E5=A4=89=E6=95=B0?= =?UTF-8?q?=E3=81=AB=E5=88=87=E3=82=8A=E5=87=BA=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subsystems/gachaprize/domain/gachaevent/GachaEvent.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala index 6d273ca905..2c62c67a01 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala @@ -27,8 +27,10 @@ case class GachaEvent(eventName: GachaEventName, startDate: LocalDate, endDate: */ def isHolding: Boolean = { val now = LocalDate.now() + val isAfterStartDate = now.equals(startDate) || now.isAfter(startDate) + val isBeforeEndDate = now.equals(endDate) || now.isBefore(endDate) - now.isAfter(startDate.minusDays(1)) && now.isBefore(endDate) + isAfterStartDate && isBeforeEndDate } } From ac7a149c1e77f2e2a25671420633f0b3e660d4ae Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 15:39:50 +0900 Subject: [PATCH 124/142] =?UTF-8?q?style:=20=E5=A4=89=E6=95=B0=E3=81=AE?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gachaprize/domain/gachaevent/GachaEvent.scala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala index 2c62c67a01..1cafb099b4 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala @@ -27,10 +27,10 @@ case class GachaEvent(eventName: GachaEventName, startDate: LocalDate, endDate: */ def isHolding: Boolean = { val now = LocalDate.now() - val isAfterStartDate = now.equals(startDate) || now.isAfter(startDate) - val isBeforeEndDate = now.equals(endDate) || now.isBefore(endDate) + val isAfterStartDateOrFirstDay = now.equals(startDate) || now.isAfter(startDate) + val isBeforeEndDateOrFinalDay = now.equals(endDate) || now.isBefore(endDate) - isAfterStartDate && isBeforeEndDate + isAfterStartDateOrFirstDay && isBeforeEndDateOrFinalDay } } From c9489b3a7df088e0f3c1506d91c3a948600c7fe4 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 15:54:49 +0900 Subject: [PATCH 125/142] style: final -> end --- .../subsystems/gachaprize/domain/gachaevent/GachaEvent.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala index 1cafb099b4..727355caa8 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/gachaevent/GachaEvent.scala @@ -28,9 +28,9 @@ case class GachaEvent(eventName: GachaEventName, startDate: LocalDate, endDate: def isHolding: Boolean = { val now = LocalDate.now() val isAfterStartDateOrFirstDay = now.equals(startDate) || now.isAfter(startDate) - val isBeforeEndDateOrFinalDay = now.equals(endDate) || now.isBefore(endDate) + val isBeforeEndDateOrEndDay = now.equals(endDate) || now.isBefore(endDate) - isAfterStartDateOrFirstDay && isBeforeEndDateOrFinalDay + isAfterStartDateOrFirstDay && isBeforeEndDateOrEndDay } } From fb90e1477d78382c981aefd07ce58abec76544aa Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 15:58:48 +0900 Subject: [PATCH 126/142] =?UTF-8?q?docs:=20=E8=BF=94=E3=82=8A=E5=80=A4?= =?UTF-8?q?=E3=81=AE=E8=A1=A8=E8=A8=98=E3=82=92=E9=81=A9=E5=88=87=E3=81=AA?= =?UTF-8?q?=E3=82=82=E3=81=AE=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/BreakSkillTargetConfig.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala index 6f8c0a4cac..7c77badf07 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala @@ -3,7 +3,7 @@ package com.github.unchama.seichiassist.subsystems.breakskilltargetconfig.domain case class BreakSkillTargetConfig(config: Map[BreakSkillTargetConfigKey, Boolean]) { /** - * @return `configKey`の破壊フラグをトグルする作用 + * @return `configKey`の破壊フラグをトグルする */ def toggleBreakSkillTargetConfig( configKey: BreakSkillTargetConfigKey @@ -15,7 +15,7 @@ case class BreakSkillTargetConfig(config: Map[BreakSkillTargetConfigKey, Boolean ) /** - * @return 現在の破壊フラグを取得する作用 + * @return 現在の破壊フラグを取得する */ def breakSkillTargetConfig(configKey: BreakSkillTargetConfigKey): Boolean = this.config.getOrElse(configKey, false) From 56d64f913301178d21d634a5ede59707dbc23833 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:00:03 +0900 Subject: [PATCH 127/142] =?UTF-8?q?refactor:=20BreakSkillTargetConfig?= =?UTF-8?q?=E3=81=AE=E8=AA=AD=E3=81=BF=E5=8F=96=E3=82=8A=E5=87=A6=E7=90=86?= =?UTF-8?q?=E3=82=92=E5=AE=8C=E7=B5=90=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JdbcBreakSkillTargetConfigPersistence.scala | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala index 6f2b50ed5a..fcff4103ad 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala @@ -18,15 +18,13 @@ class JdbcBreakSkillTargetConfigPersistence[F[_]: Sync] sql"SELECT flag_name, include FROM player_break_preference WHERE uuid = ${key.toString}" .map { rs => BreakSkillTargetConfigKey.withNameOption(rs.string("flag_name")).map { flagName => - Map(flagName -> rs.boolean("include")) + flagName -> rs.boolean("include") } } .toList() .apply() - .collect { case Some(flag) => flag } - .foldLeft(Map.empty[BreakSkillTargetConfigKey, Boolean]) { - case (previous, next) => previous ++ next - } + .flatten + .toMap } Some(BreakSkillTargetConfig(config)) From 66101e152a6caa0b3c522cd153fbd124fb33172f Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:38:28 +0900 Subject: [PATCH 128/142] =?UTF-8?q?style:=20=E3=83=96=E3=83=AD=E3=83=83?= =?UTF-8?q?=E3=82=AF=E7=A0=B4=E5=A3=8A=E8=A8=AD=E5=AE=9A=E3=82=92=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E3=81=99=E3=82=8B=E3=83=86=E3=83=BC=E3=83=96=E3=83=AB?= =?UTF-8?q?=E3=81=AE=E3=82=AB=E3=83=A9=E3=83=A0=E5=90=8D=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V1.17.0__Create_break_preference_table.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql index fc5c847850..2b23aa3bb3 100644 --- a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql +++ b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql @@ -2,8 +2,8 @@ USE seichiassist; CREATE TABLE player_break_preference( uuid CHAR(36) NOT NULL, - flag_name ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, - include BOOL NOT NULL DEFAULT TRUE, - PRIMARY KEY(uuid, flag_name), + break_category ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, + do_break BOOL NOT NULL DEFAULT TRUE, + PRIMARY KEY(uuid, break_category), INDEX index_player_break_preference_on_uuid (uuid) ); From d959376f33c280db411492c51aec25de4c837877 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:40:33 +0900 Subject: [PATCH 129/142] =?UTF-8?q?fix:=20=E3=82=AB=E3=83=A9=E3=83=A0?= =?UTF-8?q?=E5=90=8D=E3=81=AE=E5=A4=89=E6=9B=B4=E3=81=AB=E5=90=88=E3=82=8F?= =?UTF-8?q?=E3=81=9B=E3=81=A6=E5=AE=9F=E8=A3=85=E5=81=B4=E3=82=82=E5=A4=89?= =?UTF-8?q?=E6=9B=B4=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JdbcBreakSkillTargetConfigPersistence.scala | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala index fcff4103ad..2ed07fa43d 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/persistence/JdbcBreakSkillTargetConfigPersistence.scala @@ -15,10 +15,10 @@ class JdbcBreakSkillTargetConfigPersistence[F[_]: Sync] override def read(key: UUID): F[Option[BreakSkillTargetConfig]] = Sync[F].delay { val config = DB.readOnly { implicit session => - sql"SELECT flag_name, include FROM player_break_preference WHERE uuid = ${key.toString}" + sql"SELECT block_category, do_break FROM player_break_preference WHERE uuid = ${key.toString}" .map { rs => - BreakSkillTargetConfigKey.withNameOption(rs.string("flag_name")).map { flagName => - flagName -> rs.boolean("include") + BreakSkillTargetConfigKey.withNameOption(rs.string("block_category")).map { + flagName => flagName -> rs.boolean("do_break") } } .toList() @@ -37,15 +37,15 @@ class JdbcBreakSkillTargetConfigPersistence[F[_]: Sync] value .config .map { - case (configKey, includes) => - Seq(uuid, configKey.entryName, includes) + case (blockCategory, doBreak) => + Seq(uuid, blockCategory.entryName, doBreak) } .toSeq - sql"""INSERT INTO player_break_preference (uuid, flag_name, include) + sql"""INSERT INTO player_break_preference (uuid, block_category, do_break) | VALUES (?, ?, ?) | ON DUPLICATE KEY UPDATE - | include = VALUE(include) + | do_break = VALUE(do_break) """.stripMargin.batch(batchParams: _*).apply[List]() } } From 7f70ae8922651802ebf9392d950dc52e00ec45a2 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:44:17 +0900 Subject: [PATCH 130/142] =?UTF-8?q?fix:=20=E5=88=87=E3=82=8A=E6=9B=BF?= =?UTF-8?q?=E3=81=88=E5=BE=8C=E3=81=AE=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=81=8C=E9=80=86=E3=81=AE=E3=82=82=E3=81=AE=E3=81=8C?= =?UTF-8?q?=E8=A1=A8=E7=A4=BA=E3=81=95=E3=82=8C=E3=81=A6=E3=81=97=E3=81=BE?= =?UTF-8?q?=E3=81=86=E4=B8=8D=E5=85=B7=E5=90=88=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../menus/skill/PassiveSkillMenu.scala | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala index c3503dae3b..a2034882b7 100644 --- a/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala +++ b/src/main/scala/com/github/unchama/seichiassist/menus/skill/PassiveSkillMenu.scala @@ -147,16 +147,16 @@ object PassiveSkillMenu extends Menu { import environment._ val computeToggleChestBreakButton: IO[Button] = RecomputedButton(for { - breakChest <- breakSkillTargetConfigAPI + originalBreakChestConfig <- breakSkillTargetConfigAPI .breakSkillTargetConfig(player, BreakSkillTargetConfigKey.Chest) } yield { val baseLore = List(s"${GREEN}スキルでチェストを破壊するスキル") - val statusLore = if (breakChest) { + val statusLore = if (originalBreakChestConfig) { List(s"${RED}整地ワールドのみで発動中(デフォルト)", "", s"$DARK_GREEN${UNDERLINE}クリックで切り替え") } else { List(s"${RED}発動しません", "", s"$DARK_GREEN${UNDERLINE}クリックで切り替え") } - val material = if (breakChest) Material.DIAMOND_AXE else Material.CHEST + val material = if (originalBreakChestConfig) Material.DIAMOND_AXE else Material.CHEST Button( new IconItemStackBuilder(material) @@ -169,7 +169,7 @@ object PassiveSkillMenu extends Menu { BreakSkillTargetConfigKey.Chest ), DeferredEffect(IO { - if (breakChest) { + if (!originalBreakChestConfig) { SequentialEffect( MessageEffect(s"${GREEN}スキルでのチェスト破壊を有効化しました。"), FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 1f) @@ -187,11 +187,11 @@ object PassiveSkillMenu extends Menu { }) val computeToggleNetherQuartzBlockButton: IO[Button] = RecomputedButton(for { - breakQuartz <- breakSkillTargetConfigAPI + originalBreakQuartz <- breakSkillTargetConfigAPI .breakSkillTargetConfig(player, BreakSkillTargetConfigKey.MadeFromNetherQuartz) } yield { val baseLore = List(s"${YELLOW}スキルでネザー水晶類ブロックを破壊するスキル") - val statusLore = if (breakQuartz) { + val statusLore = if (originalBreakQuartz) { List(s"${GREEN}ON (スキルでネザー水晶類ブロックを破壊します。)", s"${DARK_RED}クリックでOFF") } else { List(s"${RED}OFF (スキルでネザー水晶類ブロックを破壊しません。)", s"${DARK_GREEN}クリックでON") @@ -200,7 +200,7 @@ object PassiveSkillMenu extends Menu { Button( new IconItemStackBuilder(Material.QUARTZ_BLOCK) .tap { builder => - if (breakQuartz) + if (originalBreakQuartz) builder.enchanted() } .title(s"$WHITE$UNDERLINE${BOLD}ネザー水晶類ブロック破壊スキル切り替え") @@ -212,7 +212,7 @@ object PassiveSkillMenu extends Menu { BreakSkillTargetConfigKey.MadeFromNetherQuartz ), DeferredEffect(IO { - if (breakQuartz) { + if (!originalBreakQuartz) { SequentialEffect( MessageEffect(s"${GREEN}スキルでのネザー水晶類ブロック破壊を有効化しました。"), FocusedSoundEffect(Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1f, 1f) From 6c35ea876a703b195adb6d004aba7fc52a3cb3e0 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:45:22 +0900 Subject: [PATCH 131/142] =?UTF-8?q?refactor:=20Map=E3=81=AE=E4=B8=8A?= =?UTF-8?q?=E6=9B=B8=E3=81=8D=E3=82=92=E3=82=88=E3=82=8A=E7=B0=A1=E6=BD=94?= =?UTF-8?q?=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/BreakSkillTargetConfig.scala | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala index 7c77badf07..ea916a8348 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/breakskilltargetconfig/domain/BreakSkillTargetConfig.scala @@ -8,11 +8,7 @@ case class BreakSkillTargetConfig(config: Map[BreakSkillTargetConfigKey, Boolean def toggleBreakSkillTargetConfig( configKey: BreakSkillTargetConfigKey ): BreakSkillTargetConfig = - this.copy( - this.config.filterNot(_._1 == configKey) ++ Map( - configKey -> this.config.getOrElse(configKey, false) - ) - ) + this.copy(this.config + (configKey -> this.config.getOrElse(configKey, false))) /** * @return 現在の破壊フラグを取得する From 47af477514eb8f48f453240f319026bac2a71a31 Mon Sep 17 00:00:00 2001 From: Kisaragi Marine Date: Fri, 30 Jun 2023 19:23:51 +0900 Subject: [PATCH 132/142] refactor: delete unused Signed-off-by: Kisaragi Marine --- .../scala/fix/ImplicitToStringCallOnCaseClass.scala | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala b/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala index e73a91f0df..fecb4da27c 100644 --- a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala +++ b/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala @@ -55,12 +55,6 @@ class ImplicitToStringCallOnCaseClass extends SemanticRule("ImplicitToStringCall Patch.fromIterable(s) } - def getType(symbol: Symbol)(implicit sym: Symtab): SemanticType = - symbol.info.get.signature match { - case MethodSignature(_, _, returnType) => - returnType - } - def simpleDealias(tpe: SemanticType)(implicit sym: Symtab): SemanticType = { def dealiasSymbol(symbol: Symbol): Symbol = symbol.info.get.signature match { @@ -74,6 +68,7 @@ class ImplicitToStringCallOnCaseClass extends SemanticRule("ImplicitToStringCall tpe match { case TypeRef(prefix, symbol, typeArguments) => TypeRef(prefix, dealiasSymbol(symbol), typeArguments.map(simpleDealias)) + case other => other } } } From ab68cb662293eb386988a7cf5d90a85d882401ad Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Fri, 30 Jun 2023 20:12:26 +0900 Subject: [PATCH 133/142] chore: break_category -> block_category --- .../db/migration/V1.17.0__Create_break_preference_table.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql index 2b23aa3bb3..3e2b33c847 100644 --- a/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql +++ b/src/main/resources/db/migration/V1.17.0__Create_break_preference_table.sql @@ -2,8 +2,8 @@ USE seichiassist; CREATE TABLE player_break_preference( uuid CHAR(36) NOT NULL, - break_category ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, + block_category ENUM('Chest', 'MadeFromNetherQuartz') NOT NULL, do_break BOOL NOT NULL DEFAULT TRUE, - PRIMARY KEY(uuid, break_category), + PRIMARY KEY(uuid, block_category), INDEX index_player_break_preference_on_uuid (uuid) ); From bd03bf02ec68cc572033b7b03e0318395d16b316 Mon Sep 17 00:00:00 2001 From: Kisaragi Marine Date: Fri, 30 Jun 2023 21:26:06 +0900 Subject: [PATCH 134/142] refactor: delete unused binding Signed-off-by: Kisaragi Marine --- src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala b/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala index fecb4da27c..a74c237533 100644 --- a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala +++ b/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala @@ -11,7 +11,7 @@ class ImplicitToStringCallOnCaseClass extends SemanticRule("ImplicitToStringCall override def fix(implicit doc: SemanticDocument): Patch = { val s = doc.tree.collect { // string interpolation in standard library - case inter @ Term.Interpolate((prefix, _, args)) => + case Term.Interpolate((prefix, _, args)) => if (prefix.value != "s") { return Patch.empty } From 8b3d093c413b9bd998e6a3c65fee1168b72b8da1 Mon Sep 17 00:00:00 2001 From: Kisaragi Marine Date: Fri, 30 Jun 2023 21:26:49 +0900 Subject: [PATCH 135/142] chore: suppress IntelliJ warning Signed-off-by: Kisaragi Marine --- src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala b/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala index a74c237533..4b1026bd0f 100644 --- a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala +++ b/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala @@ -7,6 +7,7 @@ import scala.meta._ /** * Lints on string interpolation where its variable part contains `case class` without `toString`. */ +// noinspection ScalaUnusedSymbol; referred from scalafix implicitly class ImplicitToStringCallOnCaseClass extends SemanticRule("ImplicitToStringCallOnCaseClass") { override def fix(implicit doc: SemanticDocument): Patch = { val s = doc.tree.collect { From 4eac5dbdef02ca89e038f2402e8c9f9cd8c84339 Mon Sep 17 00:00:00 2001 From: Kisaragi Marine Date: Fri, 30 Jun 2023 21:27:11 +0900 Subject: [PATCH 136/142] chore: add hint for future reference Signed-off-by: Kisaragi Marine --- src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala b/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala index 4b1026bd0f..5afe8a2df6 100644 --- a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala +++ b/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala @@ -8,6 +8,7 @@ import scala.meta._ * Lints on string interpolation where its variable part contains `case class` without `toString`. */ // noinspection ScalaUnusedSymbol; referred from scalafix implicitly +// NOTE: see AST on https://xuwei-k.github.io/scalameta-ast/ or https://astexplorer.net class ImplicitToStringCallOnCaseClass extends SemanticRule("ImplicitToStringCallOnCaseClass") { override def fix(implicit doc: SemanticDocument): Patch = { val s = doc.tree.collect { From 429ab07eef6fc36059d28f14b99e839acd061b49 Mon Sep 17 00:00:00 2001 From: Kisaragi Marine Date: Fri, 30 Jun 2023 21:30:51 +0900 Subject: [PATCH 137/142] refactor: rename the lint Signed-off-by: Kisaragi Marine --- ...a => WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/scalafix/scala/fix/{ImplicitToStringCallOnCaseClass.scala => WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala} (95%) diff --git a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala b/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala similarity index 95% rename from src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala rename to src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala index 5afe8a2df6..055987938b 100644 --- a/src/scalafix/scala/fix/ImplicitToStringCallOnCaseClass.scala +++ b/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala @@ -9,7 +9,7 @@ import scala.meta._ */ // noinspection ScalaUnusedSymbol; referred from scalafix implicitly // NOTE: see AST on https://xuwei-k.github.io/scalameta-ast/ or https://astexplorer.net -class ImplicitToStringCallOnCaseClass extends SemanticRule("ImplicitToStringCallOnCaseClass") { +class WarnUnoverriddenImplicitToStringCallsOnCaseClass extends SemanticRule("WarnUnoverriddenImplicitToStringCallsOnCaseClass") { override def fix(implicit doc: SemanticDocument): Patch = { val s = doc.tree.collect { // string interpolation in standard library From 7222d2037ae320490b3720b6bf83197f65bdd563 Mon Sep 17 00:00:00 2001 From: Kisaragi Marine Date: Fri, 30 Jun 2023 21:34:37 +0900 Subject: [PATCH 138/142] =?UTF-8?q?refactor:=20toString=E3=81=AE=E6=88=BB?= =?UTF-8?q?=E3=82=8A=E5=80=A4=E3=81=AE=E5=9E=8B=E3=81=AE=E3=83=81=E3=82=A7?= =?UTF-8?q?=E3=83=83=E3=82=AF=E3=82=92=E3=82=B3=E3=83=B3=E3=83=91=E3=82=A4?= =?UTF-8?q?=E3=83=A9=E3=81=AB=E4=BB=BB=E3=81=9B=E3=81=A6=E3=83=AA=E3=83=B3?= =?UTF-8?q?=E3=83=88=E3=81=A7=E3=81=AF=E7=84=A1=E8=A6=96=E3=81=99=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Kisaragi Marine --- ...ddenImplicitToStringCallsOnCaseClass.scala | 26 +++---------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala b/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala index 055987938b..6a764c73dc 100644 --- a/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala +++ b/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala @@ -29,12 +29,9 @@ class WarnUnoverriddenImplicitToStringCallsOnCaseClass extends SemanticRule("War lazy val isToStringOverriden = info.overriddenSymbols.exists(overridenMethodSym => overridenMethodSym.value == "toString" && { val sig = overridenMethodSym.info.get.signature sig match { - case MethodSignature(List(), List(), returnType) => - val ret = simpleDealias(returnType) - ret match { - case TypeRef(_, symbol, _) => symbol.value == "java.lang.String" - case _ => false - } + // もしtoString()のreturn typeがStringかそのサブタイプにならないような型であれば、 + // scalafixが走る前にコンパイルが落ちるのでここで改めて考慮する必要はない + case MethodSignature(List(), List(), _) => true case _ => false } }) @@ -56,21 +53,4 @@ class WarnUnoverriddenImplicitToStringCallsOnCaseClass extends SemanticRule("War Patch.fromIterable(s) } - - def simpleDealias(tpe: SemanticType)(implicit sym: Symtab): SemanticType = { - def dealiasSymbol(symbol: Symbol): Symbol = - symbol.info.get.signature match { - case TypeSignature(_, lowerBound@TypeRef(_, dealiased, _), upperBound) - if lowerBound == upperBound => - dealiased - case _ => - symbol - } - - tpe match { - case TypeRef(prefix, symbol, typeArguments) => - TypeRef(prefix, dealiasSymbol(symbol), typeArguments.map(simpleDealias)) - case other => other - } - } } From 234cb258060f6e60b834fd3a1db25ab2d0f979b1 Mon Sep 17 00:00:00 2001 From: Kisaragi Marine Date: Fri, 30 Jun 2023 21:36:17 +0900 Subject: [PATCH 139/142] chore: accept grammer suggestion Signed-off-by: Kisaragi Marine --- .../fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala b/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala index 6a764c73dc..063115c3ab 100644 --- a/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala +++ b/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala @@ -41,7 +41,8 @@ class WarnUnoverriddenImplicitToStringCallsOnCaseClass extends SemanticRule("War } Patch.lint(new Diagnostic { - override def message: String = "Case class value shouldn't interpolated, please use `toString` if it is really intended snippet" + override def message: String = "Case class value shouldn't be interpolated, use `toString` " + + "if you wish to interpolate the String representation into the string" // points to arg override def position: _root_.scala.meta.Position = arg.pos From 4812ba8afad41b8ca92661170cb5abad569c1b59 Mon Sep 17 00:00:00 2001 From: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com> Date: Sat, 1 Jul 2023 00:19:59 +0900 Subject: [PATCH 140/142] chore: apply suggestions from code review Co-authored-by: Kory <6561358+kory33@users.noreply.github.com> --- ...arnUnoverriddenImplicitToStringCallsOnCaseClass.scala | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala b/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala index 063115c3ab..b9cb98285b 100644 --- a/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala +++ b/src/scalafix/scala/fix/WarnUnoverriddenImplicitToStringCallsOnCaseClass.scala @@ -27,10 +27,11 @@ class WarnUnoverriddenImplicitToStringCallsOnCaseClass extends SemanticRule("War // lazily evaluated since most classes are not `case class` lazy val isToStringOverriden = info.overriddenSymbols.exists(overridenMethodSym => overridenMethodSym.value == "toString" && { - val sig = overridenMethodSym.info.get.signature - sig match { - // もしtoString()のreturn typeがStringかそのサブタイプにならないような型であれば、 - // scalafixが走る前にコンパイルが落ちるのでここで改めて考慮する必要はない + overridenMethodSym.info.get.signature match { + // def toString[](): の形の override を見つけたい。 + // もし toString() の return type が String のサブタイプにならないような型であれば + // scalafix が走る前にコンパイルが落ちるので、ここで改めて return type が + // String のサブタイプであるかは考慮する必要はない case MethodSignature(List(), List(), _) => true case _ => false } From b5b65e1eee35da17c8b637b1c54f7c4dac2a9020 Mon Sep 17 00:00:00 2001 From: rito528 <39003544+rito528@users.noreply.github.com> Date: Sun, 2 Jul 2023 23:37:56 +0900 Subject: [PATCH 141/142] =?UTF-8?q?fix:=20=E3=82=AC=E3=83=81=E3=83=A3?= =?UTF-8?q?=E6=99=AF=E5=93=81=E3=81=8C=E5=89=8A=E9=99=A4=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=AA=E3=81=84=E4=B8=8D=E5=85=B7=E5=90=88=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unchama/seichiassist/subsystems/gachaprize/System.scala | 1 + .../gachaprize/domain/GachaPrizeListPersistence.scala | 5 +++++ .../infrastructure/JdbcGachaPrizeListPersistence.scala | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala index eeaf1c9670..5321dce06a 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/System.scala @@ -91,6 +91,7 @@ object System { prizes.filterNot(_.id == gachaPrizeId) } _ <- _gachaPersistence.deleteMineStackGachaObject(gachaPrizeId) + _ <- _gachaPersistence.removeGachaPrize(gachaPrizeId) } yield () override def addGachaPrize(gachaPrize: GachaPrizeByGachaPrizeId): F[Unit] = for { diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala index 6a86c01521..8ebb5d1976 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/domain/GachaPrizeListPersistence.scala @@ -22,6 +22,11 @@ trait GachaPrizeListPersistence[F[_], ItemStack] { */ def addGachaPrizes(gachaPrizes: Vector[GachaPrize[ItemStack]]): F[Unit] + /** + * @return ガチャアイテムを削除する作用 + */ + def removeGachaPrize(gachaPrizeId: GachaPrizeId): F[Unit] + /** * @return ガチャリストを更新する作用 */ diff --git a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala index 84770d875e..2554f60f85 100644 --- a/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala +++ b/src/main/scala/com/github/unchama/seichiassist/subsystems/gachaprize/infrastructure/JdbcGachaPrizeListPersistence.scala @@ -60,6 +60,12 @@ class JdbcGachaPrizeListPersistence[F[_]: Sync, ItemStack: Cloneable]( } } + override def removeGachaPrize(gachaPrizeId: GachaPrizeId): F[Unit] = Sync[F].delay { + DB.localTx { implicit session => + sql"DELETE FROM gachadata WHERE id = ${gachaPrizeId.id}".execute().apply() + } + } + override def addGachaPrizes(gachaPrizes: Vector[GachaPrize[ItemStack]]): F[Unit] = Sync[F].delay { DB.localTx { implicit session => From 7ac3d9c3eb83237460effc2f75de132b0e948521 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 2 Jul 2023 15:03:30 +0000 Subject: [PATCH 142/142] chore(bump): 83 -> 84 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index f0b1ddb383..08350e4bc9 100644 --- a/build.sbt +++ b/build.sbt @@ -8,7 +8,7 @@ import java.io._ ThisBuild / scalaVersion := "2.13.11" // ThisBuild / version はGitHub Actionsによって取得/自動更新される。 // 次の行は ThisBuild / version := "(\d*)" の形式でなければならない。 -ThisBuild / version := "83" +ThisBuild / version := "84" ThisBuild / organization := "click.seichi" ThisBuild / description := "ギガンティック☆整地鯖の独自要素を司るプラグイン"