1+ @file:Suppress(" UnstableApiUsage" , " PropertyName" )
2+
3+ import org.polyfrost.gradle.util.noServerRunConfigs
4+ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
5+
6+ plugins {
7+ kotlin(" jvm" )
8+ id(" org.polyfrost.multi-version" )
9+ id(" org.polyfrost.defaults.repo" )
10+ id(" org.polyfrost.defaults.java" )
11+ id(" org.polyfrost.defaults.loom" )
12+ id(" com.github.johnrengelman.shadow" )
13+ id(" net.kyori.blossom" ) version " 1.3.2"
14+ id(" signing" )
15+ java
16+ }
17+
18+ val mod_name: String by project
19+ val mod_version: String by project
20+ val mod_id: String = mod_name.lowercase()
21+ val mod_archives_name: String = mod_name
22+
23+ blossom {
24+ replaceToken(" @VER@" , mod_version)
25+ replaceToken(" @NAME@" , mod_name)
26+ replaceToken(" @ID@" , mod_id)
27+ }
28+
29+ version = mod_version
30+ group = " com.github.chromaticforge.rawinput"
31+
32+ base {
33+ archivesName.set(" $mod_archives_name -$platform " )
34+ }
35+
36+ loom {
37+ noServerRunConfigs()
38+
39+ if (project.platform.isLegacyForge) {
40+ runConfigs {
41+ " client" {
42+ property(" mixin.debug.export" , " true" )
43+ }
44+ }
45+ }
46+
47+ if (project.platform.isForge) {
48+ forge {
49+ mixinConfig(" mixins.${mod_id} .json" )
50+ }
51+ }
52+
53+ mixin.defaultRefmapName.set(" mixins.${mod_id} .refmap.json" )
54+ }
55+
56+ val shade: Configuration by configurations.creating {
57+ configurations.implementation.get().extendsFrom(this )
58+ }
59+ val modShade: Configuration by configurations.creating {
60+ configurations.modImplementation.get().extendsFrom(this )
61+ }
62+
63+ sourceSets {
64+ main {
65+ output.setResourcesDir(java.classesDirectory)
66+ }
67+ }
68+
69+ repositories {
70+ maven(" https://repo.polyfrost.org/releases" )
71+ }
72+
73+ dependencies {
74+ modRuntimeOnly(" me.djtheredstoner:DevAuth-${if (platform.isFabric) " fabric" else if (platform.isLegacyForge) " forge-legacy" else " forge-latest" } :1.2.0" )
75+
76+ if (platform.isLegacyForge) {
77+ compileOnly(" org.spongepowered:mixin:0.7.11-SNAPSHOT" )
78+ }
79+ }
80+
81+ tasks {
82+ processResources {
83+ inputs.property(" id" , mod_id)
84+ inputs.property(" name" , mod_name)
85+ val java = if (project.platform.mcMinor >= 18 ) {
86+ 17
87+ } else {
88+ if (project.platform.mcMinor == 17 )
89+ 16
90+ else
91+ 8
92+ }
93+ val compatLevel = " JAVA_${java} "
94+ inputs.property(" java" , java)
95+ inputs.property(" java_level" , compatLevel)
96+ inputs.property(" version" , mod_version)
97+ inputs.property(" mcVersionStr" , project.platform.mcVersionStr)
98+ filesMatching(listOf (" mcmod.info" , " mixins.${mod_id} .json" , " mods.toml" )) {
99+ expand(
100+ mapOf (
101+ " id" to mod_id,
102+ " name" to mod_name,
103+ " java" to java,
104+ " java_level" to compatLevel,
105+ " version" to mod_version,
106+ " mcVersionStr" to project.platform.mcVersionStr
107+ )
108+ )
109+ }
110+ filesMatching(" fabric.mod.json" ) {
111+ expand(
112+ mapOf (
113+ " id" to mod_id,
114+ " name" to mod_name,
115+ " java" to java,
116+ " java_level" to compatLevel,
117+ " version" to mod_version,
118+ " mcVersionStr" to project.platform.mcVersionStr.substringBeforeLast(" ." ) + " .x"
119+ )
120+ )
121+ }
122+ }
123+
124+ withType(Jar ::class .java) {
125+ if (project.platform.isFabric) {
126+ exclude(" mcmod.info" , " mods.toml" )
127+ } else {
128+ exclude(" fabric.mod.json" )
129+ if (project.platform.isLegacyForge) {
130+ exclude(" mods.toml" )
131+ } else {
132+ exclude(" mcmod.info" )
133+ }
134+ }
135+ }
136+
137+ named<ShadowJar >(" shadowJar" ) {
138+ archiveClassifier.set(" dev" )
139+ configurations = listOf (shade, modShade)
140+ duplicatesStrategy = DuplicatesStrategy .EXCLUDE
141+ }
142+
143+ remapJar {
144+ inputFile.set(shadowJar.get().archiveFile)
145+ archiveClassifier.set(" " )
146+ }
147+
148+ jar {
149+ if (platform.isLegacyForge) {
150+ manifest.attributes + = mapOf (
151+ " ModSide" to " CLIENT" ,
152+ " ForceLoadAsMod" to true ,
153+ " TweakOrder" to " 0" ,
154+ " MixinConfigs" to " mixins.${mod_id} .json" ,
155+ )
156+ }
157+ dependsOn(shadowJar)
158+ archiveClassifier.set(" " )
159+ enabled = false
160+ }
161+ }
0 commit comments