Skip to content

Commit

Permalink
feat: Restructure and add NeoForge
Browse files Browse the repository at this point in the history
  • Loading branch information
BlayTheNinth committed Dec 9, 2023
1 parent ac681fc commit ba72fd3
Show file tree
Hide file tree
Showing 34 changed files with 631 additions and 351 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ on:

jobs:
build:
uses: TwelveIterationMods/Workflows/.github/workflows/build.yml@main
uses: TwelveIterationMods/Workflows/.github/workflows/build.yml@v2
secrets: inherit
11 changes: 1 addition & 10 deletions .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,10 @@ on:
- major
- minor
- patch
type:
description: 'The type for this release'
required: true
type: choice
default: release
options:
- release
- beta
- alpha

jobs:
create-release:
uses: TwelveIterationMods/Workflows/.github/workflows/create-release.yml@main
uses: TwelveIterationMods/Workflows/.github/workflows/create-release.yml@v2
with:
bump: ${{ github.event.inputs.bump }}
secrets: inherit
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ on:

jobs:
publish:
uses: TwelveIterationMods/Workflows/.github/workflows/publish-release.yml@main
uses: TwelveIterationMods/Workflows/.github/workflows/publish-release.yml@v2
secrets: inherit
24 changes: 0 additions & 24 deletions .github/workflows/update-versions.yml

This file was deleted.

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ build
# other
eclipse
run
runs
runserver
logs

Expand Down
90 changes: 63 additions & 27 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,36 +1,38 @@
plugins {
id 'fabric-loom' version '1.2-SNAPSHOT' apply(false)
// id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' apply(false) // this causes ForgeGradle to fail in reobf
id "org.jetbrains.gradle.plugin.idea-ext" version "1.1.7" // this is required for VanillaGradle and NeoForge to exist in harmony
id 'org.spongepowered.mixin' version '0.7-SNAPSHOT' apply(false)
id 'net.darkhax.curseforgegradle' version '1.1.16' apply(false)
id "com.modrinth.minotaur" version "2.+" apply(false)
}

subprojects {
apply plugin: 'java'

java.toolchain.languageVersion = JavaLanguageVersion.of(java_version)
java.withSourcesJar()
java.withJavadocJar()

tasks.withType(GenerateModuleMetadata).tap {
configureEach {
enabled = false // Do not publish dependencies in pom
}
}

configurations {
testImplementation.extendsFrom compileOnly
}

jar {
from(rootProject.file("LICENSE")) {
rename { "${it}_${mod_id}" }
}
manifest {
attributes([
"Specification-Title" : mod_id,
"Specification-Vendor" : "BlayTheNinth",
"Specification-Version" : "1",
"Specification-Version" : project.jar.archiveVersion,
"Implementation-Title" : project.name,
"Implementation-Version" : project.jar.archiveVersion,
"Implementation-Vendor" : "BlayTheNinth",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
"Implementation-Vendor" : "BlayTheNinth"
])
if (forge_mixins.toBoolean()) {
attributes([
"MixinConfigs": mod_id + ".mixins.json"
])
}
}
}

sourcesJar {
from(rootProject.file("LICENSE")) {
rename { "${it}_${mod_id}" }
}
}

Expand All @@ -51,26 +53,60 @@ subprojects {
maven { url "https://maven.shedaniel.me/" }

// For JEI
maven { url "https://maven.blamejared.com/" }
maven { url "https://dvs1.progwml6.com/files/maven/" }

// For WTHIT
maven { url "https://maven.bai.lol" }

// For ModMenu
maven { url "https://maven.terraformersmc.com/releases/" }
}

tasks.withType(JavaCompile).configureEach {
it.options.encoding = 'UTF-8'
it.options.release = java_version as int
it.options.getRelease().set(java_version.toInteger())
}

tasks.withType(Javadoc).tap {
configureEach {
failOnError false
}
tasks.withType(Javadoc).configureEach {
failOnError false
}

if (balm_version.endsWith("SNAPSHOT")) {
configurations.configureEach {
resolutionStrategy.cacheChangingModulesFor 1, 'minutes'
processResources {
def expandProps = [
"version": version,
"group": project.group, //Else we target the task's group.
"minecraft_version": minecraft_version,
"forge_version": forge_version,
"forge_loader_version_range": forge_loader_version_range,
"forge_version_range": forge_version_range,
"minecraft_version_range": minecraft_version_range,
"fabric_version": fabric_version,
"fabric_loader_version": fabric_loader_version,
"mod_name": mod_name,
"mod_main": mod_main,
"mod_id": mod_id,
"homepage": homepage,
"issues": issues,
"sources": sources,
"license": license,
"description": project.description,
"neoforge_version": neoforge_version,
"neoforge_version_range": neoforge_version_range,
"neoforge_loader_version_range": neoforge_loader_version_range,
"balm_version_range": balm_version_range,
"pack_format_number": pack_format_number
]

filesMatching(['pack.mcmeta', 'fabric.mod.json', 'META-INF/mods.toml', '*.mixins.json']) {
expand expandProps
}
inputs.properties(expandProps)
}

// Disables Gradle's custom module metadata from being published to maven. The
// metadata includes mapped dependencies which are not reasonably consumable by
// other mod developers.
tasks.withType(GenerateModuleMetadata).configureEach {
enabled = false
}
}
77 changes: 32 additions & 45 deletions fabric/build.gradle
Original file line number Diff line number Diff line change
@@ -1,46 +1,43 @@
plugins {
id 'fabric-loom' version '1.2-SNAPSHOT'
id 'fabric-loom'
id 'maven-publish'
id 'idea'
id 'net.darkhax.curseforgegradle' version '1.0.14'
id "com.modrinth.minotaur" version "2.+"
id 'net.darkhax.curseforgegradle'
id "com.modrinth.minotaur"
}

group = mod_group
archivesBaseName = "${mod_id}-fabric-${minecraft_version}"
version = mod_version
base {
archivesName = "${mod_id}-fabric-${minecraft_version}"
}

dependencies {
minecraft "com.mojang:minecraft:${minecraft_version}"
mappings loom.officialMojangMappings()

modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}"
implementation project(":shared")

modImplementation("net.blay09.mods:balm-fabric:${balm_version}") {
transitive = false
changing = balm_version.endsWith("SNAPSHOT")
}

compileOnly "org.jetbrains:annotations:22.0.0"

modCompileOnly "mezz.jei:jei-$jei_minecraft_version-fabric-api:$jei_version"
if (jei_minecraft_version == minecraft_version) {
modRuntimeOnly "mezz.jei:jei-$jei_minecraft_version-fabric:$jei_version"
}

modCompileOnly("me.shedaniel:RoughlyEnoughItems-api:$rei_version") {
transitive = false
}
implementation project(":shared")

modCompileOnly "curse.maven:jade-324717:$jade_forge_version"
modCompileOnly "mcp.mobius.waila:wthit-api:mojmap-$wthit_version"
compileOnly "org.jetbrains:annotations:22.0.0"
}

apply from: 'dependencies.gradle'

loom {
if (project(":shared").file("src/main/resources/${mod_id}.accesswidener").exists()) {
accessWidenerPath.set(project(":shared").file("src/main/resources/${mod_id}.accesswidener"))
}

mixin {
defaultRefmapName.set("${mod_id}.refmap.json")
}

runs {
client {
client()
Expand All @@ -67,31 +64,20 @@ loom {
}
}

sourceSets {
main {
resources {
srcDirs 'src/generated/resources'
}
}
}

processResources {
from project(":shared").sourceSets.main.resources
inputs.property "version", project.version

filesMatching("fabric.mod.json") {
expand "version": project.version
}
}
sourceSets.main.resources.srcDir('src/generated/resources')

tasks.withType(JavaCompile) {
tasks.withType(JavaCompile).configureEach {
source(project(":shared").sourceSets.main.allSource)
}
tasks.withType(Javadoc).configureEach {
source(project(":shared").sourceSets.main.allJava)
}
tasks.named("sourcesJar", Jar) {
from(project(":shared").sourceSets.main.allSource)
}

jar {
from(rootProject.file("LICENSE")) {
rename { "${it}_${mod_id}" }
}
processResources {
from project(":shared").sourceSets.main.resources
}

publishing {
Expand Down Expand Up @@ -124,23 +110,24 @@ task curseforge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) {

def mainFile = upload(curseforge_fabric_project_id, file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar"))
mainFile.changelog = rootProject.file('CHANGELOG.md').text
mainFile.changelogType = "markdown"
mainFile.addRequirement("fabric-api")
mainFile.addRequirement("balm-fabric")
project.minecraft_versions.split(',').toList().each { mainFile.addGameVersion(it) }
mainFile.releaseType = release_type
mainFile.releaseType = "release"
}

modrinth {
token = project.findProperty("modrinth.token") ?: System.getenv("MODRINTH_TOKEN") ?: "none"
projectId = project.modrinth_fabric_project_id
versionType = project.release_type
projectId = project.modrinth_project_id
versionType = project.modrinth_release_type
versionNumber = project.version + "+fabric-" + project.minecraft_version
uploadFile = remapJar
changelog = rootProject.file("CHANGELOG.md").text
gameVersions = project.minecraft_versions.split(',').toList()
syncBodyFrom = rootProject.file("modrinth.md").text
syncBodyFrom = rootProject.file("modpage.md").text
loaders = ['fabric']
dependencies {
required.project "fabric-api"
required.project "balm"
}
}
8 changes: 7 additions & 1 deletion fabric/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,15 @@ repositories {
}

dependencies {
modCompileOnly "mezz.jei:jei-$jei_minecraft_version-common-api:$jei_version"
modCompileOnly group: 'info.journeymap', name: 'journeymap-api', version: project.journeymap_api_fabric_version, changing: true
// modRuntimeOnly "curse.maven:journeymap-${project.journeymap_project_id}:${project.journeymap_fabric_file_id}"

modRuntimeOnly "me.shedaniel.cloth:cloth-config-fabric:11.0.99"
modCompileOnly "com.terraformersmc:modmenu:$modmenu_version"
modCompileOnly "curse.maven:jade-324717:$jade_forge_version"
modCompileOnly "mcp.mobius.waila:wthit-api:mojmap-$wthit_version"

modCompileOnly("me.shedaniel:RoughlyEnoughItems-api:$rei_version") {
transitive = false
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.blay09.mods.waystones;
package net.blay09.mods.waystones.fabric;

import net.blay09.mods.balm.api.Balm;
import net.blay09.mods.waystones.Waystones;
import net.fabricmc.api.ModInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package net.blay09.mods.waystones.client;
package net.blay09.mods.waystones.fabric.client;

import net.blay09.mods.balm.api.client.BalmClient;
import net.blay09.mods.waystones.Waystones;
import net.blay09.mods.waystones.client.WaystonesClient;
import net.fabricmc.api.ClientModInitializer;

public class FabricWaystonesClient implements ClientModInitializer {
Expand Down
Loading

0 comments on commit ba72fd3

Please sign in to comment.