Skip to content

Commit

Permalink
1.20.2 port
Browse files Browse the repository at this point in the history
  • Loading branch information
luxtracon committed Jun 1, 2024
1 parent 288fe9b commit a26a216
Show file tree
Hide file tree
Showing 498 changed files with 1,640 additions and 1,530 deletions.
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
# Disable autocrlf on generated files, they always generate with LF
# Add any extra files or paths here to make git stop saying they
# are changed when only line endings change.
src/generated/**/.cache/cache text eol=lf
src/generated/**/*.json text eol=lf
24 changes: 24 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Build

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1000
fetch-tags: true

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

- name: Build with Gradle
uses: gradle/gradle-build-action@v2
with:
arguments: build
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ build
# other
eclipse
run
runs
run-data

# Files from Forge MDK
forge*changelog.txt
repo
230 changes: 126 additions & 104 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,127 +1,149 @@
apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'org.parchmentmc.librarian.forgegradle'
apply plugin: 'org.spongepowered.mixin'

archivesBaseName = 'floralis'
group = 'com.luxtracon.floralis'
version = "${minecraft}-${floralis}"

java.toolchain.languageVersion = JavaLanguageVersion.of(17)
plugins {
id 'java-library'
id 'eclipse'
id 'idea'
id 'maven-publish'
id 'net.neoforged.gradle.userdev' version '7.0.116'
}

buildscript {
repositories {
maven {
url 'https://maven.minecraftforge.net'
}
version = mod_version
group = mod_group_id

maven {
url 'https://maven.parchmentmc.org'
}
repositories {
mavenLocal()

maven {
url 'https://repo.spongepowered.org/repository/maven-public/'
maven {
url "https://www.cursemaven.com"
content {
includeGroup "curse.maven"
}
}

dependencies {
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
classpath 'org.parchmentmc:librarian:1.+'
classpath group: 'org.spongepowered', name: 'mixingradle', version: '0.7-SNAPSHOT'
}
}

dependencies {
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
implementation fg.deobf("curse.maven:cofh-core-69162:${cofhcore}")
implementation fg.deobf("curse.maven:create-328085:${create}")
implementation fg.deobf("curse.maven:ender-io-64578:${enderio}")
implementation fg.deobf("curse.maven:immersive-engineering-231951:${immersiveengineering}")
implementation fg.deobf("curse.maven:industrial-foregoing-266515:${industrialforegoing}")
implementation fg.deobf("curse.maven:jade-324717:${jade}")
implementation fg.deobf("curse.maven:jei-238222:${jei}")
implementation fg.deobf("curse.maven:mekanism-268560:${mekanism}")
implementation fg.deobf("curse.maven:patchouli-306770:${patchouli}")
implementation fg.deobf("curse.maven:thermal-cultivation-271835:${thermalcultivation}")
implementation fg.deobf("curse.maven:thermal-dynamics-227443:${thermaldynamics}")
implementation fg.deobf("curse.maven:thermal-expansion-69163:${thermalexpansion}")
implementation fg.deobf("curse.maven:thermal-foundation-222880:${thermalfoundation}")
implementation fg.deobf("curse.maven:thermal-innovation-291737:${thermalinnovation}")
implementation fg.deobf("curse.maven:thermal-integration-626708:${thermalintegration}")
implementation fg.deobf("curse.maven:thermal-locomotion-406959:${thermallocomotion}")
implementation fg.deobf("curse.maven:titanium-287342:${titanium}")
minecraft "net.minecraftforge:forge:${minecraft}-${forge}"
base {
archivesName = mod_id
}

jar {
manifest {
attributes([
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
"Implementation-Title" : project.name,
"Implementation-Vendor" : "luxtracon",
"Implementation-Version" : project.version,
"Specification-Title" : "floralis",
"Specification-Vendor" : "luxtracon",
"Specification-Version" : "${minecraft}-${floralis}"
])
}
}
// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17.
java.toolchain.languageVersion = JavaLanguageVersion.of(17)

jar.finalizedBy('reobfJar')
minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg')

// Default run configurations.
// These can be tweaked, removed, or duplicated as needed.
runs {
// applies to all the run configs below
configureEach {
// Recommended logging data for a userdev environment
// The markers can be added/remove as needed separated by commas.
// "SCAN": For mods scan.
// "REGISTRIES": For firing of registry events.
// "REGISTRYDUMP": For getting the contents of all registries.
systemProperty 'forge.logging.markers', 'REGISTRIES'

// Recommended logging level for the console
// You can set various levels here.
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
systemProperty 'forge.logging.console.level', 'debug'

modSource project.sourceSets.main
}

minecraft {
mappings channel: 'parchment', version: "${parchment}-${minecraft}"
client {
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
}

accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
server {
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
programArgument '--nogui'
}

runs {
client {
mods {
floralis {
source sourceSets.main
}
}
property 'forge.logging.console.level', 'debug'
property 'forge.logging.markers', 'REGISTRIES'
workingDirectory project.file('run')
}
// This run config launches GameTestServer and runs all registered gametests, then exits.
// By default, the server will crash when no gametests are provided.
// The gametest system is also enabled by default for other run configs under the /test command.
gameTestServer {
systemProperty 'forge.enabledGameTestNamespaces', project.mod_id
}

data {
mods {
floralis {
source sourceSets.main
}
}
args '--mod', 'floralis', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
property 'forge.logging.console.level', 'debug'
property 'forge.logging.markers', 'REGISTRIES'
workingDirectory project.file('run')
}
data {
// example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it
// workingDirectory project.file('run-data')

server {
mods {
floralis {
source sourceSets.main
}
property 'forge.logging.console.level', 'debug'
property 'forge.logging.markers', 'REGISTRIES'
workingDirectory project.file('run')
}
}
// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
}
}

mixin {
add sourceSets.main, "floralis.refmap.json"
config "floralis.mixins.json"
// Include resources generated by data generators.
sourceSets.main.resources { srcDir 'src/generated/resources' }

dependencies {
// Specify the version of Minecraft to use.
// Depending on the plugin applied there are several options. We will assume you applied the userdev plugin as shown above.
// The group for userdev is net.neoforged, the module name is neoforge, and the version is the same as the neoforge version.
// You can however also use the vanilla plugin (net.neoforged.gradle.vanilla) to use a version of Minecraft without the neoforge loader.
// And its provides the option to then use net.minecraft as the group, and one of; client, server or joined as the module name, plus the game version as version.
// For all intends and purposes: You can treat this dependency as if it is a normal library you would use.
implementation "net.neoforged:neoforge:${neo_version}"

implementation "curse.maven:jade-324717:${jade_version}"

// Example mod dependency with JEI
// The JEI API is declared for compile time use, while the full JEI artifact is used at runtime
// compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}"
// compileOnly "mezz.jei:jei-${mc_version}-forge-api:${jei_version}"
// runtimeOnly "mezz.jei:jei-${mc_version}-forge:${jei_version}"

// Example mod dependency using a mod jar from ./libs with a flat dir repository
// This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar
// The group id is ignored when searching -- in this case, it is "blank"
// implementation "blank:coolmod-${mc_version}:${coolmod_version}"

// Example mod dependency using a file as dependency
// implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar")

// Example project dependency using a sister or child project:
// implementation project(":myproject")

// For more info:
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
// http://www.gradle.org/docs/current/userguide/dependency_management.html
}

repositories {
maven {
name 'cursemaven'
url "https://www.cursemaven.com"
// This block of code expands all declared replace properties in the specified resource targets.
// A missing property will result in an error. Properties are expanded using ${} Groovy notation.
// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments.
// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html
tasks.withType(ProcessResources).configureEach {
var replaceProperties = [
minecraft_version : minecraft_version, minecraft_version_range: minecraft_version_range,
neo_version : neo_version, neo_version_range: neo_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, pack_format_number: pack_format_number,
]
inputs.properties replaceProperties

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

// Example configuration to allow publishing using the maven-publish plugin
publishing {
publications {
register('mavenJava', MavenPublication) {
from components.java
}
}
repositories {
maven {
url "file://${project.projectDir}/repo"
}
}
}

sourceSets.main.resources {
srcDir 'src/generated/resources'
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
}
67 changes: 45 additions & 22 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,25 +1,48 @@
org.gradle.jvmargs=-Xmx4G
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
#org.gradle.jvmargs=
org.gradle.daemon=false
org.gradle.debug=false

floralis=10.6.0
forge=47.2.32
minecraft=1.20.1
parchment=2023.09.03
## Environment Properties

cofhcore=4970669
create=4835191
enderio=5171872
immersiveengineering=5224387
industrialforegoing=5355551
jade=5339264
jei=5101366
mekanism=5125665
patchouli=4966125
thermalcultivation=4970697
thermaldynamics=4970699
thermalexpansion=4970700
thermalfoundation=4979840
thermalinnovation=4970704
thermalintegration=4970705
thermallocomotion=4970706
titanium=4984333
# Read more on this at https://github.com/neoforged/NeoGradle/blob/NG_7.0/README.md#apply-parchment-mappings
# You can find the latest versions here: https://parchmentmc.org/docs/getting-started
neogradle.subsystems.parchment.minecraftVersion=1.20.2
neogradle.subsystems.parchment.mappingsVersion=2023.12.10

# The Minecraft version must agree with the Neo version to get a valid artifact
minecraft_version=1.20.2
# The Minecraft version range can use any release version of Minecraft as bounds.
# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly
# as they do not follow standard versioning conventions.
minecraft_version_range=[1.20.2,1.21)
# The Neo version must agree with the Minecraft version to get a valid artifact
neo_version=20.2.88
# The Neo version range can use any version of Neo as bounds or match the loader version range
neo_version_range=[20.2,)
# The loader version range can only use the major version of Neo/FML as bounds
loader_version_range=[1,)

jade_version=4979237

## Mod Properties

# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63}
# Must match the String constant located in the main mod class annotated with @Mod.
mod_id=floralis
# The human-readable display name for the mod.
mod_name=Floralis
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=MIT License
# The mod version. See https://semver.org/
mod_version=11.0.0
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
mod_group_id=com.luxtracon.floralis
# The authors of the mod. This is a simple text string that is used for display purposes in the mod list.
mod_authors=luxtracon
# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list.
mod_description=Floralis adds farmable cacti and flowers for an automatable way to obtain all dyes.
# Pack version - this changes each minecraft release, in general.
pack_format_number=18
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-7.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit a26a216

Please sign in to comment.