Skip to content

Commit aa80801

Browse files
committed
Merge branch 'dev' into 2017.2
# Conflicts: # gradle.properties # readme.md # src/main/resources/META-INF/plugin.xml
2 parents 0920623 + 45efb5c commit aa80801

33 files changed

+517
-130
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ javaVersion = 1.8
1313
kotlinVersion = 1.1.1
1414

1515
group = com.demonwav.minecraft-dev
16-
version = 2017.2-0.7.1
16+
version = 2017.2-0.7.2
1717
downloadIdeaSources = true
1818

1919
org.gradle.script.lang.kotlin.accessors.auto=true

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Minecraft Development for IntelliJ
1010
|**CircleCI**|[![Travis Build Status](https://img.shields.io/circleci/project/github/minecraft-dev/MinecraftDev/dev.svg?style=flat-square)](https://circleci.com/gh/minecraft-dev/MinecraftDev)|
1111
| **Travis** |[![CircleCI Build Status](https://img.shields.io/travis/minecraft-dev/MinecraftDev/dev.svg?style=flat-square)](https://travis-ci.org/minecraft-dev/MinecraftDev/)|
1212

13-
Info and Documentation [![Current Release](https://img.shields.io/badge/release-2017.2--0.7.1-orange.svg?style=flat-square)](https://plugins.jetbrains.com/plugin/8327)
13+
Info and Documentation [![Current Release](https://img.shields.io/badge/release-2017.2--0.7.2-orange.svg?style=flat-square)](https://plugins.jetbrains.com/plugin/8327)
1414
----------------------
1515

1616
Visit [https://minecraftdev.org](https://minecraftdev.org) for information about the project, change logs, features, FAQs, and chat.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* Minecraft Dev for IntelliJ
3+
*
4+
* https://minecraftdev.org
5+
*
6+
* Copyright (c) 2017 minecraft-dev
7+
*
8+
* MIT License
9+
*/
10+
11+
package com.demonwav.mcdev.platform.forge.gradle.tooling
12+
13+
import com.demonwav.mcdev.platform.mcp.gradle.tooling.McpModelBuilderImpl
14+
import org.gradle.api.Project
15+
import org.jetbrains.annotations.NotNull
16+
import org.jetbrains.plugins.gradle.tooling.ErrorMessageBuilder
17+
import org.jetbrains.plugins.gradle.tooling.ModelBuilderService
18+
19+
final class ForgePatcherModelBuilderImpl implements ModelBuilderService {
20+
21+
@Override
22+
boolean canBuild(String modelName) {
23+
return ForgePatcherModel.name == modelName
24+
}
25+
26+
@Override
27+
Object buildAll(String modelName, Project project) {
28+
def extension = project.extensions.findByName("minecraft")
29+
if (extension == null) {
30+
// No ForgeGradle
31+
return null
32+
}
33+
34+
if (project.plugins.findPlugin("net.minecraftforge.gradle.patcher") == null) {
35+
// Not using the patcher plugin
36+
return null
37+
}
38+
39+
def mcpModel = new McpModelBuilderImpl().buildAll(modelName, project)
40+
41+
def set = new HashSet<String>()
42+
for (p in extension.projects) {
43+
set.add(p.capName)
44+
}
45+
46+
return new ForgePatcherModelImpl(mcpModel, set)
47+
}
48+
49+
@Override
50+
ErrorMessageBuilder getErrorMessageBuilder(@NotNull Project project, @NotNull Exception e) {
51+
return ErrorMessageBuilder.create(
52+
project, e, "MinecraftDev import errors"
53+
).withDescription("Unable to build MinecraftDev Forge patcher project configuration")
54+
}
55+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Minecraft Dev for IntelliJ
3+
*
4+
* https://minecraftdev.org
5+
*
6+
* Copyright (c) 2017 minecraft-dev
7+
*
8+
* MIT License
9+
*/
10+
11+
package com.demonwav.mcdev.platform.forge.gradle.tooling
12+
13+
import com.demonwav.mcdev.platform.mcp.gradle.tooling.McpModel
14+
import groovy.transform.CompileStatic
15+
16+
@CompileStatic
17+
final class ForgePatcherModelImpl implements ForgePatcherModel, Serializable {
18+
19+
final McpModel mcpModel
20+
final Set<String> projects
21+
22+
ForgePatcherModelImpl(McpModel mcpModel, Set<String> projects) {
23+
this.mcpModel = mcpModel
24+
this.projects = projects
25+
}
26+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* Minecraft Dev for IntelliJ
3+
*
4+
* https://minecraftdev.org
5+
*
6+
* Copyright (c) 2017 minecraft-dev
7+
*
8+
* MIT License
9+
*/
10+
11+
package com.demonwav.mcdev.platform.forge.gradle.tooling;
12+
13+
import com.demonwav.mcdev.platform.mcp.gradle.tooling.McpModel;
14+
import java.util.Set;
15+
16+
public interface ForgePatcherModel {
17+
McpModel getMcpModel();
18+
Set<String> getProjects();
19+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
com.demonwav.mcdev.platform.mcp.gradle.tooling.McpModelBuilderImpl
2+
com.demonwav.mcdev.platform.forge.gradle.tooling.ForgePatcherModelBuilderImpl

src/main/grammars/NbttLexer.flex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ SHORT_LITERAL = [+-]?\d+[sS]
5555
INT_LITERAL = [+-]?\d+[iI]?
5656
LONG_LITERAL = [+-]?\d+[lL]
5757
FLOAT_LITERAL = [+-]?(\d+(\.\d*(E\d+)?)?[fF]|\d*\.\d+(E\d+)?[fF]|Infinity[fF])|NaN[fF]
58-
DOUBLE_LITERAL = [+-]?(\d*\.\d+(E\d+)?[dD|]?|\d+\.\d*(E\d+)?[dD|]?|\d+(E\d+)?[dD|]|Infinity[dD|]?)|NaN[dD|]?
58+
DOUBLE_LITERAL = [+-]?(\d*\.\d+(E\d+)?[dD]?|\d+\.\d*(E\d+)?[dD]?|\d+(E\d+)?[dD]|Infinity[dD]?)|NaN[dD]?
5959

6060
STRING_LITERAL = \"([^\"\\\n]|(\\[\"\\nt]))*[\"\n]
6161
UNQUOTED_STRING_LITERAL = ([^\"\s\n:{}\[\](),\d+\-]|\\[\"\\nt])|([^\"\s\n:{}\[\](),\d+\-]|\\[\"\\nt])([^\"\\:{}\[\](),\n]|\\[\"\\nt])*[^\"\s\n:{}\[\](),]

src/main/kotlin/com/demonwav/mcdev/creator/BuildSystemWizardStep.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ package com.demonwav.mcdev.creator
1313
import com.demonwav.mcdev.buildsystem.BuildSystem
1414
import com.demonwav.mcdev.buildsystem.gradle.GradleBuildSystem
1515
import com.demonwav.mcdev.buildsystem.maven.MavenBuildSystem
16-
import com.demonwav.mcdev.exception.MinecraftSetupException
16+
import com.demonwav.mcdev.exception.EmptyFieldSetupException
17+
import com.demonwav.mcdev.exception.OtherSetupException
18+
import com.demonwav.mcdev.exception.SetupException
1719
import com.demonwav.mcdev.platform.PlatformType
1820
import com.demonwav.mcdev.platform.hybrid.SpongeForgeProjectConfiguration
1921
import com.intellij.ide.util.projectWizard.ModuleWizardStep
@@ -81,29 +83,29 @@ class BuildSystemWizardStep(private val creator: MinecraftProjectCreator) : Modu
8183
override fun validate(): Boolean {
8284
try {
8385
if (groupIdField.text.isEmpty()) {
84-
throw MinecraftSetupException("fillAll", groupIdField)
86+
throw EmptyFieldSetupException(groupIdField)
8587
}
8688

8789
if (artifactIdField.text.isEmpty()) {
88-
throw MinecraftSetupException("fillAll", artifactIdField)
90+
throw EmptyFieldSetupException(artifactIdField)
8991
}
9092

9193
if (versionField.text.trim { it <= ' ' }.isEmpty()) {
92-
throw MinecraftSetupException("fillAll", versionField)
94+
throw EmptyFieldSetupException(versionField)
9395
}
9496

9597
if (!groupIdField.text.matches("\\S+".toRegex())) {
96-
throw MinecraftSetupException("The GroupId field cannot contain any whitespace", groupIdField)
98+
throw OtherSetupException("The GroupId field cannot contain any whitespace", groupIdField)
9799
}
98100

99101
if (!artifactIdField.text.matches("\\S+".toRegex())) {
100-
throw MinecraftSetupException("The ArtifactId field cannot contain any whitespace", artifactIdField)
102+
throw OtherSetupException("The ArtifactId field cannot contain any whitespace", artifactIdField)
101103
}
102104

103105
if (creator.settings.values.stream().anyMatch { s -> s.type === PlatformType.FORGE } && buildSystemBox.selectedIndex == 0) {
104-
throw MinecraftSetupException("Forge does not support Maven", buildSystemBox)
106+
throw OtherSetupException("Forge does not support Maven", buildSystemBox)
105107
}
106-
} catch (e: MinecraftSetupException) {
108+
} catch (e: SetupException) {
107109
JBPopupFactory.getInstance().createHtmlTextBalloonBuilder(e.error, MessageType.ERROR, null)
108110
.setFadeoutTime(2000)
109111
.createBalloon()

src/main/kotlin/com/demonwav/mcdev/creator/ForgeProjectSettingsWizard.form

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,15 @@
8181
<text value="Mod Name"/>
8282
</properties>
8383
</component>
84-
<component id="c81fa" class="javax.swing.JTextField" binding="pluginNameField">
84+
<component id="c81fa" class="javax.swing.JTextField" binding="modNameField">
8585
<constraints>
8686
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
8787
<preferred-size width="150" height="-1"/>
8888
</grid>
8989
</constraints>
9090
<properties/>
9191
</component>
92-
<component id="483ec" class="javax.swing.JTextField" binding="pluginVersionField">
92+
<component id="483ec" class="javax.swing.JTextField" binding="modVersionField">
9393
<constraints>
9494
<grid row="0" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
9595
<preferred-size width="150" height="-1"/>

src/main/kotlin/com/demonwav/mcdev/creator/ForgeProjectSettingsWizard.kt

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ import javax.swing.SwingWorker
3535

3636
class ForgeProjectSettingsWizard(private val creator: MinecraftProjectCreator) : MinecraftModuleWizardStep() {
3737

38-
private lateinit var pluginNameField: JTextField
39-
private lateinit var pluginVersionField: JTextField
38+
private lateinit var modNameField: JTextField
39+
private lateinit var modVersionField: JTextField
4040
private lateinit var mainClassField: JTextField
4141
private lateinit var panel: JPanel
4242
private lateinit var title: JLabel
@@ -89,12 +89,12 @@ class ForgeProjectSettingsWizard(private val creator: MinecraftProjectCreator) :
8989
return null
9090
}
9191

92-
pluginNameField.text = WordUtils.capitalize(creator.artifactId)
93-
pluginVersionField.text = creator.version
92+
modNameField.text = WordUtils.capitalize(creator.artifactId)
93+
modVersionField.text = creator.version
9494

9595
if (settings != null && !settings!!.isFirst) {
96-
pluginNameField.isEditable = false
97-
pluginVersionField.isEditable = false
96+
modNameField.isEditable = false
97+
modVersionField.isEditable = false
9898
}
9999

100100
mainClassField.text = "${this.creator.groupId.toLowerCase()}.${this.creator.artifactId.toLowerCase()}." +
@@ -162,7 +162,7 @@ class ForgeProjectSettingsWizard(private val creator: MinecraftProjectCreator) :
162162
}
163163

164164
override fun validate(): Boolean {
165-
return validate(pluginNameField, pluginVersionField, mainClassField, authorsField, dependField, MinecraftModuleWizardStep.pattern) && !loadingBar.isVisible
165+
return validate(modNameField, modVersionField, mainClassField, authorsField, dependField, MinecraftModuleWizardStep.pattern) && !loadingBar.isVisible
166166
}
167167

168168
override fun isStepVisible(): Boolean {
@@ -178,8 +178,8 @@ class ForgeProjectSettingsWizard(private val creator: MinecraftProjectCreator) :
178178
}
179179

180180
settings!!.apply {
181-
pluginName = pluginNameField.text
182-
pluginVersion = pluginVersionField.text
181+
pluginName = modNameField.text
182+
pluginVersion = modVersionField.text
183183
mainClass = mainClassField.text
184184

185185
setAuthors(authorsField.text)
@@ -191,10 +191,9 @@ class ForgeProjectSettingsWizard(private val creator: MinecraftProjectCreator) :
191191
mcpVersion = (mcpVersionBox.selectedItem as McpVersionEntry).text
192192
}
193193

194-
if (settings is SpongeForgeProjectConfiguration) {
195-
val configuration = settings as SpongeForgeProjectConfiguration?
196-
configuration!!.generateDocumentation = generateDocsCheckbox.isSelected
197-
configuration.spongeApiVersion = minecraftVersionBox.selectedItem as String
194+
(settings as? SpongeForgeProjectConfiguration)?.let { settings ->
195+
settings.generateDocumentation = generateDocsCheckbox.isSelected
196+
settings.spongeApiVersion = minecraftVersionBox.selectedItem as String
198197
}
199198

200199
// If an error occurs while fetching the API, this may prevent the user from closing the dialog.

0 commit comments

Comments
 (0)