|
1 | 1 | buildscript { |
2 | 2 | repositories { |
3 | | - maven { url = 'https://files.minecraftforge.net/maven' } |
| 3 | + maven { url("https://files.minecraftforge.net/maven") } |
| 4 | + maven { url("https://libraries.minecraft.net") } |
| 5 | + maven { url("https://plugins.gradle.org/m2/") } |
4 | 6 | jcenter() |
5 | 7 | mavenCentral() |
6 | 8 | } |
7 | 9 | dependencies { |
8 | | - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true |
| 10 | + classpath( |
| 11 | + group: "net.minecraftforge.gradle", |
| 12 | + name: "ForgeGradle", |
| 13 | + version: forgeGradleVersion, |
| 14 | + changing: true |
| 15 | + ) |
| 16 | + classpath( |
| 17 | + "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" |
| 18 | + ) |
| 19 | + classpath ( |
| 20 | + "org.jetbrains.dokka:dokka-gradle-plugin:$dokkaVersion" |
| 21 | + ) |
9 | 22 | } |
10 | 23 | } |
11 | | -apply plugin: 'net.minecraftforge.gradle' |
12 | | -// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. |
13 | | -apply plugin: 'eclipse' |
14 | | -apply plugin: 'maven-publish' |
15 | 24 |
|
16 | | -version = '1.0' |
17 | | -group = 'com.yourname.modid' // http://maven.apache.org/guides/mini/guide-naming-conventions.html |
18 | | -archivesBaseName = 'modid' |
| 25 | +apply(plugin: "org.jetbrains.dokka") |
| 26 | +apply(plugin: "net.minecraftforge.gradle") |
| 27 | +apply(plugin: "kotlin") |
| 28 | +apply(plugin: "java") |
19 | 29 |
|
20 | | -sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. |
| 30 | +version = projectEssentialsVersion |
| 31 | +group = "com.mairwunnx.$projectEssentialsId" |
| 32 | +archivesBaseName = projectEssentialsName |
| 33 | + |
| 34 | +configurations { |
| 35 | + embed |
| 36 | + compile.extendsFrom(embed) |
| 37 | +} |
21 | 38 |
|
22 | 39 | minecraft { |
23 | | - // The mappings can be changed at any time, and must be in the following format. |
24 | | - // snapshot_YYYYMMDD Snapshot are built nightly. |
25 | | - // stable_# Stables are built at the discretion of the MCP team. |
26 | | - // Use non-default mappings at your own risk. they may not always work. |
27 | | - // Simply re-run your setup task after changing the mappings to update your workspace. |
28 | | - mappings channel: 'snapshot', version: '20190719-1.14.3' |
29 | | - // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. |
30 | | - |
31 | | - // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') |
| 40 | + mappings( |
| 41 | + channel: mappingsChannelType, |
| 42 | + version: mappingsChannelVersion |
| 43 | + ) |
32 | 44 |
|
33 | | - // Default run configurations. |
34 | | - // These can be tweaked, removed, or duplicated as needed. |
35 | 45 | runs { |
36 | 46 | client { |
37 | | - workingDirectory project.file('run') |
38 | | - |
39 | | - // Recommended logging data for a userdev environment |
40 | | - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' |
41 | | - |
42 | | - // Recommended logging level for the console |
43 | | - property 'forge.logging.console.level', 'debug' |
44 | | - |
| 47 | + workingDirectory(project.file(devRunClientPath)) |
| 48 | + property("forge.logging.markers", "SCAN,REGISTRIES,REGISTRYDUMP") |
| 49 | + property("forge.logging.console.level", "debug") |
45 | 50 | mods { |
46 | | - examplemod { |
47 | | - source sourceSets.main |
| 51 | + ProjectEssentialsCore { |
| 52 | + source(sourceSets.main) |
48 | 53 | } |
49 | 54 | } |
50 | 55 | } |
51 | 56 |
|
52 | 57 | server { |
53 | | - workingDirectory project.file('run') |
54 | | - |
55 | | - // Recommended logging data for a userdev environment |
56 | | - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' |
57 | | - |
58 | | - // Recommended logging level for the console |
59 | | - property 'forge.logging.console.level', 'debug' |
60 | | - |
61 | | - mods { |
62 | | - examplemod { |
63 | | - source sourceSets.main |
64 | | - } |
65 | | - } |
66 | | - } |
67 | | - |
68 | | - data { |
69 | | - workingDirectory project.file('run') |
70 | | - |
71 | | - // Recommended logging data for a userdev environment |
72 | | - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' |
73 | | - |
74 | | - // Recommended logging level for the console |
75 | | - property 'forge.logging.console.level', 'debug' |
76 | | - |
77 | | - args '--mod', 'examplemod', '--all', '--output', file('src/generated/resources/') |
78 | | - |
| 58 | + workingDirectory(project.file(devRunServerPath)) |
| 59 | + property("forge.logging.markers", "SCAN,REGISTRIES,REGISTRYDUMP") |
| 60 | + property("forge.logging.console.level", "debug") |
79 | 61 | mods { |
80 | | - examplemod { |
81 | | - source sourceSets.main |
| 62 | + ProjectEssentialsCore { |
| 63 | + source(sourceSets.main) |
82 | 64 | } |
83 | 65 | } |
84 | 66 | } |
85 | 67 | } |
86 | 68 | } |
87 | 69 |
|
88 | | -dependencies { |
89 | | - // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed |
90 | | - // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied. |
91 | | - // The userdev artifact is a special name and will get all sorts of transformations applied to it. |
92 | | - minecraft 'net.minecraftforge:forge:1.14.4-28.0.73' |
93 | | - |
94 | | - // You may put jars on which you depend on in ./libs or you may define them like so.. |
95 | | - // compile "some.group:artifact:version:classifier" |
96 | | - // compile "some.group:artifact:version" |
97 | | - |
98 | | - // Real examples |
99 | | - // compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env |
100 | | - // compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env |
101 | | - |
102 | | - // The 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime. |
103 | | - // provided 'com.mod-buildcraft:buildcraft:6.0.8:dev' |
104 | | - |
105 | | - // These dependencies get remapped to your current MCP mappings |
106 | | - // deobf 'com.mod-buildcraft:buildcraft:6.0.8:dev' |
| 70 | +repositories { |
| 71 | + jcenter() |
| 72 | + mavenCentral() |
| 73 | + maven { url("https://minecraft.curseforge.com/api/maven/") } |
| 74 | + maven { url("https://libraries.minecraft.net") } |
| 75 | +} |
107 | 76 |
|
108 | | - // For more info... |
109 | | - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html |
110 | | - // http://www.gradle.org/docs/current/userguide/dependency_management.html |
| 77 | +dependencies { |
| 78 | + minecraft(group: "net.minecraftforge", name: "forge", version: forgeBaseVersion) |
| 79 | + compile(group: "com.mojang", name: "brigadier", version: brigadierBaseVersion) |
| 80 | + compile( |
| 81 | + group: "org.jetbrains.kotlinx", |
| 82 | + name: "kotlinx-serialization-runtime", |
| 83 | + version: kotlinxSerializationVersion |
| 84 | + ) |
| 85 | + embed( |
| 86 | + group: "org.jetbrains.kotlinx", |
| 87 | + name: "kotlinx-serialization-runtime", |
| 88 | + version: kotlinxSerializationVersion |
| 89 | + ) |
| 90 | + compile( |
| 91 | + group: "org.jetbrains.kotlin", |
| 92 | + name: "kotlin-stdlib-$kotlinJdkVersionTarget", |
| 93 | + version: kotlinVersion |
| 94 | + ) |
| 95 | + embed( |
| 96 | + group: "org.jetbrains.kotlin", |
| 97 | + name: "kotlin-stdlib-$kotlinJdkVersionTarget", |
| 98 | + version: kotlinVersion |
| 99 | + ) |
| 100 | +} |
111 | 101 |
|
| 102 | +dokka { |
| 103 | + outputFormat = 'html' |
| 104 | + outputDirectory = "$buildDir/libs/docs" |
112 | 105 | } |
113 | 106 |
|
114 | | -// Example for how to get properties into the manifest for reading by the runtime.. |
| 107 | +project.tasks["jar"].dependsOn(project.tasks["dokka"]) |
| 108 | + |
115 | 109 | jar { |
116 | 110 | manifest { |
117 | 111 | attributes([ |
118 | | - "Specification-Title": "examplemod", |
119 | | - "Specification-Vendor": "examplemodsareus", |
120 | | - "Specification-Version": "1", // We are version 1 of ourselves |
121 | | - "Implementation-Title": project.name, |
122 | | - "Implementation-Version": "${version}", |
123 | | - "Implementation-Vendor" :"examplemodsareus", |
| 112 | + "Specification-Title" : projectEssentialsName, |
| 113 | + "Specification-Vendor" : projectEssentialsVendor, |
| 114 | + "Specification-Version" : projectEssentialsVersion, |
| 115 | + "Implementation-Title" : projectEssentialsName, |
| 116 | + "Implementation-Version" : projectEssentialsVersion, |
| 117 | + "Implementation-Vendor" : projectEssentialsVendor, |
124 | 118 | "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") |
125 | 119 | ]) |
126 | 120 | } |
127 | 121 | } |
128 | 122 |
|
129 | | -// Example configuration to allow publishing using the maven-publish task |
130 | | -// we define a custom artifact that is sourced from the reobfJar output task |
131 | | -// and then declare that to be published |
132 | | -// Note you'll need to add a repository here |
133 | | -def reobfFile = file("$buildDir/reobfJar/output.jar") |
134 | | -def reobfArtifact = artifacts.add('default', reobfFile) { |
135 | | - type 'jar' |
136 | | - builtBy 'reobfJar' |
137 | | -} |
138 | | -publishing { |
139 | | - publications { |
140 | | - mavenJava(MavenPublication) { |
141 | | - artifact reobfArtifact |
142 | | - } |
143 | | - } |
144 | | - repositories { |
145 | | - maven { |
146 | | - url "file:///${project.projectDir}/mcmodsrepo" |
147 | | - } |
148 | | - } |
149 | | -} |
| 123 | +sourceCompatibility = targetCompatibility = |
| 124 | + compileJava.sourceCompatibility = |
| 125 | + compileJava.targetCompatibility = jvmVersionTarget |
| 126 | + |
| 127 | +compileKotlin.kotlinOptions.jvmTarget = |
| 128 | + compileTestKotlin.kotlinOptions.jvmTarget = jvmVersionTarget |
0 commit comments