Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
577894b
switch to multiloader setup
PssbleTrngle Nov 1, 2025
5480237
fix syntax errors & re-run datagen
PssbleTrngle Nov 1, 2025
8de3499
add conditions to vigil candle recipes
PssbleTrngle Nov 1, 2025
294fb8e
run spottless
PssbleTrngle Nov 1, 2025
77b961e
ported more to common
MehVahdJukaar Nov 2, 2025
22b26bc
amendments stuff
MehVahdJukaar Nov 2, 2025
9529311
amendments stuff 2
MehVahdJukaar Nov 2, 2025
c21f672
ML add_item
MehVahdJukaar Nov 2, 2025
7a3285c
sepulchered
MehVahdJukaar Nov 2, 2025
7bdd3ef
gradle lines
MehVahdJukaar Nov 2, 2025
769520e
why generics
MehVahdJukaar Nov 3, 2025
1aebbf5
render layers
MehVahdJukaar Nov 3, 2025
887be25
spawn egg
MehVahdJukaar Nov 3, 2025
6ed4874
update plugin & modify some datagen
PssbleTrngle Nov 3, 2025
1c43b03
renamed files that were still using the oreganized prefix instead of DG
PssbleTrngle Nov 3, 2025
8a8a925
split datagen into own sourceset
PssbleTrngle Nov 3, 2025
924d238
re-stage idea icon
PssbleTrngle Nov 4, 2025
dc19158
cancel drops on forge & re-add missing translations
PssbleTrngle Nov 4, 2025
3ea45af
use oreganized lead item tier for hammer & enchanted item listings
PssbleTrngle Nov 4, 2025
443ef7f
fix item listing levels & add pathfinding debug renderer
PssbleTrngle Nov 4, 2025
4645ce8
directly call client init using platform helper
PssbleTrngle Nov 4, 2025
cce061d
move client methods to DoomAndGloomClient to fix server startup crashes
PssbleTrngle Nov 4, 2025
a83d82d
update fallback-able recipes to work on both fabric & forge
PssbleTrngle Nov 4, 2025
1263dbf
fix creative tab contents, always create vigil candles for all colors…
PssbleTrngle Nov 4, 2025
88cbd90
always use c namespace in datagen and reference forge tags there
PssbleTrngle Nov 4, 2025
39c2b99
add fallback recipes
PssbleTrngle Nov 4, 2025
20a42fe
call client setup on fabric
PssbleTrngle Nov 4, 2025
9ed9755
use pickaxe tag for cutting recipe to make it work for both forge & f…
PssbleTrngle Nov 4, 2025
2770a4a
wip mixin
MehVahdJukaar Nov 4, 2025
d7b4d8a
Merge remote-tracking branch 'origin/multiloader/1.20' into multiload…
MehVahdJukaar Nov 4, 2025
ff07350
client tick
MehVahdJukaar Nov 4, 2025
28a7983
fog
MehVahdJukaar Nov 4, 2025
ca10ecf
update dye depot & run spotless
PssbleTrngle Nov 6, 2025
cffe0b8
actually use fabric mixins & register particles there
PssbleTrngle Nov 6, 2025
55a8f58
set release type to beta
PssbleTrngle Nov 6, 2025
65ea117
renames
MehVahdJukaar Nov 6, 2025
cdd7a4d
Merge branch 'multiloader/1.20' of github.com:TeamGalena/DoomAndGloom…
MehVahdJukaar Nov 6, 2025
83e0fdd
fog color
MehVahdJukaar Nov 6, 2025
737d795
ordinal
MehVahdJukaar Nov 6, 2025
079cc51
fog wip and client stuff
MehVahdJukaar Nov 6, 2025
d0fd4d4
poi thing
MehVahdJukaar Nov 6, 2025
68aa9b6
run spotless
spotless-bot[bot] Nov 6, 2025
8e37605
specify fabric moonlight dependency & output to java 17
PssbleTrngle Nov 7, 2025
3f46232
remove uneccessary instanceof check
PssbleTrngle Nov 7, 2025
95b5772
add mod loaded conditions to jeed recipe
PssbleTrngle Nov 7, 2025
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
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@ out
# gradle
build
.gradle
.kotlin

# other
eclipse
run
runs

# Files from Forge MDK
forge*changelog.txt
Expand Down
337 changes: 33 additions & 304 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,322 +1,51 @@
import net.darkhax.curseforgegradle.Constants
import net.darkhax.curseforgegradle.TaskPublishCurseForge
import java.time.LocalDateTime

val mod_id: String by extra
val mod_name: String by extra
val mod_author: String by extra
val release_type: String by extra

val repository: String by extra
val maven_group: String by extra
val modrinth_project: String by extra
val curseforge_project: String by extra

val minecraft_version: String by extra
val forge_version: String by extra
val blueprint_version: String by extra
val mixin_version: String by extra
val mixin_extras_version: String by extra
val supplementaries_version: String by extra
val amendments_version: String by extra
val moonlight_lib_version: String by extra
val oreganized_version: String by extra
val dye_depot_version: String by extra
val jei_version: String by extra
val galena_hats_version: String by extra

val mod_version = System.getenv("RELEASE_VERSION") ?: extra["mod_version"] as String

plugins {
java
`maven-publish`
id("net.minecraftforge.gradle") version "[6.0,6.2)"
id("org.spongepowered.mixin") version "0.7-SNAPSHOT"
id("org.parchmentmc.librarian.forgegradle") version "1.+"
id("com.diffplug.spotless") version "7.0.4"
id("org.sonarqube") version "6.2.0.5505"
id("com.modrinth.minotaur") version "2.+"
id("net.darkhax.curseforgegradle") version "1.1.15"
}

base {
archivesName.set("$mod_name $minecraft_version")
}

mixin {
add(sourceSets.main.get(), "${mod_id}.refmap.json")
config("${mod_id}.mixins.json")
}

java {
toolchain.languageVersion = JavaLanguageVersion.of(17)
withSourcesJar()
id("com.possible-triangle.core")
id("com.possible-triangle.architectury") apply false
id("com.possible-triangle.forge") apply false
id("com.possible-triangle.fabric") apply false
}

minecraft {
mappings("parchment", "2023.09.03-1.20.1")
subprojects {
apply(plugin = "com.possible-triangle.core")

accessTransformer(file("src/main/resources/META-INF/accesstransformer.cfg"))

runs {
create("client") {
taskName("Client")
}

create("server") {
taskName("Server")
}

create("data") {
args(
"--mod",
mod_id,
"--all",
"--output",
project.file("src/generated/resources/"),
"--existing",
project.file("src/main/resources/"),
"--existing-mod",
"blueprint"
)
taskName("Data")
}

forEach {
it.workingDirectory(project.file("run"))
it.args("-mixin.config=${mod_id}.mixins.json")
it.mods.create(mod_id) {
source(sourceSets.main.get())
repositories {
maven {
url = uri("https://maven.blamejared.com/")
content {
includeGroup("mezz.jei")
}
}
}
}

sourceSets.main.get().resources {
srcDir("src/generated/resources")
}

repositories {
mavenLocal()

maven {
url = uri("https://maven.teamabnormals.com/")
content {
includeGroup("com.teamabnormals")
}
}
maven {
url = uri("https://modmaven.dev")
content {
includeGroup("mezz.jei")
}
}
maven {
url = uri("https://api.modrinth.com/maven")
content {
includeGroup("maven.modrinth")
nexus {
content {
includeGroup("com.possible-triangle")
includeGroup("dev.galena")
includeGroup("net.mehvahdjukaar")
includeGroup("com.ninni.dye_depot")
}
}
}
maven {
url = uri("https://registry.somethingcatchy.net/repository/maven-releases/")
content {
includeGroup("dev.galena")
maven {
url = uri("https://maven.teamabnormals.com/")
content {
includeGroup("com.teamabnormals")
}
}
}
}

dependencies {
minecraft("net.minecraftforge:forge:${minecraft_version}-${forge_version}")
implementation(fg.deobf("com.teamabnormals:blueprint:${minecraft_version}-${blueprint_version}"))
annotationProcessor("org.spongepowered:mixin:${mixin_version}:processor")

compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:${mixin_extras_version}")!!)
implementation(jarJar("io.github.llamalad7:mixinextras-forge:${mixin_extras_version}")) {
jarJar.ranged(this, "[${mixin_extras_version},)")
}

val hatsVersion = "${minecraft_version}-${galena_hats_version}"
implementation(fg.deobf(jarJar("dev.galena:hats-forge:${hatsVersion}") {
version {
strictly("[${hatsVersion},)")
prefer(hatsVersion)
upload {
maven {
nexus()
}
}))

// Compatibilities
implementation(fg.deobf("maven.modrinth:supplementaries:${supplementaries_version}"))
implementation(fg.deobf("maven.modrinth:amendments:${amendments_version}"))
implementation(fg.deobf("maven.modrinth:moonlight:${moonlight_lib_version}"))

// For dev testing
runtimeOnly(fg.deobf("dev.galena:oreganized:${oreganized_version}:slim"))
runtimeOnly(fg.deobf("maven.modrinth:dye-depot:${dye_depot_version}"))

compileOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}"))
compileOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}"))
runtimeOnly(fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}"))
}


tasks.jar {
archiveClassifier.set("slim")
finalizedBy("reobfJar")

val now = LocalDateTime.now().toString()

duplicatesStrategy = DuplicatesStrategy.EXCLUDE
from(rootProject.file("LICENSE")) {
rename { "${it}_${mod_name}" }
}

manifest {
attributes(
mapOf(
"Specification-Title" to mod_name,
"Specification-Vendor" to mod_author,
"Specification-Version" to mod_version,
"Implementation-Title" to mod_name,
"Implementation-Version" to mod_version,
"Implementation-Vendor" to mod_author,
"Implementation-Timestamp" to now,
)
)
}
}

tasks.withType<ProcessResources> {
// this will ensure that this task is redone when the versions change.
inputs.property("version", mod_version)

filesMatching(
listOf(
"META-INF/mods.toml",
"META-INF/neoforge.mods.toml",
"pack.mcmeta",
"fabric.mod.json",
"${mod_id}*.mixins.json",
)
) {
expand(
mapOf(
"mod_version" to mod_version,
"mod_name" to mod_name,
"mod_id" to mod_id,
"mod_author" to mod_author,
"repository" to repository,
)
)
}
}


jarJar.enable()
tasks.jarJar {
archiveClassifier.set("")
}

tasks.jar {
archiveClassifier.set("raw")
finalizedBy("reobfJar")
}

publishing {
publications {
create<MavenPublication>("maven") {
groupId = maven_group
artifactId = mod_id
version = mod_version

artifact(tasks.getByName("sourcesJar"))
artifact(tasks.jar)
artifact(tasks.jarJar)

pom.withXml {
val node = asNode()
val list = node.get("dependencies") as groovy.util.NodeList
list.forEach { node.remove(it as groovy.util.Node) }
}
}
}
repositories {
mavenLocal()
forEach {
includeKotlinDependency = false

val nexusToken = System.getenv("NEXUS_TOKEN")
val nexusUser = System.getenv("NEXUS_USER")
if (nexusToken != null && nexusUser != null) {
maven {
url = uri("https://registry.somethingcatchy.net/repository/maven-releases/")
credentials {
username = nexusUser
password = nexusToken
}
dependencies {
required("moonlight")
optional("oreganized")
}
}
}
}

tasks.withType<GenerateModuleMetadata> {
enabled = false
}

spotless {
java {
importOrder()
removeUnusedImports()
}

kotlinGradle {
ktlint()
suppressLintsFor { shortCode = "standard:property-naming" }
}

json {
target("src/main/**/*.json")
gson().indentWithSpaces(2)
}
}

sonar {
properties {
property("sonar.projectKey", mod_id)
property("sonar.gradle.skipCompile", "true")
property("sonar.links.scm", "https://github.com/${repository}")
}
}

val outputJar = tasks.jarJar.get().archiveFile.get()
val changelogMarkdown = System.getenv("CHANGELOG")

modrinth {
token = System.getenv("MODRINTH_TOKEN")
projectId = modrinth_project
versionNumber = mod_version
versionType = release_type
versionName = "$mod_name $mod_version"
uploadFile = outputJar
gameVersions = listOf(minecraft_version)
loaders = listOf("forge")
changelog = changelogMarkdown

dependencies {
required.project("blueprint")
optional.project("oreganized")
}
}

tasks.register<TaskPublishCurseForge>("curseforge") {
group = "publishing"

apiToken = System.getenv("CURSEFORGE_TOKEN")
upload(curseforge_project, outputJar).apply {
changelogType = Constants.CHANGELOG_MARKDOWN
changelog = changelogMarkdown
releaseType = release_type
addModLoader("forge")
addGameVersion(minecraft_version)
displayName = "$mod_name $mod_version"

addRelation("382216", Constants.RELATION_REQUIRED)
addRelation("769203", Constants.RELATION_OPTIONAL)
}
}
enableSpotless()
enableSonarQube()
16 changes: 16 additions & 0 deletions common/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
plugins {
id("com.possible-triangle.architectury")
}

common {
accessWidener()
}

dependencies {
modApi(libs.moonlight.lib.common) {
isTransitive = false
}

// TODO replace with common module
modImplementation(pack.forge.modrinth.amendments)
}
1 change: 1 addition & 0 deletions common/src/generated/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.cache
Loading