Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,22 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup JDK
- name: Setup JDK 21
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '21'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
uses: gradle/actions/setup-gradle@v4

- name: Build with Gradle Wrapper
run: chmod u+x gradlew && ./gradlew build
# This is needed to be able to run ./gradlew below
# You can run `git update-index --chmod +x gradlew` then remove this step.
- name: Make Gradle wrapper executable
run: chmod +x ./gradlew

- name: Build with Gradle
run: ./gradlew build

- name: Upload artifact
uses: actions/upload-artifact@v4
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,8 @@ build
# other
eclipse
run
runs
run-data
src/generated/resources/.cache/

repo
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,4 @@
## 📜 License
This project is licensed under the MIT License.
It also incorporates some source code from Applied Energistics 2, which is licensed under LGPL-3.0-or-later.
Many thanks to TeamAppliedEnergistics for developing such a wonderful mod.

Many thanks to TeamAppliedEnergistics for developing such a wonderful mod.
176 changes: 56 additions & 120 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,158 +1,94 @@
buildscript {
repositories {
// These repositories are only for Gradle plugins, put any other repositories in the repository block further below
maven { url = 'https://repo.spongepowered.org/repository/maven-public/' }
mavenCentral()
}
dependencies {
classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
}
}

plugins {
id 'eclipse'
id 'idea'
id 'java-library'
id 'maven-publish'
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
id 'net.neoforged.gradle.userdev' version '7.1.4'
}

apply plugin: 'org.spongepowered.mixin'
tasks.named('wrapper', Wrapper).configure {
distributionType = Wrapper.DistributionType.BIN
}

version = mod_version
group = mod_group_id

base {
archivesName = mod_id
repositories {
mavenCentral()
}

java.toolchain.languageVersion = JavaLanguageVersion.of(17)

println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}"
minecraft {
mappings channel: mapping_channel, version: mapping_version
copyIdeResources = true
// accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')

runs {
configureEach {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'

mods {
"${mod_id}" {
source sourceSets.main
}
}

property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
}

client {
property 'forge.enabledGameTestNamespaces', mod_id
}

server {
property 'forge.enabledGameTestNamespaces', mod_id
args '--nogui'
}

gameTestServer {
property 'forge.enabledGameTestNamespaces', mod_id
}

data {
workingDirectory project.file('run-data')
args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
}
}
base {
archivesName = mod_id
}

sourceSets.main.resources { srcDir 'src/generated/resources' }
java.toolchain.languageVersion = JavaLanguageVersion.of(21)

repositories {
// flatDir {
// dir 'libs'
// }

exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
forRepositories(fg.repository)
filter {
includeGroup "maven.modrinth"
}
runs {
configureEach {
systemProperty 'forge.logging.markers', 'REGISTRIES'
systemProperty 'forge.logging.console.level', 'debug'
modSource project.sourceSets.main
}

maven {
url "https://cursemaven.com"
content {
includeGroup "curse.maven"
}
client {
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
}
}

dependencies {
//noinspection VulnerableLibrariesLocal
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
server {
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
argument '--nogui'
}

implementation fg.deobf("maven.modrinth:guideme:$guideme_version")
implementation fg.deobf("maven.modrinth:ae2:$ae2_version")
runtimeOnly fg.deobf("maven.modrinth:refined-storage:$refined_storage_version")
gameTestServer {
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
}

runtimeOnly fg.deobf("curse.maven:glodium-957920:5226922")
runtimeOnly fg.deobf("curse.maven:applied-flux-965012:6755986")
data {
arguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
}
}

runtimeOnly fg.deobf("curse.maven:mekanism-268560:6552911")
runtimeOnly fg.deobf("curse.maven:applied-mekanistics-574300:4842281")
sourceSets.main.resources { srcDir 'src/generated/resources' }

runtimeOnly fg.deobf("curse.maven:catalogue-459701:4766090")
runtimeOnly fg.deobf("curse.maven:configured-457570:5180900")
configurations {
runtimeClasspath.extendsFrom localRuntime
}

mixin {
add sourceSets.main, "${mod_id}.refmap.json"
config "${mod_id}.mixins.json"
dependencies {
implementation "net.neoforged:neoforge:${neo_version}"
implementation "org.appliedenergistics:appliedenergistics2:${ae2_version}"
}

tasks.named('processResources', ProcessResources).configure {
tasks.withType(ProcessResources).configureEach {
var replaceProperties = [
minecraft_version: minecraft_version, minecraft_version_range: minecraft_version_range,
forge_version: forge_version, forge_version_range: forge_version_range,
loader_version_range: loader_version_range,
mod_id: mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version,
mod_authors: mod_authors, mod_description: mod_description, mod_url: mod_url,
ae2_version_range: ae2_version_range
minecraft_version : minecraft_version,
minecraft_version_range: minecraft_version_range,
neo_version : neo_version,
loader_version_range : loader_version_range,
mod_id : mod_id,
mod_name : mod_name,
mod_license : mod_license,
mod_version : mod_version,
mod_authors : mod_authors,
mod_description : mod_description,
ae2_version_range : ae2_version_range
]
inputs.properties replaceProperties

filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) {
expand replaceProperties + [project: project]
filesMatching(['META-INF/neoforge.mods.toml']) {
expand replaceProperties
}
}

tasks.named('jar', Jar).configure {
manifest {
attributes([
'Specification-Title' : mod_id,
'Specification-Vendor' : mod_authors,
'Specification-Version' : '1',
'Implementation-Title' : project.name,
'Implementation-Version' : project.jar.archiveVersion,
'Implementation-Vendor' : mod_authors,
'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
}
finalizedBy 'reobfJar'
archiveFileName = "${project.archivesBaseName}-forge-${minecraft_version}-v${project.version}.jar"
archiveFileName = "${mod_id}-neo-${minecraft_version}-v${project.version}.jar"
}

tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}

idea {
module {
downloadSources = true
downloadJavadoc = true
}
}
31 changes: 13 additions & 18 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,28 +1,23 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
org.gradle.jvmargs=-Xmx1G
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configuration-cache=false

## Environment Properties
minecraft_version=1.20.1
minecraft_version_range=[1.20.1,1.21)
forge_version=47.4.0
forge_version_range=[47,)
loader_version_range=[47,)
mapping_channel=official
mapping_version=1.20.1
neogradle.subsystems.parchment.minecraftVersion=1.21.1
neogradle.subsystems.parchment.mappingsVersion=2024.11.17
minecraft_version=1.21.1
minecraft_version_range=[1.21.1]
neo_version=21.1.215
loader_version_range=[1,)

## Mod Properties
# [a-z][a-z0-9_]{1,63}
mod_id=appliedsorting
mod_name=Applied Sorting
mod_license=MIT and LGPL-3.0-or-later (see NOTICE file for details)
mod_version=1.0.0
mod_group_id=io.github.meatwo310.appliedsorting
mod_authors=Meatwo310
mod_description=Enhances the AE2 terminal with configurable ID-based sorting.
mod_url=https://github.com/Meatwo310/applied-sorting/

## Dependency Properties
ae2_version=Zfyso1sP
ae2_version_range=[15.4.0,)
guideme_version=mfDRKud3
refined_storage_version=ZITLFjjf
ae2_version=19.2.17
ae2_version_range=[19,)
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,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading