diff --git a/src/main/kotlin/dartzee/screen/UtilitiesScreen.kt b/src/main/kotlin/dartzee/screen/UtilitiesScreen.kt index 356d695e..7e6c04f5 100644 --- a/src/main/kotlin/dartzee/screen/UtilitiesScreen.kt +++ b/src/main/kotlin/dartzee/screen/UtilitiesScreen.kt @@ -4,6 +4,7 @@ import dartzee.core.util.dumpThreadStacks import dartzee.core.util.getAllChildComponentsForType import dartzee.core.util.runInOtherThread import dartzee.db.sanity.DatabaseSanityCheck +import dartzee.logging.CODE_PARTY_MODE import dartzee.`object`.DartsClient import dartzee.utils.DARTS_VERSION_NUMBER import dartzee.utils.DartsDatabaseUtil @@ -26,6 +27,7 @@ class UtilitiesScreen : EmbeddedScreen() { private val btnViewLogs = JButton("View Logs") private val btnThreadStacks = JButton("Thread Stacks") private val btnAchievementConversion = JButton("Run Achievement Conversion") + private val btnPartyMode = JButton("Enter Party Mode") init { val panel = JPanel() @@ -39,6 +41,7 @@ class UtilitiesScreen : EmbeddedScreen() { panel.add(btnCheckForUpdates, "cell 0 8,alignx center") panel.add(btnViewLogs, "cell 0 10,alignx center") panel.add(btnAchievementConversion, "cell 0 11,alignx center") + panel.add(btnPartyMode, "cell 0 12,alignx center") val buttons = panel.getAllChildComponentsForType() for (button in buttons) { @@ -66,10 +69,18 @@ class UtilitiesScreen : EmbeddedScreen() { } btnThreadStacks -> dumpThreadStacks() btnAchievementConversion -> runAchievementConversion() + btnPartyMode -> enterPartyMode() else -> super.actionPerformed(arg0) } } + private fun enterPartyMode() { + InjectedThings.logger.info(CODE_PARTY_MODE, "Entering party mode!") + InjectedThings.partyMode = true + + ScreenCache.switch() + } + private fun runAchievementConversion() { val dlg = AchievementConversionDialog() dlg.setLocationRelativeTo(ScreenCache.mainScreen) diff --git a/src/main/kotlin/dartzee/screen/preference/PreferencesPanelMisc.kt b/src/main/kotlin/dartzee/screen/preference/PreferencesPanelMisc.kt index dba70b41..d4abb81a 100644 --- a/src/main/kotlin/dartzee/screen/preference/PreferencesPanelMisc.kt +++ b/src/main/kotlin/dartzee/screen/preference/PreferencesPanelMisc.kt @@ -3,11 +3,6 @@ package dartzee.screen.preference import dartzee.bean.SliderAiSpeed import dartzee.core.bean.NumberField import dartzee.core.util.setFontSize -import dartzee.logging.CODE_PARTY_MODE -import dartzee.screen.MenuScreen -import dartzee.screen.ScreenCache -import dartzee.utils.InjectedThings -import dartzee.utils.InjectedThings.logger import dartzee.utils.PREFERENCES_BOOLEAN_AI_AUTO_CONTINUE import dartzee.utils.PREFERENCES_BOOLEAN_CHECK_FOR_UPDATES import dartzee.utils.PREFERENCES_BOOLEAN_SHOW_ANIMATIONS @@ -19,7 +14,6 @@ import java.awt.event.ActionEvent import java.awt.event.ActionListener import java.beans.PropertyChangeEvent import java.beans.PropertyChangeListener -import javax.swing.JButton import javax.swing.JCheckBox import javax.swing.JLabel import javax.swing.JPanel @@ -39,7 +33,6 @@ class PreferencesPanelMisc : private val lblRowsToShow = JLabel("Rows to show on Leaderboards") val nfLeaderboardSize = NumberField(10, 200) val chckbxShowAnimations = JCheckBox("Play sounds/animations") - private val btnPartyMode = JButton("Enter Party Mode") init { add(panelCenter, BorderLayout.CENTER) @@ -60,14 +53,12 @@ class PreferencesPanelMisc : panelCenter.add(chckbxAiAutomaticallyFinish, "flowx,cell 0 2") panelCenter.add(chckbxCheckForUpdates, "flowx,cell 0 3") panelCenter.add(chckbxShowAnimations, "cell 0 4") - panelCenter.add(btnPartyMode, "cell 0 5") slider.addChangeListener(this) nfLeaderboardSize.addPropertyChangeListener(this) chckbxAiAutomaticallyFinish.addActionListener(this) chckbxCheckForUpdates.addActionListener(this) chckbxShowAnimations.addActionListener(this) - btnPartyMode.addActionListener(this) } override fun refreshImpl(useDefaults: Boolean) { @@ -99,13 +90,6 @@ class PreferencesPanelMisc : PreferenceUtil.saveBoolean(PREFERENCES_BOOLEAN_SHOW_ANIMATIONS, showAnimations) } - private fun enterPartyMode() { - logger.info(CODE_PARTY_MODE, "Entering party mode!") - InjectedThings.partyMode = true - - ScreenCache.switch() - } - override fun hasOutstandingChanges() = slider.value != PreferenceUtil.getIntValue(PREFERENCES_INT_AI_SPEED) || nfLeaderboardSize.value != @@ -122,10 +106,6 @@ class PreferencesPanelMisc : override fun propertyChange(evt: PropertyChangeEvent?) = stateChanged() override fun actionPerformed(e: ActionEvent?) { - if (e?.source == btnPartyMode) { - enterPartyMode() - } else { - stateChanged() - } + stateChanged() } } diff --git a/src/test/kotlin/dartzee/screen/TestUtilitiesScreen.kt b/src/test/kotlin/dartzee/screen/TestUtilitiesScreen.kt new file mode 100644 index 00000000..c9c3335a --- /dev/null +++ b/src/test/kotlin/dartzee/screen/TestUtilitiesScreen.kt @@ -0,0 +1,21 @@ +package dartzee.screen + +import com.github.alyssaburlton.swingtest.clickChild +import dartzee.helper.AbstractTest +import dartzee.utils.InjectedThings +import io.kotest.matchers.shouldBe +import javax.swing.JButton +import org.junit.jupiter.api.Test + +class TestUtilitiesScreen : AbstractTest() { + @Test + fun `Should enter party mode`() { + ScreenCache.switch() + + val utilitiesScreen = ScreenCache.currentScreen() + utilitiesScreen.clickChild(text = "Enter Party Mode") + + InjectedThings.partyMode shouldBe true + ScreenCache.currentScreen() shouldBe ScreenCache.get() + } +} diff --git a/src/test/kotlin/dartzee/screen/preference/TestPreferencesPanelMisc.kt b/src/test/kotlin/dartzee/screen/preference/TestPreferencesPanelMisc.kt index 103cf393..dc8a9d46 100644 --- a/src/test/kotlin/dartzee/screen/preference/TestPreferencesPanelMisc.kt +++ b/src/test/kotlin/dartzee/screen/preference/TestPreferencesPanelMisc.kt @@ -1,10 +1,6 @@ package dartzee.screen.preference -import com.github.alyssaburlton.swingtest.clickChild import com.github.alyssaburlton.swingtest.uncheck -import dartzee.screen.MenuScreen -import dartzee.screen.ScreenCache -import dartzee.utils.InjectedThings import dartzee.utils.PREFERENCES_BOOLEAN_AI_AUTO_CONTINUE import dartzee.utils.PREFERENCES_BOOLEAN_CHECK_FOR_UPDATES import dartzee.utils.PREFERENCES_BOOLEAN_SHOW_ANIMATIONS @@ -12,8 +8,6 @@ import dartzee.utils.PREFERENCES_INT_AI_SPEED import dartzee.utils.PREFERENCES_INT_LEADERBOARD_SIZE import dartzee.utils.PreferenceUtil import io.kotest.matchers.shouldBe -import javax.swing.JButton -import org.junit.jupiter.api.Test class TestPreferencesPanelMisc : AbstractPreferencePanelTest() { override fun getPreferencesAffected(): MutableList { @@ -60,14 +54,4 @@ class TestPreferencesPanelMisc : AbstractPreferencePanelTest() - val panel = factory() - panel.clickChild(text = "Enter Party Mode") - - InjectedThings.partyMode shouldBe true - ScreenCache.currentScreen() shouldBe ScreenCache.get() - } }