Skip to content
Open
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,11 @@ build
# other
eclipse
run
runs
run-data

# Files from Forge MDK
forge*changelog.txt
repo

# Project
secrets.properties
**/.cache
**/.cache
140 changes: 72 additions & 68 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,69 +1,61 @@
plugins {
id 'java'
id 'java-library'
id 'idea'
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
id 'maven-publish'
id 'net.neoforged.gradle.userdev' version '7.0.163'
id 'com.matthewprenger.cursegradle' version '1.4.0'
}

apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'org.parchmentmc.librarian.forgegradle'
apply plugin: 'maven-publish'

version = "$minecraft_version-$mod_version"
group = 'com.smashingmods'
archivesBaseName = 'chemlib'

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

minecraft {
mappings channel: mapping_channel, version: "$mapping_version-1.20.1"
copyIdeResources = true
runs {
client {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
jvmArgs '-XX:+AllowEnhancedClassRedefinition'

mods {
chemlib {
source sourceSets.main
}
}
}
base {
archivesName = 'chemlib'
}

server {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
jvmArgs '-XX:+AllowEnhancedClassRedefinition'
java.toolchain.languageVersion = JavaLanguageVersion.of(21)

mods {
chemlib {
source sourceSets.main
}
}
}
//minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg')
//minecraft.accessTransformers.entry public net.minecraft.client.Minecraft textureManager # textureManager

data {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
jvmArgs '-XX:+AllowEnhancedClassRedefinition'
args '--mod', "$archivesBaseName", '--all', '--output', file('src/generated/resources'), '--existing', file('src/main/resources')

mods {
chemlib {
source sourceSets.main
}
}
runs {
configureEach { net.neoforged.gradle.dsl.common.runs.run.Run run ->
systemProperty 'forge.logging.markers', 'REGISTRIES'

systemProperty 'forge.logging.console.level', 'debug'

if (run.project.javaToolchains.launcherFor(java.toolchain).map { it.metadata.vendor }.getOrElse("").contains("JetBrains")) {
run.jvmArgument("-XX:+AllowEnhancedClassRedefinition")
}

modSource project.sourceSets.main
}

client {
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
systemProperty 'forge.enabledGameTestNamespaces', "${mod_id}"
}

server {
systemProperty 'forge.enabledGameTestNamespaces', "${mod_id}"
programArgument '--nogui'
}

gameTestServer {
systemProperty 'forge.enabledGameTestNamespaces', "${mod_id}"
}

data {
// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
programArguments.addAll '--mod', "${mod_id}", '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
}
}

sourceSets.main.resources { srcDir 'src/generated/resources' }

configurations {
runtimeClasspath.extendsFrom localRuntime
}

repositories {
maven { url "https://maven.blamejared.com/" }
maven {
Expand All @@ -75,32 +67,38 @@ repositories {
}

dependencies {
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
implementation fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")
runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")
implementation "net.neoforged:neoforge:${neo_version}"

compileOnly "mezz.jei:jei-${minecraft_version}-common-api:${jei_version}"
compileOnly "mezz.jei:jei-${minecraft_version}-neoforge-api:${jei_version}"
localRuntime "mezz.jei:jei-${minecraft_version}-neoforge:${jei_version}"
}

def resourceTargets = ['META-INF/mods.toml', 'pack.mcmeta']
def 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
]
processResources {
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
]
inputs.properties replaceProperties
replaceProperties.put 'project', project

filesMatching(resourceTargets) {
filesMatching(['META-INF/neoforge.mods.toml']) {
expand replaceProperties
}
}

jar {
manifest {
attributes([
"Specification-Title" : "$archivesBaseName",
"Specification-Title" : "${mod_id}",
"Specification-Vendor" : "SmashingMods",
"Specification-Version" : "1",
"Implementation-Title" : project.name,
Expand All @@ -125,16 +123,14 @@ fileTree("secrets").matching {
}
}

jar.finalizedBy('reobfJar')

java {
withSourcesJar()
withJavadocJar()
}

publishing {
publications {
mavenJava(MavenPublication) {
register('mavenJava', MavenPublication) {
afterEvaluate {
artifact project.jar
artifact project.sourcesJar
Expand Down Expand Up @@ -176,4 +172,12 @@ curseforge {

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

// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior.
idea {
module {
downloadSources = true
downloadJavadoc = true
}
}
20 changes: 11 additions & 9 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.jvmargs=-Xmx1G
org.gradle.daemon=false
org.gradle.debug=false

minecraft_version=1.20.1
minecraft_version_range=[1.20,1.21)
forge_version=47.1.3
forge_version_range=[47,)
loader_version_range=[47,)
mapping_channel=parchment
mapping_version=2023.09.03
minecraft_version=1.21.1
minecraft_version_range=[1.21.1,1.22)
neo_version=21.1.47
neo_version_range=[21,)
loader_version_range=[4,)
neogradle.subsystems.parchment.minecraftVersion=1.21
neogradle.subsystems.parchment.mappingsVersion=2024.07.28
neogradle.subsystems.conventions.runs.create-default-run-per-type=false

mod_id=chemlib
mod_name=ChemLib
Expand All @@ -17,4 +19,4 @@ mod_group_id=com.smashingmods.chemlib
mod_authors=DarkArcana
mod_description=ChemLib provides all of the elements of the periodic table and many compounds of those elements. It also includes some items based on the elements and compounds such as ingots and lamps.\nCredits:\n- Andrea Hazard, creator of 'Enhanced Bohr Model' images. Their work is shared under the Creative Commons Attribution-Share Alike 4.0 International license. Read more about the license here: https://creativecommons.org/licenses/by-sa/4.0/deed.en

jei_version=15.2.0.22
jei_version=19.18.3.205
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.1.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
31 changes: 18 additions & 13 deletions gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 10 additions & 10 deletions gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 6 additions & 4 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
pluginManagement {
repositories {
gradlePluginPortal()
maven { url = 'https://files.minecraftforge.net/maven' }
maven { url = 'https://maven.parchmentmc.org' }
maven {
name = 'Official NeoForge Maven'
url = 'https://maven.neoforged.net/releases'
}
}
}

plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0'
}
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0'
}
Loading