Skip to content

Commit fed3d34

Browse files
committed
Merge branch '2022.2' into 2022.3
2 parents 3b75c9e + 67fd41d commit fed3d34

File tree

12 files changed

+144
-11
lines changed

12 files changed

+144
-11
lines changed

.github/ISSUE_TEMPLATE/project_wizard_outdated.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: Project Wizard Outdated
22
description: The Minecraft project wizard is outdated
3-
labels: ["status: unverified", "type: bug"]
3+
labels: ["status: unverified", "type: bug", "feature: creator"]
44
body:
55
- type: markdown
66
attributes:
@@ -44,4 +44,6 @@ body:
4444
id: description
4545
attributes:
4646
label: Additional description
47-
description: If the issue isn't obvious, please be as detailed as you can.
47+
description: Please be as detailed as you can, as we may not be experts for this platform.
48+
validations:
49+
required: true

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ plugins {
2424
mcdev
2525
groovy
2626
idea
27-
id("org.jetbrains.intellij") version "1.13.0"
27+
id("org.jetbrains.intellij") version "1.13.2"
2828
id("org.cadixdev.licenser")
2929
id("org.jlleitschuh.gradle.ktlint") version "10.3.0"
3030
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ kotlin.code.style=official
1414
ideaVersion = 2022.3
1515
ideaVersionName = 2022.3
1616

17-
coreVersion = 1.6.1
17+
coreVersion = 1.6.2
1818
downloadIdeaSources = true
1919

2020
pluginTomlVersion = 223.7571.59

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Minecraft Development for IntelliJ
3535
</tr>
3636
</table>
3737

38-
Info and Documentation [![Current Release](https://img.shields.io/badge/release-1.6.0-orange.svg?style=flat-square)](https://plugins.jetbrains.com/plugin/8327)
38+
Info and Documentation [![Current Release](https://img.shields.io/badge/release-1.6.2-orange.svg?style=flat-square)](https://plugins.jetbrains.com/plugin/8327)
3939
----------------------
4040

4141
<a href="https://discord.gg/j6UNcfr"><img src="https://i.imgur.com/JXu9C1G.png" height="48px"></img></a>

src/main/kotlin/creator/ProjectSetupFinalizerWizardStep.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,10 @@
1111
package com.demonwav.mcdev.creator
1212

1313
import com.demonwav.mcdev.creator.ProjectSetupFinalizer.Factory
14+
import com.demonwav.mcdev.creator.step.NewProjectWizardChainStep.Companion.nextStep
1415
import com.demonwav.mcdev.util.mapFirstNotNull
15-
import com.demonwav.mcdev.util.toTypedArray
1616
import com.intellij.ide.wizard.AbstractNewProjectWizardStep
1717
import com.intellij.ide.wizard.NewProjectWizardStep
18-
import com.intellij.ide.wizard.stepSequence
1918
import com.intellij.openapi.extensions.ExtensionPointName
2019
import com.intellij.openapi.observable.properties.GraphProperty
2120
import com.intellij.openapi.project.Project
@@ -46,10 +45,16 @@ class ProjectSetupFinalizerWizardStep(parent: NewProjectWizardStep) : AbstractNe
4645
result
4746
}
4847
private val step by lazy {
49-
if (finalizers.isEmpty()) {
50-
null
51-
} else {
52-
stepSequence(finalizers[0], *finalizers.asSequence().drop(1).toTypedArray())
48+
when (finalizers.size) {
49+
0 -> null
50+
1 -> finalizers[0]
51+
else -> {
52+
var step = finalizers[0].nextStep { finalizers[1] }
53+
for (i in 2 until finalizers.size) {
54+
step = step.nextStep { finalizers[i] }
55+
}
56+
step
57+
}
5358
}
5459
}
5560

src/main/kotlin/creator/buildsystem/maven-steps.kt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import com.demonwav.mcdev.creator.step.WebsiteStep
2121
import com.demonwav.mcdev.util.invokeAndWait
2222
import com.demonwav.mcdev.util.runWriteAction
2323
import com.demonwav.mcdev.util.runWriteTask
24+
import com.intellij.execution.RunManager
2425
import com.intellij.ide.wizard.NewProjectWizardStep
2526
import com.intellij.openapi.fileEditor.FileDocumentManager
2627
import com.intellij.openapi.fileEditor.impl.NonProjectFileWritingAccessProvider
@@ -35,6 +36,8 @@ import java.nio.file.Path
3536
import java.util.concurrent.TimeUnit
3637
import kotlinx.coroutines.runBlocking
3738
import org.jetbrains.idea.maven.dom.model.MavenDomProjectModel
39+
import org.jetbrains.idea.maven.execution.MavenRunConfiguration
40+
import org.jetbrains.idea.maven.execution.MavenRunConfigurationType
3841
import org.jetbrains.idea.maven.project.importing.MavenImportingManager
3942

4043
private val pluginVersions by lazy {
@@ -165,5 +168,39 @@ class MavenImportStep(parent: NewProjectWizardStep) : AbstractLongRunningStep(pa
165168
} ?: return
166169

167170
promise.finishPromise.blockingGet(Int.MAX_VALUE, TimeUnit.SECONDS)
171+
172+
val buildSystemProps = findStep<BuildSystemPropertiesStep<*>>()
173+
addRunTaskConfiguration(project, buildSystemProps, "package")
174+
}
175+
176+
private fun addRunTaskConfiguration(
177+
project: Project,
178+
buildSystemProps: BuildSystemPropertiesStep<*>,
179+
task: String,
180+
) {
181+
val mavenConfigFactory = MavenRunConfigurationType.getInstance().configurationFactories.first()
182+
183+
val runManager = RunManager.getInstance(project)
184+
val runConfigName = buildSystemProps.artifactId + ' ' + task
185+
186+
val templateConfig = mavenConfigFactory.createTemplateConfiguration(project)
187+
val runConfiguration = mavenConfigFactory.createConfiguration(runConfigName, templateConfig)
188+
as MavenRunConfiguration
189+
runConfiguration.runnerParameters.goals.add(task)
190+
191+
runConfiguration.isAllowRunningInParallel = false
192+
193+
val settings = runManager.createConfiguration(
194+
runConfiguration,
195+
mavenConfigFactory,
196+
)
197+
198+
settings.isActivateToolWindowBeforeRun = true
199+
settings.storeInLocalWorkspace()
200+
201+
runManager.addConfiguration(settings)
202+
if (runManager.selectedConfiguration == null) {
203+
runManager.selectedConfiguration = settings
204+
}
168205
}
169206
}

src/main/kotlin/insight/generation/MinecraftClassCreateAction.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ class MinecraftClassCreateAction :
8787
builder.addKind("Block", icon, MinecraftTemplates.FABRIC_BLOCK_TEMPLATE)
8888
builder.addKind("Enchantment", icon, MinecraftTemplates.FABRIC_ENCHANTMENT_TEMPLATE)
8989
builder.addKind("Item", icon, MinecraftTemplates.FABRIC_ITEM_TEMPLATE)
90+
builder.addKind("Status Effect", icon, MinecraftTemplates.FABRIC_STATUS_EFFECT_TEMPLATE)
9091
}
9192
}
9293

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* Minecraft Dev for IntelliJ
3+
*
4+
* https://minecraftdev.org
5+
*
6+
* Copyright (c) 2023 minecraft-dev
7+
*
8+
* MIT License
9+
*/
10+
11+
package com.demonwav.mcdev.platform.mixin.inspection
12+
13+
import com.demonwav.mcdev.platform.mixin.util.MixinConstants
14+
import com.intellij.codeInspection.AbstractBaseUastLocalInspectionTool
15+
import com.intellij.codeInspection.InspectionManager
16+
import com.intellij.codeInspection.ProblemDescriptor
17+
import com.intellij.codeInspection.ProblemHighlightType
18+
import com.intellij.lang.java.JavaLanguage
19+
import org.jetbrains.uast.UClass
20+
21+
class NonJavaMixinInspection : AbstractBaseUastLocalInspectionTool(UClass::class.java) {
22+
override fun getDisplayName() = "Mixin is not written in Java"
23+
override fun getStaticDescription() =
24+
"<html>Mixins should be written in Java. See <a href=\"$RELEVANT_ISSUE\">this Mixin issue</a></html>"
25+
26+
override fun checkClass(
27+
aClass: UClass,
28+
manager: InspectionManager,
29+
isOnTheFly: Boolean
30+
): Array<ProblemDescriptor>? {
31+
val sourcePsi = aClass.sourcePsi ?: return null
32+
if (sourcePsi.language == JavaLanguage.INSTANCE) {
33+
return null
34+
}
35+
val isMixin = aClass.uAnnotations.any { ann -> ann.qualifiedName == MixinConstants.Annotations.MIXIN }
36+
if (!isMixin) {
37+
return null
38+
}
39+
val problem = manager.createProblemDescriptor(
40+
aClass.uastAnchor?.sourcePsi ?: sourcePsi,
41+
this.staticDescription,
42+
isOnTheFly,
43+
null,
44+
ProblemHighlightType.GENERIC_ERROR_OR_WARNING
45+
)
46+
return arrayOf(problem)
47+
}
48+
49+
companion object {
50+
private const val RELEVANT_ISSUE = "https://github.com/SpongePowered/Mixin/issues/245"
51+
}
52+
}

src/main/kotlin/util/MinecraftTemplates.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ class MinecraftTemplates : FileTemplateGroupDescriptorFactory {
143143
fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_BLOCK_TEMPLATE))
144144
fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_ITEM_TEMPLATE))
145145
fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_ENCHANTMENT_TEMPLATE))
146+
fabricSkeletonGroup.addTemplate(FileTemplateDescriptor(FABRIC_STATUS_EFFECT_TEMPLATE))
146147
}
147148
}
148149

@@ -254,6 +255,7 @@ class MinecraftTemplates : FileTemplateGroupDescriptorFactory {
254255
const val FABRIC_BLOCK_TEMPLATE = "FabricBlock.java"
255256
const val FABRIC_ITEM_TEMPLATE = "FabricItem.java"
256257
const val FABRIC_ENCHANTMENT_TEMPLATE = "FabricEnchantment.java"
258+
const val FABRIC_STATUS_EFFECT_TEMPLATE = "FabricStatusEffect.java"
257259
}
258260

259261
private fun template(fileName: String, displayName: String? = null) = CustomDescriptor(fileName, displayName)

src/main/resources/META-INF/plugin.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,14 @@
632632
<!--endregion-->
633633

634634
<!--region MIXIN INSPECTIONS-->
635+
<localInspection displayName="Mixin is not written in Java"
636+
shortName="NonJavaMixin"
637+
groupName="Mixin"
638+
language="UAST"
639+
enabledByDefault="true"
640+
level="WARNING"
641+
hasStaticDescription="true"
642+
implementationClass="com.demonwav.mcdev.platform.mixin.inspection.NonJavaMixinInspection"/>
635643
<localInspection displayName="Mixin not in a mixin config"
636644
shortName="UnusedMixin"
637645
groupName="Mixin"

0 commit comments

Comments
 (0)