Skip to content

Commit dc15159

Browse files
committed
Merge branch '2020.1' into 2020.2
2 parents caee272 + 9c44148 commit dc15159

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+904
-252
lines changed

.github/workflows/pr.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: PR Validation
2+
on:
3+
pull_request:
4+
branches: ['*']
5+
6+
jobs:
7+
validation:
8+
name: Validation
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v2
12+
- uses: gradle/wrapper-validation-action@v1

.github/workflows/publish.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ jobs:
2323
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('gradle.properties') }}
2424
restore-keys: |
2525
${{ runner.os }}-gradle-
26-
- uses: gradle/wrapper-validation-action@v1
2726
- name: Setup publish token
2827
env:
2928
JETBRAINS_TOKEN: ${{ secrets.JETBRAINS_TOKEN }}

.github/workflows/test.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,4 @@ jobs:
3030
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('gradle.properties') }}
3131
restore-keys: |
3232
${{ runner.os }}-gradle-
33-
- uses: gradle/wrapper-validation-action@v1
3433
- run: ./gradlew build --no-daemon --stacktrace

build.gradle.kts

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ plugins {
1818
mcdev
1919
groovy
2020
idea
21-
id("org.jetbrains.intellij") version "0.7.2"
22-
id("org.cadixdev.licenser") version "0.5.1"
21+
id("org.jetbrains.intellij") version "0.7.3"
22+
id("org.cadixdev.licenser") version "0.6.0"
2323
id("org.jlleitschuh.gradle.ktlint") version "10.0.0"
2424
}
2525

@@ -71,31 +71,28 @@ dependencies {
7171
// Kotlin
7272
implementation(kotlin("stdlib-jdk8"))
7373
implementation(kotlin("reflect"))
74-
val coroutineVersion = "1.4.3"
75-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutineVersion")
76-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:$coroutineVersion")
74+
implementation(libs.bundles.coroutines)
7775

7876
implementation(files(gradleToolingExtensionJar))
7977

80-
implementation("com.extracraftx.minecraft:TemplateMakerFabric:0.3.0")
78+
implementation(libs.templateMakerFabric)
8179

82-
jflex("org.jetbrains.idea:jflex:1.7.0-b7f882a")
83-
jflexSkeleton("org.jetbrains.idea:jflex:1.7.0-c1fdf11:idea@skeleton")
84-
grammarKit("org.jetbrains.idea:grammar-kit:1.5.1")
80+
jflex(libs.jflex.lib)
81+
jflexSkeleton("${libs.jflex.skeleton.text()}:idea@skeleton")
82+
grammarKit(libs.grammarKit)
8583

86-
testLibs("org.jetbrains.idea:mockJDK:1.7-4d76c50")
87-
testLibs("org.spongepowered:mixin:0.7-SNAPSHOT")
88-
testLibs("org.spongepowered:spongeapi:7.0.0:shaded")
89-
testLibs("com.demonwav.mcdev:all-types-nbt:1.0@nbt")
84+
testLibs(libs.test.mockJdk)
85+
testLibs(libs.test.mixin)
86+
testLibs("${libs.test.spongeapi.text()}:shaded")
87+
testLibs("${libs.test.nbt.text()}@nbt")
9088

9189
// For non-SNAPSHOT versions (unless Jetbrains fixes this...) find the version with:
9290
// afterEvaluate { println(intellij.ideaDependency.buildNumber.substring(intellij.type.length + 1)) }
93-
gradleToolingExtension("com.jetbrains.intellij.gradle:gradle-tooling-extension:202.6397.94")
94-
gradleToolingExtension("org.jetbrains:annotations:19.0.0")
91+
gradleToolingExtension(libs.gradleToolingExtension)
92+
gradleToolingExtension(libs.annotations)
9593

96-
val junitVersion = "5.7.1"
97-
testImplementation("org.junit.jupiter:junit-jupiter-api:$junitVersion")
98-
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junitVersion")
94+
testImplementation(libs.junit.api)
95+
testRuntimeOnly(libs.junit.entine)
9996
}
10097

10198
intellij {
@@ -208,7 +205,7 @@ idea {
208205
}
209206

210207
license {
211-
header = file("copyright.txt")
208+
header.set(resources.text.fromFile(file("copyright.txt")))
212209
style["flex"] = HeaderStyle.BLOCK_COMMENT.format
213210
style["bnf"] = HeaderStyle.BLOCK_COMMENT.format
214211

@@ -233,20 +230,23 @@ license {
233230

234231
tasks {
235232
register("gradle") {
236-
files = project.fileTree(project.projectDir) {
237-
include("**/*.gradle.kts", "gradle.properties")
238-
exclude("**/buildSrc/**", "**/build/**")
239-
}
233+
files.from(
234+
fileTree(project.projectDir) {
235+
include("**/*.gradle.kts", "gradle.properties")
236+
exclude("**/buildSrc/**", "**/build/**")
237+
}
238+
)
240239
}
241240
register("buildSrc") {
242-
val buildSrc = project.projectDir.resolve("buildSrc")
243-
files = project.fileTree(buildSrc) {
244-
include("**/*.kt", "**/*.kts")
245-
exclude("**/build/**")
246-
}
241+
files.from(
242+
project.fileTree(project.projectDir.resolve("buildSrc")) {
243+
include("**/*.kt", "**/*.kts")
244+
exclude("**/build/**")
245+
}
246+
)
247247
}
248248
register("grammars") {
249-
files = project.fileTree("src/main/grammars")
249+
files.from(project.fileTree("src/main/grammars"))
250250
}
251251
}
252252
}
@@ -306,3 +306,10 @@ tasks.runIde {
306306
// systemProperty("user.language", "en")
307307
// systemProperty("user.country", "US")
308308
}
309+
310+
// version catalogs still have rough edges as it's still experimental
311+
// this lets us get around some of that while still getting the benefits of using catalogs
312+
fun Provider<MinimalExternalModuleDependency>.text(): String {
313+
val dep = get()
314+
return "${dep.module.group}:${dep.module.name}:${dep.versionConstraint}"
315+
}

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 = 2020.2
1515
ideaVersionName = 2020.2
1616

17-
coreVersion = 1.5.8
17+
coreVersion = 1.5.9
1818
downloadIdeaSources = true
1919

2020
pluginTomlVersion = 0.2.140.3644-202

gradle/libs.versions.toml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[versions]
2+
coroutines = "1.4.3"
3+
junit = "5.7.1"
4+
5+
[libraries]
6+
coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
7+
coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "coroutines" }
8+
9+
templateMakerFabric = "com.extracraftx.minecraft:TemplateMakerFabric:0.3.0"
10+
11+
# GrammarKit
12+
jflex-lib = "org.jetbrains.idea:jflex:1.7.0-b7f882a"
13+
jflex-skeleton = "org.jetbrains.idea:jflex:1.7.0-c1fdf11"
14+
grammarKit = "org.jetbrains.idea:grammar-kit:1.5.1"
15+
16+
# Gradle Tooling
17+
gradleToolingExtension = "com.jetbrains.intellij.gradle:gradle-tooling-extension:202.6397.94"
18+
annotations = "org.jetbrains:annotations:19.0.0"
19+
20+
# Testing
21+
test-mockJdk = "org.jetbrains.idea:mockJDK:1.7-4d76c50"
22+
test-mixin = "org.spongepowered:mixin:0.7-SNAPSHOT"
23+
test-spongeapi = "org.spongepowered:spongeapi:7.0.0"
24+
test-nbt = "com.demonwav.mcdev:all-types-nbt:1.0"
25+
26+
junit-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" }
27+
junit-entine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" }
28+
29+
[bundles]
30+
coroutines = ["coroutines-core", "coroutines-swing"]
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

readme.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ Minecraft Development for IntelliJ
3636
</tr>
3737
</table>
3838

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

4242
<a href="https://discord.gg/j6UNcfr"><img src="https://i.imgur.com/JXu9C1G.png" height="48px"></img></a>
@@ -114,7 +114,7 @@ If you're curious about that task, it is implemented in `buildSrc`.
114114
Developers
115115
----------
116116

117-
- Project Owner - [**@DemonWav** - Kyle Wood](https://github.com/DemonWav)
117+
- Project Owner - [**@DenWav** - Kyle Wood](https://github.com/DenWav)
118118
- [**@Minecrell**](https://github.com/Minecrell)
119119
- [**@PaleoCrafter** - Marvin Rösch](https://github.com/PaleoCrafter)
120120
- [**@RedNesto**](https://github.com/RedNesto)

settings.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@
1111
rootProject.name = "MinecraftDev"
1212

1313
gradle.startParameter.showStacktrace = ShowStacktrace.ALWAYS_FULL
14+
15+
enableFeaturePreview("VERSION_CATALOGS")

src/gradle-tooling-extension/groovy/com/demonwav/mcdev/platform/mcp/gradle/tooling/McpModelFG3BuilderImpl.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ final class McpModelFG3BuilderImpl implements ModelBuilderService {
4646
}
4747

4848
def taskOutput = task.outputs.files.singleFile
49-
return new McpModelFG3Impl(minecraftDepVersions, extension.mappings, taskOutput, task.name)
49+
//noinspection GroovyAssignabilityCheck
50+
return new McpModelFG3Impl(minecraftDepVersions, extension.mappings, taskOutput, task.name, extension.accessTransformers)
5051
}
5152

5253
@Override

src/gradle-tooling-extension/groovy/com/demonwav/mcdev/platform/mcp/gradle/tooling/McpModelFG3Impl.groovy

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,19 @@ final class McpModelFG3Impl implements McpModelFG3, Serializable {
1919
final String mcpVersion
2020
final File taskOutputLocation
2121
final String taskName
22+
final List<File> accessTransformers
2223

23-
McpModelFG3Impl(List<String> minecraftDepVersions, String mcpVersion, File taskOutputLocation, String taskName) {
24+
McpModelFG3Impl(
25+
final List<String> minecraftDepVersions,
26+
final String mcpVersion,
27+
final File taskOutputLocation,
28+
final String taskName,
29+
final List<File> accessTransformers
30+
) {
2431
this.minecraftDepVersions = minecraftDepVersions
2532
this.mcpVersion = mcpVersion
2633
this.taskOutputLocation = taskOutputLocation
2734
this.taskName = taskName
35+
this.accessTransformers = accessTransformers
2836
}
2937
}

src/gradle-tooling-extension/java/com/demonwav/mcdev/platform/mcp/gradle/tooling/McpModelFG3.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ public interface McpModelFG3 extends McpModel {
1717
List<String> getMinecraftDepVersions();
1818
File getTaskOutputLocation();
1919
String getTaskName();
20+
List<File> getAccessTransformers();
2021
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import com.demonwav.mcdev.creator.buildsystem.BuildSystemTemplate
1717
import com.demonwav.mcdev.creator.buildsystem.BuildSystemType
1818
import com.demonwav.mcdev.creator.buildsystem.DirectorySet
1919
import com.demonwav.mcdev.util.invokeLater
20-
import com.demonwav.mcdev.util.runGradleTask
20+
import com.demonwav.mcdev.util.runGradleTaskAndWait
2121
import com.demonwav.mcdev.util.runWriteAction
2222
import com.demonwav.mcdev.util.runWriteTask
2323
import com.demonwav.mcdev.util.virtualFileOrError
@@ -272,7 +272,7 @@ class GradleWrapperStep(
272272

273273
indicator.text = "Setting up Gradle Wrapper"
274274
indicator.text2 = "Running Gradle task: 'wrapper'"
275-
runGradleTask(project, rootDirectory) { settings ->
275+
runGradleTaskAndWait(project, rootDirectory) { settings ->
276276
settings.taskNames = listOf("wrapper")
277277
}
278278
indicator.text2 = null

src/main/kotlin/errorreporter/AnonymousFeedback.kt

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,14 @@ import java.net.HttpURLConnection
2222
import java.nio.ByteBuffer
2323
import java.nio.charset.CodingErrorAction
2424
import org.apache.commons.io.IOUtils
25+
import org.apache.http.HttpHeaders
26+
import org.apache.http.entity.ContentType
2527

2628
object AnonymousFeedback {
2729

2830
data class FeedbackData(val url: String, val token: Int, val isDuplicate: Boolean)
2931

30-
const val url = "https://www.demonwav.com/errorReport"
32+
const val url = "https://www.denwav.dev/errorReport"
3133

3234
fun sendFeedback(
3335
factory: HttpConnectionFactory,
@@ -206,7 +208,11 @@ object AnonymousFeedback {
206208
continue
207209
}
208210

209-
data = connection.inputStream.reader().use(InputStreamReader::readCharSequence).toString()
211+
val charset = connection.getHeaderField(HttpHeaders.CONTENT_TYPE)?.let {
212+
ContentType.parse(it).charset
213+
} ?: Charsets.UTF_8
214+
215+
data = connection.inputStream.reader(charset).readText()
210216

211217
response = Gson().fromJson(data)
212218
list.addAll(response)
@@ -219,18 +225,21 @@ object AnonymousFeedback {
219225
return list
220226
}
221227

222-
private fun getNextLink(link: String?): String? {
223-
if (link == null) {
228+
private fun getNextLink(linkHeader: String?): String? {
229+
if (linkHeader == null) {
224230
return null
225231
}
226-
val lines = link.split(",")
227-
for (line in lines) {
228-
if (!line.contains("rel=\"next\"")) {
232+
val links = linkHeader.split(",")
233+
for (link in links) {
234+
if (!link.contains("rel=\"next\"")) {
229235
continue
230236
}
231237

232-
val parts = line.split(";")
233-
return parts[0].substring(1, parts[0].length - 1)
238+
val parts = link.split(";")
239+
if (parts.isEmpty()) {
240+
continue
241+
}
242+
return parts[0].trim().removePrefix("<").removeSuffix(">")
234243
}
235244

236245
return null

src/main/kotlin/facet/MinecraftFacet.kt

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import com.intellij.psi.PsiElement
3535
import com.intellij.psi.PsiMethod
3636
import java.util.concurrent.ConcurrentHashMap
3737
import javax.swing.Icon
38+
import kotlin.jvm.Throws
3839
import org.jetbrains.jps.model.java.JavaResourceRootType
3940
import org.jetbrains.jps.model.java.JavaSourceRootType
4041

@@ -195,10 +196,34 @@ class MinecraftFacet(
195196
}
196197

197198
fun findFile(path: String, type: SourceType): VirtualFile? {
199+
try {
200+
return findFile0(path, type)
201+
} catch (ignored: RefreshRootsException) {}
202+
203+
updateRoots()
204+
205+
return try {
206+
findFile0(path, type)
207+
} catch (ignored: RefreshRootsException) {
208+
// Well we tried our best
209+
null
210+
}
211+
}
212+
213+
private class RefreshRootsException : Exception()
214+
215+
@Throws(RefreshRootsException::class)
216+
private fun findFile0(path: String, type: SourceType): VirtualFile? {
198217
val roots = roots[type]
218+
199219
for (root in roots) {
200-
return root?.findFileByRelativePath(path) ?: continue
220+
val r = root ?: continue
221+
if (!r.isValid) {
222+
throw RefreshRootsException()
223+
}
224+
return r.findFileByRelativePath(path) ?: continue
201225
}
226+
202227
return null
203228
}
204229

src/main/kotlin/platform/PlatformType.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ enum class PlatformType(
5151
FORGE(ForgeModuleType, "Forge"),
5252
FABRIC(FabricModuleType, "Fabric"),
5353
SPONGE(SpongeModuleType, "Sponge"),
54-
BUNGEECORD(BungeeCordModuleType, "BungeeCord", "bungeecord.json"),
54+
BUNGEECORD(BungeeCordModuleType, "BungeeCord", "bungeecord_v2.json"),
5555
WATERFALL(WaterfallModuleType, "Waterfall", "waterfall.json", BUNGEECORD),
5656
VELOCITY(VelocityModuleType, "Velocity", "velocity.json"),
5757
LITELOADER(LiteLoaderModuleType, "LiteLoader"),

src/main/kotlin/platform/bungeecord/creator/BungeeCordProjectCreator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ class BungeeCordDependenciesStep(
171171
BuildDependency(
172172
"net.md-5",
173173
"bungeecord-api",
174-
"$mcVersion-SNAPSHOT",
174+
mcVersion,
175175
mavenScope = "provided",
176176
gradleConfiguration = "compileOnly"
177177
)

src/main/kotlin/platform/bungeecord/creator/BungeeCordProjectSettingsWizard.form

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<grid row="2" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/>
9191
</constraints>
9292
<properties>
93-
<text value="Minecraft Version"/>
93+
<text value="Version"/>
9494
</properties>
9595
</component>
9696
<component id="234c0" class="javax.swing.JLabel" binding="errorLabel">

0 commit comments

Comments
 (0)