diff --git a/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/gui/window/configs/TabbedConfigsTab.kt b/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/gui/window/configs/TabbedConfigsTab.kt index 0b17a90ed7e199cd6b573d04a112f5d78424a8c1..c2f98169cbb3581f332328e6b4363462fbc1bab4 100644 --- a/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/gui/window/configs/TabbedConfigsTab.kt +++ b/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/gui/window/configs/TabbedConfigsTab.kt @@ -37,6 +37,7 @@ import kotlinx.coroutines.swing.Swing import org.apache.commons.io.monitor.FileAlterationListener import org.apache.commons.io.monitor.FileAlterationMonitor import org.apache.commons.io.monitor.FileAlterationObserver +import org.apache.commons.io.monitor.FileEntry import org.apache.logging.log4j.kotlin.cachedLoggerOf import java.awt.datatransfer.DataFlavor import java.awt.dnd.DnDConstants @@ -63,7 +64,7 @@ class TabbedConfigsTab( private val choose = arrayOf(Translations.createserverpack_gui_quickselect_choose.toString()) private val noVersions = DefaultComboBoxModel(arrayOf(Translations.createserverpack_gui_createserverpack_forge_none.toString())) private val componentResizer = ComponentResizer() - private val timer = ConfigCheckTimer(500, guiProps, apiWrapper.configurationHandler,this) + private val timer = ConfigCheckTimer(500, guiProps, apiWrapper,this) val selectedEditor: ConfigEditor? get() { return if (activeTab != null) { @@ -277,7 +278,9 @@ class TabbedConfigsTab( @Suppress("DuplicatedCode") private fun iconsDirectoryWatcher() { Executors.newSingleThreadExecutor().execute { - val observer = FileAlterationObserver(apiWrapper.apiProperties.iconsDirectory) + val observer = FileAlterationObserver.builder() + .setRootEntry(FileEntry(apiWrapper.apiProperties.iconsDirectory)) + .get() val alterations = object : FileAlterationListener { override fun onStart(observer: FileAlterationObserver?) {} override fun onDirectoryCreate(directory: File?) {} @@ -309,6 +312,7 @@ class TabbedConfigsTab( } } } + observer.addListener(alterations) val monitor = FileAlterationMonitor(2000) monitor.addObserver(observer) @@ -323,7 +327,9 @@ class TabbedConfigsTab( @Suppress("DuplicatedCode") private fun propertiesDirectoryWatcher() { Executors.newSingleThreadExecutor().execute { - val observer = FileAlterationObserver(apiWrapper.apiProperties.propertiesDirectory) + val observer = FileAlterationObserver.builder() + .setRootEntry(FileEntry(apiWrapper.apiProperties.propertiesDirectory)) + .get() val alterations = object : FileAlterationListener { override fun onStart(observer: FileAlterationObserver?) {} override fun onDirectoryCreate(directory: File?) {} diff --git a/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/gui/window/configs/components/ConfigCheckTimer.kt b/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/gui/window/configs/components/ConfigCheckTimer.kt index b1ed4ac9b9891c5fe041ddb987ccba164c5a21c6..d8782e5f42aaa61b37d2dc005ca52d7bc8b15d09 100644 --- a/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/gui/window/configs/components/ConfigCheckTimer.kt +++ b/serverpackcreator-app/src/main/kotlin/de/griefed/serverpackcreator/app/gui/window/configs/components/ConfigCheckTimer.kt @@ -20,7 +20,7 @@ package de.griefed.serverpackcreator.app.gui.window.configs.components import Translations -import de.griefed.serverpackcreator.api.config.ConfigurationHandler +import de.griefed.serverpackcreator.api.ApiWrapper import de.griefed.serverpackcreator.app.gui.GuiProps import de.griefed.serverpackcreator.app.gui.window.configs.ConfigEditor import de.griefed.serverpackcreator.app.gui.window.configs.TabbedConfigsTab @@ -35,7 +35,7 @@ import javax.swing.Timer * @author Griefed */ @OptIn(DelicateCoroutinesApi::class) -class ConfigCheckTimer(delay: Int, guiProps: GuiProps, configHandler: ConfigurationHandler, tabbedConfigsTab: TabbedConfigsTab) : Timer(delay, +class ConfigCheckTimer(delay: Int, guiProps: GuiProps, apiWrapper: ApiWrapper, tabbedConfigsTab: TabbedConfigsTab) : Timer(delay, ActionListener { GlobalScope.launch(guiProps.configDispatcher, CoroutineStart.UNDISPATCHED) { var errorsEncountered = false @@ -47,7 +47,7 @@ class ConfigCheckTimer(delay: Int, guiProps: GuiProps, configHandler: Configurat runBlocking { launch { errors.addAll(editor.validateModpackDir()) - val name = configHandler.checkManifests(editor.getModpackDirectory(), pack) + val name = apiWrapper.configurationHandler.checkManifests(editor.getModpackDirectory(), pack) @Suppress("IfThenToElvis") editor.title.title = if (pack.name != null) { pack.name!!