Setup Gradle

This commit is contained in:
Ampflower 🌺 2025-03-10 03:06:39 -07:00
parent 9fb992f7af
commit aa372ee303
No known key found for this signature in database
GPG Key ID: FC0397C90D508D7F
15 changed files with 267 additions and 102 deletions

2
.gitattributes vendored
View File

@ -1 +1,3 @@
/gradlew text eol=lf
*.bat text eol=crlf
* text=auto

2
.gitignore vendored
View File

@ -41,5 +41,5 @@ replay_*.log
# custom
src/main/generated/.cache
src/main/generated
.local/

View File

@ -1,10 +1,19 @@
# Joy
Joy is a work in progress mod for Minecraft: Java Edition made by Pridecraft Studios.
## What's in it?
Currently, nothing, but we plan to add everything from PridePack, as their own things to go *with* the vanilla game instead of replacing them, along wtih a few exclusive features.
Currently, nothing, but we plan to add everything from PridePack, as their own things to go *with* the vanilla game
instead of replacing them, along wtih a few exclusive features.
## How do I get it?
You either compile it from source, like you would compile any other Fabric/Quilt mod, or you check on the releases tab for pre-releases.
You either compile it from source, like you would compile any other Fabric/Quilt mod, or you check on the releases tab
for pre-releases.
## When are you making this?
Sometime between ``December 31, 1969 9:00 PM`` and ``November 16, 5138 6:46 AM``
## Licensing

View File

@ -1,88 +1,22 @@
plugins {
java
id("fabric-loom") version "1.7-SNAPSHOT"
alias(libs.plugins.loom)
alias(libs.plugins.minotaur)
}
class ModInfo {
val id = property("mod.id").toString()
val group = property("mod.group").toString()
val version = property("mod.version").toString()
}
class Dependencies {
val minecraft = property("deps.minecraft").toString()
val loader = property("deps.loader").toString()
val yarn = property("deps.yarn").toString()
val fabricApi = property("deps.fabricapi").toString()
val mavApi = property("deps.mavapi").toString()
val midnightLib = property("deps.midnightlib").toString()
val badgesLib = property("deps.badgeslib").toString()
}
val mod = ModInfo()
val deps = Dependencies()
version = mod.version
group = mod.group
base.archivesName = "${mod.id}-${mod.version}"
val id: String by project
loom {
splitEnvironmentSourceSets()
mods.create(mod.id) {
sourceSet(sourceSets.getByName("main"))
sourceSet(sourceSets.getByName("client"))
}
}
repositories {
mavenCentral()
maven("https://maven.terraformersmc.com/")
maven("https://api.modrinth.com/maven")
maven("https://maven.bawnorton.com/releases")
}
fabricApi {
configureDataGeneration()
}
dependencies {
minecraft("com.mojang:minecraft:${deps.minecraft}")
mappings("net.fabricmc:yarn:${deps.yarn}:v2")
modImplementation("net.fabricmc:fabric-loader:${deps.loader}")
modImplementation("net.fabricmc.fabric-api:fabric-api:${deps.fabricApi}")
modImplementation("maven.modrinth:mavapi:${deps.mavApi}")
modImplementation("maven.modrinth:midnightlib:${deps.midnightLib}")
annotationProcessor("com.github.bawnorton.mixinsquared:mixinsquared-fabric:0.2.0")
include("com.github.bawnorton.mixinsquared:mixinsquared-fabric:0.2.0")
implementation("com.github.bawnorton.mixinsquared:mixinsquared-fabric:0.2.0")
include("maven.modrinth:modmenu-badges-lib:${deps.badgesLib}")
modImplementation("maven.modrinth:modmenu-badges-lib:${deps.badgesLib}")
}
tasks.processResources {
inputs.property("id", mod.id)
inputs.property("version", mod.version)
inputs.property("loader_version", deps.loader)
inputs.property("minecraft_version", deps.minecraft)
val map = mapOf(
"id" to mod.id,
"version" to mod.version,
"loader_version" to deps.loader,
"minecraft_version" to deps.minecraft
)
filesMatching("fabric.mod.json") { expand(map) }
}
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
options.release = 21
configureDataGeneration {
createSourceSet = true
strictValidation = true
modId = id
client = true
}
}
java {
@ -92,6 +26,62 @@ java {
targetCompatibility = JavaVersion.VERSION_21
}
tasks.withType<Jar> {
from("LICENSE") { rename { "${it}_${project.base.archivesName.get()}" } }
}
repositories {
mavenCentral()
maven("https://maven.neoforged.net/releases") { name = "Neoforged" }
maven("https://files.minecraftforge.net/maven/") { name = "Forge" }
maven("https://maven.quiltmc.org/repository/release") { name = "Quilt" }
maven("https://api.modrinth.com/maven") { name = "Modrinth" }
maven("https://maven.terraformersmc.com") { name = "TerraformersMC" }
maven("https://maven.ladysnake.org/releases") { name = "Ladysnake Libs" }
maven("https://maven.theillusivec4.top/") { name = "TheIllusiveC4" }
maven("https://maven.bawnorton.com/releases") { name = "Bawnorton" }
}
dependencies {
minecraft(libs.minecraft)
mappings(variantOf(libs.yarn) { classifier("v2") })
modImplementation(libs.bundles.fabric)
annotationProcessor(libs.mixin.squared)
include(libs.bundles.fabric.bundle)
modImplementation(libs.bundles.fabric.bundle)
modRuntimeOnly(libs.bundles.fabric.runtime)
}
tasks {
processResources {
val map = mapOf(
"id" to id,
"version" to version,
"java" to java.targetCompatibility.majorVersion,
"loader" to libs.versions.fabric.loader.get(),
"minecraftRequired" to libs.versions.minecraft.required.get(),
)
inputs.properties(map)
filesMatching(listOf("fabric.mod.json", "quilt.mod.json", "META-INF/mods.toml")) {
expand(map)
}
exclude("*/.editorconfig")
}
withType<JavaCompile> {
options.encoding = "UTF-8"
options.release = 21
}
withType<Jar> {
from("LICENSE*") {
rename { "${project.name}-${it}" }
}
}
"sourcesJar" {
dependsOn("runDatagen")
}
}

View File

@ -1,15 +1,8 @@
org.gradle.jvmargs=-Xmx2G
org.gradle.parallel=true
mod.version = 1.0.0
mod.group = gay.pridecraft
mod.id = joy
version = 1.0.0-alpha.1
group = gay.pridecraft
id = joy
deps.minecraft=1.21
deps.loader=0.16.5
deps.yarn=1.21+build.9
deps.fabricapi=0.104.0+1.21.1
deps.midnightlib=1.5.7-fabric
deps.mavapi=1.2.1
deps.badgeslib=2023.6.1

Binary file not shown.

View File

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

5
gradlew vendored
View File

@ -86,8 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@ -206,7 +205,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.

94
libs.versions.toml Normal file
View File

@ -0,0 +1,94 @@
[versions]
# Minecraft
minecraft-version = "1.21.1"
minecraft-required = "1.21.1"
minecraft-forge-compatible = "1.21.1"
minecraft-fabric-compatible = "1.21.1"
minecraft-neoforge-compatible = "1.21.1"
yarn = "1.21.1+build.3"
quilt-mappings = "1.21.1+build.9"
# Fabric
fabric-loader = "0.16.+"
fabric-api = "0.115.0+1.21.1"
# Forge
forge-loader = "1.21.1-52.1.0"
# Neoforged
neoforge-loader = "21.1.121"
# Mods
trinkets = "3.10.0"
curios = "5.9.1+1.20.1"
emi = "1.1.10+1.21"
mavapi = "1.2.1"
modmenu = "11.0.3"
modmenu-badges = "2023.6.1"
midnight-fabric = "1.6.9+1.21-fabric"
midnight-neoforge = "1.6.9+1.21-neoforge"
# Libraries
annotations = "23.+"
mixin = "0.15.0+mixin.0.8.7"
mixin-squared = "0.2.0"
testng = "7.5.1"
# Plugins
loom = "1.+"
minotaur = "2.+"
[libraries]
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft-version" }
yarn = { module = "net.fabricmc:yarn", version.ref = "yarn" }
quilt-mappings = { module = "org.quiltmc:quilt-mappings", version.ref = "quilt-mappings" }
fabric-loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric-loader" }
fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-api" }
forge-loader = { module = "net.minecraftforge:forge", version.ref = "forge-loader" }
neoforge-loader = { module = "net.neoforged:neoforge", version.ref = "neoforge-loader" }
trinkets = { module = "dev.emi:trinkets", version.ref = "trinkets" }
curios = { module = "top.theillusivec4.curios:curios-forge", version.ref = "curios" }
emi = { module = "dev.emi:emi-xplat-intermediary", version.ref = "emi" }
emi-fabric = { module = "dev.emi:emi-fabric", version.ref = "emi" }
emi-forge = { module = "dev.emi:emi-forge", version.ref = "emi" }
emi-neoforge = { module = "dev.emi:emi-neoforge", version.ref = "emi" }
mavapi = { module = "maven.modrinth:mavapi", version.ref = "mavapi"}
modmenu = { module = "maven.modrinth:modmenu", version.ref = "modmenu" }
modmenu-badges = { module = "maven.modrinth:modmenu-badges-lib", version.ref = "modmenu-badges" }
midnight-fabric = { module = "maven.modrinth:midnightlib", version.ref = "midnight-fabric" }
midnight-neoforge = { module = "maven.modrinth:midnightlib", version.ref = "midnight-neoforge" }
annotations = { module = "org.jetbrains:annotations", version.ref = "annotations" }
mixin = { module = "net.fabricmc:sponge-mixin", version.ref = "mixin" }
mixin-squared = { module = "com.github.bawnorton.mixinsquared:mixinsquared-fabric", version.ref = "mixin-squared" }
testng = { module = "org.testng:testng", version.ref = "testng" }
[bundles]
fabric = ["fabric-loader", "fabric-api", "trinkets", "mavapi", "midnight-fabric"]
fabric-bundle = ["mixin-squared", "modmenu-badges"]
fabric-runtime = ["emi-fabric", "modmenu"]
forge = ["curios"]
forge-runtime = []
neoforge = []
neoforge-runtime = ["emi-neoforge"]
compile-only = ["annotations"]
[plugins]
loom = { id = "dev.architectury.loom", version.ref = "loom" }
minotaur = { id = "com.modrinth.minotaur", version.ref = "minotaur" }

View File

@ -1,7 +1,20 @@
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("libs.versions.toml"))
}
}
}
pluginManagement {
repositories {
maven("https://maven.fabricmc.net/")
maven("https://maven.fabricmc.net/") { name = "Fabric" }
maven("https://maven.architectury.dev/") { name = "Architectury" }
maven("https://maven.neoforged.net/releases") { name = "Neoforged" }
maven("https://files.minecraftforge.net/maven/") { name = "Forge" }
mavenCentral()
gradlePluginPortal()
}
}
}
rootProject.name = "joy"

View File

@ -0,0 +1,27 @@
package gay.pridecraft.joy;
import com.mojang.logging.LogUtils;
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
import net.minecraft.Bootstrap;
import net.minecraft.SharedConstants;
import org.slf4j.Logger;
/**
* @author Ampflower
* @since 1.0.0
**/
public class JoyData implements DataGeneratorEntrypoint {
private static final Logger logger = LogUtils.getLogger();
@Override
public void onInitializeDataGenerator(final FabricDataGenerator fabricDataGenerator) {
SharedConstants.isDevelopment = true;
final var pack = fabricDataGenerator.createPack();
for (final var translation : Bootstrap.getMissingTranslations()) {
logger.warn("Missing translation: {}", translation);
}
}
}

View File

@ -0,0 +1,20 @@
{
"schemaVersion": 1,
"id": "${id}",
"name": "Joy Datagen",
"version": "${version}",
"entrypoints": {
"main": [
"gay.pridecraft.joy.Joy"
],
"client": [
"gay.pridecraft.joy.JoyClient"
],
"fabric-datagen": [
"gay.pridecraft.joy.JoyData"
]
},
"mixins": [
"joy-data.mixin.json"
]
}

View File

@ -0,0 +1,15 @@
{
"required": true,
"minVersion": "0.8",
"package": "gay.pridecraft.joy.data.mixin",
"refmap": "joy.refmap.json",
"compatibilityLevel": "JAVA_21",
"mixins": [
],
"injectors": {
"defaultRequire": 1
},
"overwrites": {
"conformVisibility": true
}
}

View File

@ -50,11 +50,11 @@
}
],
"depends": {
"fabricloader": ">=${loader_version}",
"minecraft": "~${minecraft_version}",
"java": ">=21",
"fabricloader": "*",
"minecraft": "${minecraftRequired}",
"java": "${java}",
"fabric-api": "*",
"midnightlib": ">=1.5.3-fabric",
"mavapi": ">=1.2.1"
"midnightlib": "*",
"mavapi": "*"
}
}

View File

@ -10,5 +10,8 @@
],
"injectors": {
"defaultRequire": 1
},
"overwrites": {
"conformVisibility": true
}
}