forked from koxx12-dev/Skyclient-Cosmetics
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
39 changed files
with
892 additions
and
381 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,199 @@ | ||
@file:Suppress("UnstableApiUsage", "PropertyName") | ||
|
||
import org.polyfrost.gradle.util.noServerRunConfigs | ||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar | ||
|
||
// Adds support for kotlin, and adds the Polyfrost Gradle Toolkit | ||
// which we use to prepare the environment. | ||
plugins { | ||
kotlin("jvm") | ||
id("org.polyfrost.multi-version") | ||
id("org.polyfrost.defaults.repo") | ||
id("org.polyfrost.defaults.java") | ||
id("org.polyfrost.defaults.loom") | ||
id("com.github.johnrengelman.shadow") | ||
id("net.kyori.blossom") version "1.3.1" | ||
id("signing") | ||
java | ||
} | ||
|
||
// Gets the mod name, version and id from the `gradle.properties` file. | ||
val mod_name: String by project | ||
val mod_version: String by project | ||
val mod_id: String by project | ||
val mod_archives_name: String by project | ||
|
||
// Sets up the variables for when we preprocess to other Minecraft versions. | ||
preprocess { | ||
vars.put("MODERN", if (project.platform.mcMinor >= 16) 1 else 0) | ||
} | ||
|
||
// Replaces the variables in `ExampleMod.java` to the ones specified in `gradle.properties`. | ||
blossom { | ||
replaceToken("@VER@", mod_version) | ||
replaceToken("@NAME@", mod_name) | ||
replaceToken("@ID@", mod_id) | ||
} | ||
|
||
// Sets the mod version to the one specified in `gradle.properties`. Make sure to change this following semver! | ||
version = mod_version | ||
// Sets the group, make sure to change this to your own. It can be a website you own backwards or your GitHub username. | ||
// e.g. com.github.<your username> or com.<your domain> | ||
group = "co.skyclient" | ||
|
||
// Sets the name of the output jar (the one you put in your mods folder and send to other people) | ||
// It outputs all versions of the mod into the `build` directory. | ||
base { | ||
archivesName.set("$mod_archives_name-$platform") | ||
} | ||
|
||
// Configures the Polyfrost Loom, our plugin fork to easily set up the programming environment. | ||
loom { | ||
// Removes the server configs from IntelliJ IDEA, leaving only client runs. | ||
// If you're developing a server-side mod, you can remove this line. | ||
noServerRunConfigs() | ||
|
||
// Adds the tweak class if we are building legacy version of forge as per the documentation (https://docs.polyfrost.org) | ||
if (project.platform.isLegacyForge) { | ||
runConfigs { | ||
"client" { | ||
programArgs("--tweakClass", "co.skyclient.scc.hooks.ReplacedModRemover") | ||
property("mixin.debug.export", "true") | ||
} | ||
} | ||
} | ||
// Configures the mixins if we are building for forge, useful for when we are dealing with cross-platform projects. | ||
if (project.platform.isForge) { | ||
forge { | ||
mixinConfig("mixins.scc.json") | ||
} | ||
} | ||
// Configures the name of the mixin "refmap" using an experimental loom api. | ||
mixin.defaultRefmapName.set("mixins.scc.refmap.json") | ||
} | ||
|
||
// Creates the shade/shadow configuration, so we can include libraries inside our mod, rather than having to add them separately. | ||
val shade: Configuration by configurations.creating { | ||
configurations.modImplementation.get().extendsFrom(this) | ||
} | ||
|
||
// Configures the output directory for when building from the `src/resources` directory. | ||
sourceSets { | ||
val dummy by creating | ||
main { | ||
compileClasspath += dummy.output | ||
output.setResourcesDir(java.classesDirectory) | ||
} | ||
} | ||
|
||
// Adds the Polyfrost maven repository so that we can get the libraries necessary to develop the mod. | ||
repositories { | ||
maven("https://repo.polyfrost.org/releases") | ||
} | ||
|
||
// Configures the libraries/dependencies for your mod. | ||
dependencies { | ||
// Adds the OneConfig library, so we can develop with it. | ||
modCompileOnly("cc.polyfrost:oneconfig-$platform:0.2.1-alpha+") | ||
|
||
modRuntimeOnly("me.djtheredstoner:DevAuth-${if (platform.isFabric) "fabric" else if (platform.isLegacyForge) "forge-legacy" else "forge-latest"}:1.1.2") | ||
|
||
shade("com.github.JnCrMx:discord-game-sdk4j:v0.5.5") | ||
shade("cc.polyfrost:elementa-$platform:560") | ||
|
||
// If we are building for legacy forge, includes the launch wrapper with `shade` as we configured earlier. | ||
if (platform.isLegacyForge) { | ||
compileOnly("org.spongepowered:mixin:0.7.11-SNAPSHOT") | ||
shade("cc.polyfrost:oneconfig-wrapper-launchwrapper:1.0.0-beta+") | ||
} | ||
} | ||
|
||
tasks { | ||
// Processes the `src/resources/mcmod.info or fabric.mod.json` and replaces | ||
// the mod id, name and version with the ones in `gradle.properties` | ||
processResources { | ||
inputs.property("id", mod_id) | ||
inputs.property("name", mod_name) | ||
val java = if (project.platform.mcMinor >= 18) { | ||
17 // If we are playing on version 1.18, set the java version to 17 | ||
} else { | ||
// Else if we are playing on version 1.17, use java 16. | ||
if (project.platform.mcMinor == 17) | ||
16 | ||
else | ||
8 // For all previous versions, we **need** java 8 (for Forge support). | ||
} | ||
val compatLevel = "JAVA_${java}" | ||
inputs.property("java", java) | ||
inputs.property("java_level", compatLevel) | ||
inputs.property("version", mod_version) | ||
inputs.property("mcVersionStr", project.platform.mcVersionStr) | ||
filesMatching(listOf("mcmod.info", "mixins.scc.json", "mods.toml")) { | ||
expand( | ||
mapOf( | ||
"id" to mod_id, | ||
"name" to mod_name, | ||
"java" to java, | ||
"java_level" to compatLevel, | ||
"version" to mod_version, | ||
"mcVersionStr" to project.platform.mcVersionStr | ||
) | ||
) | ||
} | ||
filesMatching("fabric.mod.json") { | ||
expand( | ||
mapOf( | ||
"id" to mod_id, | ||
"name" to mod_name, | ||
"java" to java, | ||
"java_level" to compatLevel, | ||
"version" to mod_version, | ||
"mcVersionStr" to project.platform.mcVersionStr.substringBeforeLast(".") + ".x" | ||
) | ||
) | ||
} | ||
} | ||
|
||
// Configures the resources to include if we are building for forge or fabric. | ||
withType(Jar::class.java) { | ||
if (project.platform.isFabric) { | ||
exclude("mcmod.info", "mods.toml") | ||
} else { | ||
exclude("fabric.mod.json") | ||
if (project.platform.isLegacyForge) { | ||
exclude("mods.toml") | ||
} else { | ||
exclude("mcmod.info") | ||
} | ||
} | ||
} | ||
|
||
// Configures our shadow/shade configuration, so we can | ||
// include some dependencies within our mod jar file. | ||
named<ShadowJar>("shadowJar") { | ||
archiveClassifier.set("dev") // TODO: machete gets confused by the `dev` prefix. | ||
configurations = listOf(shade) | ||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE | ||
} | ||
|
||
remapJar { | ||
inputFile.set(shadowJar.get().archiveFile) | ||
archiveClassifier.set("") | ||
} | ||
|
||
jar { | ||
// Sets the jar manifest attributes. | ||
if (platform.isLegacyForge) { | ||
manifest.attributes += mapOf( | ||
"ModSide" to "CLIENT", // We aren't developing a server-side mod, so this is fine. | ||
"ForceLoadAsMod" to true, // We want to load this jar as a mod, so we force Forge to do so. | ||
"TweakOrder" to "0", // Makes sure that the OneConfig launch wrapper is loaded as soon as possible. | ||
"MixinConfigs" to "mixins.scc.json", // We want to use our mixin configuration, so we specify it here. | ||
"TweakClass" to "co.skyclient.scc.hooks.ReplacedModRemover" // Loads the OneConfig launch wrapper. | ||
) | ||
} | ||
dependsOn(shadowJar) | ||
archiveClassifier.set("") | ||
enabled = false | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,12 @@ | ||
mod_id=skyclientcosmetics | ||
mod_name=SkyClientCosmetics | ||
mod_version=1.1.13 | ||
mod_version=1.1.14 | ||
mod_archives_name=SkyClientCosmetics | ||
|
||
org.gradle.jvmargs=-Xmx2G | ||
loom.platform = forge | ||
# Gradle Configuration -- DO NOT TOUCH THESE VALUES. | ||
polyfrost.defaults.loom=1 | ||
org.gradle.daemon=true | ||
org.gradle.parallel=true | ||
org.gradle.configureoncommand=true | ||
org.gradle.parallel.threads=4 | ||
org.gradle.jvmargs=-Xmx2G |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
distributionBase=GRADLE_USER_HOME | ||
distributionPath=wrapper/dists | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip | ||
zipStoreBase=GRADLE_USER_HOME | ||
zipStorePath=wrapper/dists |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
plugins { | ||
kotlin("jvm") version "1.9.10" apply false | ||
id("org.polyfrost.multi-version.root") | ||
id("com.github.johnrengelman.shadow") version "7.1.2" apply false | ||
} | ||
|
||
preprocess { | ||
"1.8.9-forge"(10809, "srg") { | ||
|
||
} | ||
} |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.