User: rednesto Date: 09 Jul 23 11:00 Revision: efa2b72f8dbd37b3ec1b72978567eb5c2d201f49 Summary: Skip some creation steps if project is not opened Fixes minecraft-dev/mcdev-error-report#862 Fixes minecraft-dev/mcdev-error-report#832 Fixes minecraft-dev/mcdev-error-report#735 Fixes minecraft-dev/mcdev-error-report#716 Fixes minecraft-dev/mcdev-error-report#717 TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=8615&personal=false Index: src/main/kotlin/creator/buildsystem/gradle-steps.kt =================================================================== --- src/main/kotlin/creator/buildsystem/gradle-steps.kt (revision 19ffce4a2f8a0caddfab0460f8955027b4f3f2d2) +++ src/main/kotlin/creator/buildsystem/gradle-steps.kt (revision efa2b72f8dbd37b3ec1b72978567eb5c2d201f49) @@ -22,6 +22,7 @@ import com.demonwav.mcdev.creator.addTemplates import com.demonwav.mcdev.creator.findStep +import com.demonwav.mcdev.creator.notifyCreatedProjectNotOpened import com.demonwav.mcdev.creator.step.AbstractLongRunningStep import com.demonwav.mcdev.creator.step.AbstractReformatFilesStep import com.demonwav.mcdev.creator.step.FixedAssetsNewProjectWizardStep @@ -123,7 +124,8 @@ override fun perform(project: Project) { invokeAndWait { - if (project.isDisposed) { + if (project.isDisposed || !project.isInitialized) { + notifyCreatedProjectNotOpened() return@invokeAndWait } @@ -195,6 +197,11 @@ open val additionalRunTasks = emptyList() override fun perform(project: Project) { + if (!project.isInitialized) { + notifyCreatedProjectNotOpened() + return + } + val rootDirectory = Path.of(context.projectFileDirectory) val buildSystemProps = findStep>() Index: src/main/kotlin/creator/buildsystem/maven-steps.kt =================================================================== --- src/main/kotlin/creator/buildsystem/maven-steps.kt (revision 19ffce4a2f8a0caddfab0460f8955027b4f3f2d2) +++ src/main/kotlin/creator/buildsystem/maven-steps.kt (revision efa2b72f8dbd37b3ec1b72978567eb5c2d201f49) @@ -22,6 +22,7 @@ import com.demonwav.mcdev.creator.findStep import com.demonwav.mcdev.creator.getVersionJson +import com.demonwav.mcdev.creator.notifyCreatedProjectNotOpened import com.demonwav.mcdev.creator.step.AbstractLongRunningStep import com.demonwav.mcdev.creator.step.AbstractModNameStep import com.demonwav.mcdev.creator.step.AbstractReformatFilesStep @@ -125,7 +126,8 @@ override fun perform(project: Project) { invokeAndWait { - if (project.isDisposed) { + if (project.isDisposed || !project.isInitialized) { + notifyCreatedProjectNotOpened() return@invokeAndWait } @@ -172,7 +174,8 @@ val pomFile = VfsUtil.findFile(Path.of(context.projectFileDirectory).resolve("pom.xml"), true) ?: return val promise = invokeAndWait { - if (project.isDisposed) { + if (project.isDisposed || !project.isInitialized) { + notifyCreatedProjectNotOpened() return@invokeAndWait null } MavenImportingManager.getInstance(project).linkAndImportFile(pomFile) Index: src/main/kotlin/creator/creator-utils.kt =================================================================== --- src/main/kotlin/creator/creator-utils.kt (revision 19ffce4a2f8a0caddfab0460f8955027b4f3f2d2) +++ src/main/kotlin/creator/creator-utils.kt (revision efa2b72f8dbd37b3ec1b72978567eb5c2d201f49) @@ -29,6 +29,8 @@ import com.intellij.ide.wizard.AbstractNewProjectWizardStep import com.intellij.ide.wizard.GitNewProjectWizardData import com.intellij.ide.wizard.NewProjectWizardStep +import com.intellij.notification.Notification +import com.intellij.notification.NotificationType import com.intellij.openapi.observable.properties.ObservableMutableProperty import com.intellij.openapi.observable.properties.ObservableProperty import com.intellij.openapi.project.Project @@ -149,3 +151,12 @@ } class EmptyStep(parent: NewProjectWizardStep) : AbstractNewProjectWizardStep(parent) + +fun notifyCreatedProjectNotOpened() { + Notification( + "Minecraft project creator", + "Created project must be opened", + "Generated files might be incomplete and the project might be broken.", + NotificationType.ERROR, + ).notify(null) +} Index: src/main/kotlin/creator/step/AbstractReformatFilesStep.kt =================================================================== --- src/main/kotlin/creator/step/AbstractReformatFilesStep.kt (revision 19ffce4a2f8a0caddfab0460f8955027b4f3f2d2) +++ src/main/kotlin/creator/step/AbstractReformatFilesStep.kt (revision efa2b72f8dbd37b3ec1b72978567eb5c2d201f49) @@ -20,6 +20,7 @@ package com.demonwav.mcdev.creator.step +import com.demonwav.mcdev.creator.notifyCreatedProjectNotOpened import com.intellij.codeInsight.actions.ReformatCodeProcessor import com.intellij.ide.wizard.NewProjectWizardStep import com.intellij.openapi.application.ReadAction @@ -56,6 +57,11 @@ NonProjectFileWritingAccessProvider.disableChecksDuring { WriteCommandAction.writeCommandAction(project, *files).withGlobalUndo().run { + if (project.isDisposed || !project.isInitialized) { + notifyCreatedProjectNotOpened() + return@run + } + ReformatCodeProcessor(project, files, null, false).run() } } Index: src/main/resources/META-INF/plugin.xml =================================================================== --- src/main/resources/META-INF/plugin.xml (revision 19ffce4a2f8a0caddfab0460f8955027b4f3f2d2) +++ src/main/resources/META-INF/plugin.xml (revision efa2b72f8dbd37b3ec1b72978567eb5c2d201f49) @@ -171,6 +171,7 @@ +