Skip to content

Commit

Permalink
1.20.0 & neo
Browse files Browse the repository at this point in the history
  • Loading branch information
Sunekaer committed Jan 5, 2024
1 parent 40abd1e commit b461de6
Show file tree
Hide file tree
Showing 22 changed files with 426 additions and 78 deletions.
1 change: 0 additions & 1 deletion .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ jobs:
java-version: 17
changelog-file: "./CHANGELOG.md"
release-to-github: false
release-files: "./build/libs/*.jar"
secrets:
nanite-token: ${{ secrets.NANITE_DEPLOY }}
curse-token: ${{ secrets.CURSE_DEPLOY }}
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Changelog

- Updated CI / Build Script
Update to 1.20.2 & NeoForge
123 changes: 58 additions & 65 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,84 +1,63 @@
plugins {
id "dev.architectury.loom" version "0.12.0-SNAPSHOT"
id 'maven-publish'
id "me.modmuss50.mod-publish-plugin" version "0.3.0"
id "architectury-plugin" version "3.4.151"
id "dev.architectury.loom" version "1.4.373" apply false
id "me.modmuss50.mod-publish-plugin" version "0.4.5"
}

sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17

def ENV = System.getenv()
version = "${mod_version}-build.${ENV.GITHUB_RUN_NUMBER ?: 9999}+mc${minecraft_version}"
group = 'com.sunekaer.mods'
archivesBaseName = 'Mute'
architectury {
minecraft = rootProject.minecraft_version
}

loom {
silentMojangMappingsLicense()
subprojects {
apply plugin: "dev.architectury.loom"
apply plugin: "maven-publish"

forge {
mixinConfigs = [
]
loom {
silentMojangMappingsLicense()
}

dataGen {
mod "toolkit"
}
dependencies {
minecraft "com.mojang:minecraft:${rootProject.minecraft_version}"
// The following line declares the mojmap mappings, you may use other mappings as well
mappings loom.officialMojangMappings()
// The following line declares the yarn mappings you may select this one as well.
// mappings "net.fabricmc:yarn:1.20.1+build.10:v2"
}

launches {
data {
arg "--existing", file("src/main/resources").absolutePath
publishing {
repositories {
if (providers.environmentVariable("NANITE_TOKEN").isPresent()) {
maven {
url "https://maven.nanite.dev/releases"
credentials {
username = "nanite"
password = providers.environmentVariable("NANITE_TOKEN").get()
}
}
}
}
}
}

dependencies {
minecraft "com.mojang:minecraft:${project.minecraft_version}"
forge "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
allprojects {
apply plugin: "java"
apply plugin: "architectury-plugin"
apply plugin: "maven-publish"

mappings loom.layered() {
officialMojangMappings()
}
}
archivesBaseName = rootProject.archives_base_name
version = rootProject.mod_version
group = rootProject.maven_group

jar {
from("LICENSE") {
rename { "${it}_${project.archivesBaseName}" }
repositories {
}

manifest {
attributes([
"Specification-Title" : "mute",
"Specification-Vendor" : "Sunekaer",
"Specification-Version" : "1", // We are version 1 of ourselves
"Implementation-Title" : project.name,
"Implementation-Version" : "${version}",
"Implementation-Vendor" : "Sunekaer",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
options.release = 17
}
}

java {
withSourcesJar()
}

publishing {
publications {
mavenForge(MavenPublication) {
artifactId = rootProject.archives_base_name + "-" + project.name
from components.java
}
}

repositories {
if (providers.environmentVariable("NANITE_TOKEN").orNull) {
maven {
url "${maven_url}/releases"
credentials {
username = "nanite"
password = providers.environmentVariable("NANITE_TOKEN").get()
}
}
}
java {
withSourcesJar()
}
}

Expand All @@ -89,11 +68,17 @@ publishMods {
type = STABLE

def forgeOptions = publishOptions {
file = project.provider { project.tasks.remapJar }.flatMap { it.archiveFile }
displayName = "${project.name} Forge ${mod_version}+mc${minecraft_version}"
file = project.provider { project(":forge").tasks.remapJar }.flatMap { it.archiveFile }
displayName = "[FORGE][${minecraft_version}] ${project.name} ${mod_version}"
modLoaders.add("forge")
}

def neoForge = publishOptions {
file = project.provider { project(":neoforge").tasks.remapJar }.flatMap { it.archiveFile }
displayName = "[NEOFORGE][${minecraft_version}] ${project.name} ${mod_version}"
modLoaders.add("neoforge")
}

def curseForgeOptions = curseforgeOptions {
accessToken = providers.environmentVariable("CURSE_TOKEN")
projectId = "${curseforge_id}"
Expand All @@ -110,9 +95,17 @@ publishMods {
from(curseForgeOptions, forgeOptions)
}

curseforge("curseforgeNeoForge") {
from(curseForgeOptions, neoForge)
}

if (providers.environmentVariable("MODRINTH_TOKEN").getOrNull() != null) {
modrinth("modrinthForge") {
from(modrinthOptions, forgeOptions)
}

modrinth("modrinthNeoforge") {
from(modrinthOptions, neoForge)
}
}
}
26 changes: 26 additions & 0 deletions common/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
architectury {
common(rootProject.enabled_platforms.split(","))
}

loom {
// accessWidenerPath = file("src/main/resources/mute.accesswidener")
}

// sourceSets.main.resources.srcDirs += file("src/generated/resources")

dependencies {
// We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies
// Do NOT use other classes from fabric loader
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
// Remove the next line if you don't want to depend on the API
modApi "dev.architectury:architectury:${rootProject.architectury_version}"
}

publishing {
publications {
mavenCommon(MavenPublication) {
artifactId = "${rootProject.archivesBaseName}-${project.name}"
from components.java
}
}
}
95 changes: 95 additions & 0 deletions forge/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
plugins {
id "com.github.johnrengelman.shadow" version "7.1.2"
}

architectury {
platformSetupLoomIde()
forge()
}

repositories {
maven {
url "https://maven.minecraftforge.net/releases"
}
}

loom {
accessWidenerPath = project(":common").loom.accessWidenerPath

runs {

}

forge {
convertAccessWideners = true
// extraAccessWideners.add loom.accessWidenerPath.get().asFile.name

}
}

configurations {
common
shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this.
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentForge.extendsFrom common
}

dependencies {
forge "net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_version}"
// Remove the next line if you don't want to depend on the API
modApi "dev.architectury:architectury-forge:${rootProject.architectury_version}"


common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false }
}

processResources {
duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
inputs.property "version", project.version

filesMatching("META-INF/mods.toml") {
expand "version": project.version
}
}

shadowJar {
exclude "fabric.mod.json"
exclude "architectury.common.json"

configurations = [project.configurations.shadowCommon]
setArchiveClassifier "dev-shadow"
}

remapJar {
input.set shadowJar.archiveFile
dependsOn shadowJar
setArchiveClassifier null
setArchivesBaseName("${rootProject.archivesBaseName}-${project.name}") // adds fabric to the maven and curse name
}

jar {
setArchiveClassifier "dev"
}

sourcesJar {
def commonSources = project(":common").sourcesJar
dependsOn commonSources
from commonSources.archiveFile.map { zipTree(it) }
}

components.java {
withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) {
skip()
}
}

publishing {
publications {
mavenForge(MavenPublication) {
artifactId = "${rootProject.archivesBaseName}-${project.name}"
from components.java
}
}
}
1 change: 1 addition & 0 deletions forge/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
loom.platform=forge
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
modLoader="javafml" #mandatory
loaderVersion="[40,)" #mandatory
loaderVersion="[48,)" #mandatory
license = "All Rights Reserved"

[[mods]] #mandatory
modId="mute" #mandatory
version="${file.jarVersion}" #mandatory
version = "${version}" #mandatory
displayName="Mute" #mandatory
authors="Sunekaer" #optional
description='''
Mutes sounds in the game based on config.
'''

[[dependencies.mute]]
modId="forge"
mandatory=true
versionRange="[40,)"
versionRange="[48,)"
ordering="NONE"
side="BOTH"

[[dependencies.mute]]
modId="minecraft"
mandatory=true
versionRange="[1.18,)"
versionRange="[1.20.2,)"
ordering="NONE"
side="BOTH"
File renamed without changes.
30 changes: 25 additions & 5 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,33 @@
# This is required to provide enough memory for the Minecraft decompilation process.
org.gradle.jvmargs=-Xmx4G
org.gradle.daemon=false
loom.platform=forge
mod_version=2.0.1
minecraft_version=1.20.1
forge_version=47.0.4

enabled_platforms=neoforge,forge

mod_version=82.0.0

# Dependencies for 1.20.2
minecraft_version=1.20.2

# ForgeGradle
forge_gradle_version=6.0.18
# NeoForgeGradle
neoforge_gradle_version=7.0.80
# Mod loaders
# NeoForge
neoforge_version=20.2.88
# Forge
forge_version=48.1.0

fabric_loader_version=0.15.3
fabric_api_version=0.91.2+1.20.2

# Architectury
architectury_version=10.0.17

archives_base_name=mute
maven_group=com.sunekaer.mods

# Publishing
curseforge_id=625183
modrinth_id=DqmgBVPB
maven_url=https://maven.nanite.dev/
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 2 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
Loading

0 comments on commit b461de6

Please sign in to comment.