1+ plugins {
2+ id ' fabric-loom' version " ${ loom_version} "
3+ id ' maven-publish'
4+ }
5+
6+ version = project. mod_version
7+ group = project. maven_group
8+
9+ base {
10+ archivesName = project. archives_base_name
11+ }
12+
13+ repositories {
14+ maven {
15+ url " https://jitpack.io"
16+
17+ metadataSources {
18+ artifact() // Look directly for artifact
19+ }
20+ }
21+
22+ // Scheduler, Queue, MultiDim, AutoJSON
23+ maven { url " https://theo.is-a.dev/maven-repo/" }
24+
25+ // YACL
26+ maven { url ' https://maven.isxander.dev/releases' }
27+
28+ // ModMenu
29+ maven { url " https://maven.terraformersmc.com/releases/" }
30+
31+ exclusiveContent {
32+ forRepository {
33+ maven {
34+ name = " Modrinth"
35+ url = " https://api.modrinth.com/maven"
36+ }
37+ }
38+ filter {
39+ includeGroup " maven.modrinth"
40+ }
41+ }
42+ }
43+
44+ loom {
45+ splitEnvironmentSourceSets()
46+
47+ mods {
48+ " decked-out" {
49+ sourceSet sourceSets. main
50+ sourceSet sourceSets. client
51+ }
52+ }
53+
54+ }
55+
56+ fabricApi {
57+ configureDataGeneration {
58+ client = true
59+ }
60+ }
61+
62+ dependencies {
63+ // To change the versions see the gradle.properties file
64+ minecraft " com.mojang:minecraft:${ project.minecraft_version} "
65+ mappings " net.fabricmc:yarn:${ project.yarn_mappings} :v2"
66+ modImplementation " net.fabricmc:fabric-loader:${ project.loader_version} "
67+
68+ // Fabric API. This is technically optional, but you probably want it anyway.
69+ modImplementation " net.fabricmc.fabric-api:fabric-api:${ project.fabric_version} "
70+
71+ modImplementation " dev.isxander:yet-another-config-lib:${ project.yacl_version} "
72+ modImplementation(" com.terraformersmc:modmenu:${ project.modmenu_version} " )
73+
74+ modImplementation(" com.github.amblelabs:modkit:v${ project.amblekit_version} " ) {
75+ exclude(group : " net.fabricmc.fabric-api" )
76+ }
77+ include(modImplementation(" dev.drtheo:scheduler:${ project.scheduler_version} " )) {
78+ exclude(group : " net.fabricmc.fabric-api" )
79+ }
80+
81+ }
82+
83+ processResources {
84+ duplicatesStrategy = DuplicatesStrategy . EXCLUDE // Exclude duplicate files, I don"t why this even works
85+ inputs. property " version" , project. version
86+ inputs. property " minecraft_version" , project. minecraft_version
87+ inputs. property " loader_version" , project. loader_version
88+ inputs. property " yacl_version" , project. yacl_version
89+ filteringCharset " UTF-8"
90+
91+ filesMatching(" fabric.mod.json" ) {
92+ expand " version" : project. version,
93+ " minecraft_version" : project. minecraft_version,
94+ " loader_version" : project. loader_version,
95+ " yacl_version" : project. yacl_version
96+ }
97+ }
98+
99+ tasks. withType(JavaCompile ). configureEach {
100+ it. options. release = 21
101+ }
102+
103+ java {
104+ // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
105+ // if it is present.
106+ // If you remove this line, sources will not be generated.
107+ withSourcesJar()
108+
109+ sourceCompatibility = JavaVersion . VERSION_21
110+ targetCompatibility = JavaVersion . VERSION_21
111+ }
112+
113+ jar {
114+ inputs. property " archivesName" , project. base. archivesName
115+
116+ from(" LICENSE" ) {
117+ rename { " ${ it} _${ inputs.properties.archivesName} " }
118+ }
119+ }
120+
121+ // configure the maven publication
122+ publishing {
123+ publications {
124+ create(" mavenJava" , MavenPublication ) {
125+ artifactId = project. archives_base_name
126+ from components. java
127+ }
128+ }
129+
130+ // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
131+ repositories {
132+ // Add repositories to publish to here.
133+ // Notice: This block does NOT have the same function as the block in the top level.
134+ // The repositories here will be used for publishing your artifact, not for
135+ // retrieving dependencies.
136+ }
137+ }
0 commit comments