diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b07d9fd4..f6f963f4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,5 +6,5 @@ on: jobs: build: - uses: TwelveIterationMods/Workflows/.github/workflows/build.yml@main + uses: TwelveIterationMods/Workflows/.github/workflows/build.yml@v2 secrets: inherit diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index e07eed96..b445c02a 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -11,19 +11,10 @@ on: - major - minor - patch - type: - description: 'The type for this release' - required: true - type: choice - default: release - options: - - release - - beta - - alpha jobs: create-release: - uses: TwelveIterationMods/Workflows/.github/workflows/create-release.yml@main + uses: TwelveIterationMods/Workflows/.github/workflows/create-release.yml@v2 with: bump: ${{ github.event.inputs.bump }} secrets: inherit diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6cc84cc9..b4794e77 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -6,5 +6,5 @@ on: jobs: publish: - uses: TwelveIterationMods/Workflows/.github/workflows/publish-release.yml@main + uses: TwelveIterationMods/Workflows/.github/workflows/publish-release.yml@v2 secrets: inherit \ No newline at end of file diff --git a/.github/workflows/update-versions.yml b/.github/workflows/update-versions.yml deleted file mode 100644 index 86649a6b..00000000 --- a/.github/workflows/update-versions.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: update-versions -on: - workflow_dispatch: - inputs: - minecraftVersion: - description: 'The Minecraft version to update to' - required: true - type: string - channel: - description: 'The release channel to update to, either latest or recommended' - required: false - default: 'latest' - type: choice - options: - - latest - - recommended - -jobs: - update-versions: - uses: TwelveIterationMods/Workflows/.github/workflows/update-versions.yml@main - with: - minecraftVersion: ${{ github.event.inputs.minecraftVersion }} - channel: ${{ github.event.inputs.channel }} - secrets: inherit \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5b0e5728..c5a9a941 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ build # other eclipse run +runs runserver logs diff --git a/build.gradle b/build.gradle index 7015fd8b..7ba390ee 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,12 @@ +plugins { + id 'fabric-loom' version '1.2-SNAPSHOT' apply(false) + // id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' apply(false) // this causes ForgeGradle to fail in reobf + id "org.jetbrains.gradle.plugin.idea-ext" version "1.1.7" // this is required for VanillaGradle and NeoForge to exist in harmony + id 'org.spongepowered.mixin' version '0.7-SNAPSHOT' apply(false) + id 'net.darkhax.curseforgegradle' version '1.1.16' apply(false) + id "com.modrinth.minotaur" version "2.+" apply(false) +} + subprojects { apply plugin: 'java' @@ -5,32 +14,25 @@ subprojects { java.withSourcesJar() java.withJavadocJar() - tasks.withType(GenerateModuleMetadata).tap { - configureEach { - enabled = false // Do not publish dependencies in pom - } - } - - configurations { - testImplementation.extendsFrom compileOnly - } - jar { + from(rootProject.file("LICENSE")) { + rename { "${it}_${mod_id}" } + } manifest { attributes([ "Specification-Title" : mod_id, "Specification-Vendor" : "BlayTheNinth", - "Specification-Version" : "1", + "Specification-Version" : project.jar.archiveVersion, "Implementation-Title" : project.name, "Implementation-Version" : project.jar.archiveVersion, - "Implementation-Vendor" : "BlayTheNinth", - "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") + "Implementation-Vendor" : "BlayTheNinth" ]) - if (forge_mixins.toBoolean()) { - attributes([ - "MixinConfigs": mod_id + ".mixins.json" - ]) - } + } + } + + sourcesJar { + from(rootProject.file("LICENSE")) { + rename { "${it}_${mod_id}" } } } @@ -51,26 +53,60 @@ subprojects { maven { url "https://maven.shedaniel.me/" } // For JEI - maven { url "https://maven.blamejared.com/" } + maven { url "https://dvs1.progwml6.com/files/maven/" } // For WTHIT maven { url "https://maven.bai.lol" } + + // For ModMenu + maven { url "https://maven.terraformersmc.com/releases/" } } tasks.withType(JavaCompile).configureEach { it.options.encoding = 'UTF-8' - it.options.release = java_version as int + it.options.getRelease().set(java_version.toInteger()) } - tasks.withType(Javadoc).tap { - configureEach { - failOnError false - } + tasks.withType(Javadoc).configureEach { + failOnError false } - if (balm_version.endsWith("SNAPSHOT")) { - configurations.configureEach { - resolutionStrategy.cacheChangingModulesFor 1, 'minutes' + processResources { + def expandProps = [ + "version": version, + "group": project.group, //Else we target the task's group. + "minecraft_version": minecraft_version, + "forge_version": forge_version, + "forge_loader_version_range": forge_loader_version_range, + "forge_version_range": forge_version_range, + "minecraft_version_range": minecraft_version_range, + "fabric_version": fabric_version, + "fabric_loader_version": fabric_loader_version, + "mod_name": mod_name, + "mod_main": mod_main, + "mod_id": mod_id, + "homepage": homepage, + "issues": issues, + "sources": sources, + "license": license, + "description": project.description, + "neoforge_version": neoforge_version, + "neoforge_version_range": neoforge_version_range, + "neoforge_loader_version_range": neoforge_loader_version_range, + "balm_version_range": balm_version_range, + "pack_format_number": pack_format_number + ] + + filesMatching(['pack.mcmeta', 'fabric.mod.json', 'META-INF/mods.toml', '*.mixins.json']) { + expand expandProps } + inputs.properties(expandProps) + } + + // Disables Gradle's custom module metadata from being published to maven. The + // metadata includes mapped dependencies which are not reasonably consumable by + // other mod developers. + tasks.withType(GenerateModuleMetadata).configureEach { + enabled = false } } \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle index 07449182..42576805 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -1,14 +1,14 @@ plugins { - id 'fabric-loom' version '1.2-SNAPSHOT' + id 'fabric-loom' id 'maven-publish' id 'idea' - id 'net.darkhax.curseforgegradle' version '1.0.14' - id "com.modrinth.minotaur" version "2.+" + id 'net.darkhax.curseforgegradle' + id "com.modrinth.minotaur" } -group = mod_group -archivesBaseName = "${mod_id}-fabric-${minecraft_version}" -version = mod_version +base { + archivesName = "${mod_id}-fabric-${minecraft_version}" +} dependencies { minecraft "com.mojang:minecraft:${minecraft_version}" @@ -16,31 +16,28 @@ dependencies { modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" - implementation project(":shared") modImplementation("net.blay09.mods:balm-fabric:${balm_version}") { transitive = false changing = balm_version.endsWith("SNAPSHOT") } - compileOnly "org.jetbrains:annotations:22.0.0" - - modCompileOnly "mezz.jei:jei-$jei_minecraft_version-fabric-api:$jei_version" - if (jei_minecraft_version == minecraft_version) { - modRuntimeOnly "mezz.jei:jei-$jei_minecraft_version-fabric:$jei_version" - } - - modCompileOnly("me.shedaniel:RoughlyEnoughItems-api:$rei_version") { - transitive = false - } + implementation project(":shared") - modCompileOnly "curse.maven:jade-324717:$jade_forge_version" - modCompileOnly "mcp.mobius.waila:wthit-api:mojmap-$wthit_version" + compileOnly "org.jetbrains:annotations:22.0.0" } apply from: 'dependencies.gradle' loom { + if (project(":shared").file("src/main/resources/${mod_id}.accesswidener").exists()) { + accessWidenerPath.set(project(":shared").file("src/main/resources/${mod_id}.accesswidener")) + } + + mixin { + defaultRefmapName.set("${mod_id}.refmap.json") + } + runs { client { client() @@ -67,31 +64,20 @@ loom { } } -sourceSets { - main { - resources { - srcDirs 'src/generated/resources' - } - } -} - -processResources { - from project(":shared").sourceSets.main.resources - inputs.property "version", project.version - - filesMatching("fabric.mod.json") { - expand "version": project.version - } -} +sourceSets.main.resources.srcDir('src/generated/resources') -tasks.withType(JavaCompile) { +tasks.withType(JavaCompile).configureEach { source(project(":shared").sourceSets.main.allSource) } +tasks.withType(Javadoc).configureEach { + source(project(":shared").sourceSets.main.allJava) +} +tasks.named("sourcesJar", Jar) { + from(project(":shared").sourceSets.main.allSource) +} -jar { - from(rootProject.file("LICENSE")) { - rename { "${it}_${mod_id}" } - } +processResources { + from project(":shared").sourceSets.main.resources } publishing { @@ -124,23 +110,24 @@ task curseforge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) { def mainFile = upload(curseforge_fabric_project_id, file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")) mainFile.changelog = rootProject.file('CHANGELOG.md').text - mainFile.changelogType = "markdown" + mainFile.addRequirement("fabric-api") mainFile.addRequirement("balm-fabric") project.minecraft_versions.split(',').toList().each { mainFile.addGameVersion(it) } - mainFile.releaseType = release_type + mainFile.releaseType = "release" } modrinth { token = project.findProperty("modrinth.token") ?: System.getenv("MODRINTH_TOKEN") ?: "none" - projectId = project.modrinth_fabric_project_id - versionType = project.release_type + projectId = project.modrinth_project_id + versionType = project.modrinth_release_type versionNumber = project.version + "+fabric-" + project.minecraft_version uploadFile = remapJar changelog = rootProject.file("CHANGELOG.md").text gameVersions = project.minecraft_versions.split(',').toList() - syncBodyFrom = rootProject.file("modrinth.md").text + syncBodyFrom = rootProject.file("modpage.md").text loaders = ['fabric'] dependencies { + required.project "fabric-api" required.project "balm" } } \ No newline at end of file diff --git a/fabric/dependencies.gradle b/fabric/dependencies.gradle index fc185c13..4e20daca 100644 --- a/fabric/dependencies.gradle +++ b/fabric/dependencies.gradle @@ -10,9 +10,15 @@ repositories { } dependencies { + modCompileOnly "mezz.jei:jei-$jei_minecraft_version-common-api:$jei_version" modCompileOnly group: 'info.journeymap', name: 'journeymap-api', version: project.journeymap_api_fabric_version, changing: true // modRuntimeOnly "curse.maven:journeymap-${project.journeymap_project_id}:${project.journeymap_fabric_file_id}" - modRuntimeOnly "me.shedaniel.cloth:cloth-config-fabric:11.0.99" modCompileOnly "com.terraformersmc:modmenu:$modmenu_version" + modCompileOnly "curse.maven:jade-324717:$jade_forge_version" + modCompileOnly "mcp.mobius.waila:wthit-api:mojmap-$wthit_version" + + modCompileOnly("me.shedaniel:RoughlyEnoughItems-api:$rei_version") { + transitive = false + } } \ No newline at end of file diff --git a/fabric/src/main/java/net/blay09/mods/waystones/FabricWaystones.java b/fabric/src/main/java/net/blay09/mods/waystones/fabric/FabricWaystones.java similarity index 92% rename from fabric/src/main/java/net/blay09/mods/waystones/FabricWaystones.java rename to fabric/src/main/java/net/blay09/mods/waystones/fabric/FabricWaystones.java index 0e431057..40abd7f4 100644 --- a/fabric/src/main/java/net/blay09/mods/waystones/FabricWaystones.java +++ b/fabric/src/main/java/net/blay09/mods/waystones/fabric/FabricWaystones.java @@ -1,6 +1,7 @@ -package net.blay09.mods.waystones; +package net.blay09.mods.waystones.fabric; import net.blay09.mods.balm.api.Balm; +import net.blay09.mods.waystones.Waystones; import net.fabricmc.api.ModInitializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/fabric/src/main/java/net/blay09/mods/waystones/client/FabricWaystonesClient.java b/fabric/src/main/java/net/blay09/mods/waystones/fabric/client/FabricWaystonesClient.java similarity index 76% rename from fabric/src/main/java/net/blay09/mods/waystones/client/FabricWaystonesClient.java rename to fabric/src/main/java/net/blay09/mods/waystones/fabric/client/FabricWaystonesClient.java index 1d749f76..38354229 100644 --- a/fabric/src/main/java/net/blay09/mods/waystones/client/FabricWaystonesClient.java +++ b/fabric/src/main/java/net/blay09/mods/waystones/fabric/client/FabricWaystonesClient.java @@ -1,7 +1,8 @@ -package net.blay09.mods.waystones.client; +package net.blay09.mods.waystones.fabric.client; import net.blay09.mods.balm.api.client.BalmClient; import net.blay09.mods.waystones.Waystones; +import net.blay09.mods.waystones.client.WaystonesClient; import net.fabricmc.api.ClientModInitializer; public class FabricWaystonesClient implements ClientModInitializer { diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 16ea2a9b..39364dad 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -1,66 +1,53 @@ { "schemaVersion": 1, - "id": "waystones", + "id": "${mod_id}", "version": "${version}", - "name": "Waystones", - "description": "Teleport back to activated waystones. For Survival, Adventure or Servers.", + + "name": "${mod_name}", + "description": "${description}", "authors": [ "BlayTheNinth" ], "contact": { - "homepage": "https://blay09.net/", - "sources": "https://github.com/TwelveIterationMods/Waystones", - "issues": "https://github.com/TwelveIterationMods/Waystones/issues" + "homepage": "${homepage}", + "sources": "${sources}", + "issues": "${issues}" }, - "license": "All Rights Reserved", - "icon": "waystones-icon.png", + + "license": "${license}", + "icon": "${mod_id}.png", + "environment": "*", "entrypoints": { "main": [ - "net.blay09.mods.waystones.FabricWaystones" + "net.blay09.mods.${mod_id}.fabric.Fabric${mod_main}" ], "client": [ - "net.blay09.mods.waystones.client.FabricWaystonesClient" - ], - "fabric-datagen": [ - "net.blay09.mods.waystones.datagen.WaystonesDataGenerator" + "net.blay09.mods.${mod_id}.fabric.client.Fabric${mod_main}Client" ], "modmenu": [ - "net.blay09.mods.waystones.compat.ModMenuIntegration" - ], - "rei_client": [ - "net.blay09.mods.waystones.compat.rei.RoughlyEnoughItemsIntegration" - ], - "journeymap": [ - "net.blay09.mods.waystones.compat.JourneyMapIntegration" - ], - "jade": [ - "net.blay09.mods.waystones.compat.JadeIntegration" + "net.blay09.mods.${mod_id}.fabric.compat.ModMenuIntegration" ] }, "mixins": [ - "waystones.mixins.json" + "${mod_id}.mixins.json", + "${mod_id}.fabric.mixins.json" ], + "depends": { - "balm-fabric": ">=8.0.0", - "fabricloader": ">=0.14.22", + "fabricloader": ">=0.14", "fabric-api": "*", + "balm-fabric": "*", "minecraft": ">=1.20.2", "java": ">=17" }, "suggests": { - "modmenu": "*" }, "custom": { "modmenu": { "links": { - "modmenu.discord": "https://discord.gg/VAfZ2Nau6j", - "waystones.iconCredits": "https://opengameart.org/content/roguelikerpg-items" + "modmenu.discord": "https://discord.gg/VAfZ2Nau6j" } - }, - "waila:plugins": { - "id": "waystones:wthit", - "initializer": "net.blay09.mods.waystones.compat.WTHITIntegration" } } } diff --git a/fabric/src/main/resources/waystones.mixins.json b/fabric/src/main/resources/waystones.fabric.mixins.json similarity index 100% rename from fabric/src/main/resources/waystones.mixins.json rename to fabric/src/main/resources/waystones.fabric.mixins.json diff --git a/forge/build.gradle b/forge/build.gradle index 4ef600aa..55e1be94 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -1,56 +1,48 @@ -buildscript { - repositories { - maven { url = "https://repo.spongepowered.org/maven" } - mavenCentral() - } - dependencies { - classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT' - } -} - plugins { - id 'net.minecraftforge.gradle' version '[6.0,6.2)' - id 'maven-publish' id 'idea' - id 'net.darkhax.curseforgegradle' version '1.0.14' - id "com.modrinth.minotaur" version "2.+" + id 'maven-publish' + id 'net.minecraftforge.gradle' version '[6.0,6.2)' + id 'org.spongepowered.mixin' + id 'net.darkhax.curseforgegradle' + id "com.modrinth.minotaur" +} + +base { + archivesName = "${mod_id}-forge-${minecraft_version}" } -apply plugin: "org.spongepowered.mixin" +mixin { + add(sourceSets.main, "${mod_id}.refmap.json") -group = mod_group -archivesBaseName = "${mod_id}-forge-${minecraft_version}" -version = mod_version + config("${mod_id}.mixins.json") + config("${mod_id}.forge.mixins.json") +} minecraft { mappings channel: 'official', version: minecraft_version copyIdeResources = true + // Automatically enable forge AccessTransformers if the file exists + // This location is hardcoded in Forge and can not be changed. + // https://github.com/MinecraftForge/MinecraftForge/blob/be1698bb1554f9c8fa2f58e32b9ab70bc4385e60/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFile.java#L123 + if (file('src/main/resources/META-INF/accesstransformer.cfg').exists()) { + accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') + } + runs { client { workingDirectory project.file('run') ideaModule "${rootProject.name}.${project.name}.main" taskName "Client" - if (forge_mixins.toBoolean()) { - arg "-mixin.config=${mod_id}.mixins.json" - } - - property "mixin.env.disableRefMap", "true" - property "mixin.debug.export", "true" - property "mixin.debug.export.decompile", "false" - property "mixin.debug.verbose", "true" - property "mixin.debug.dumpTargetOnFailure", "true" - property "mixin.checks", "true" - property "mixin.hotSwap", "true" - - property 'forge.logging.console.level', 'debug' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" property 'forge.enabledGameTestNamespaces', mod_id mods { - "${mod_id}" { + modClientRun { source sourceSets.main source project(":shared").sourceSets.main } @@ -62,24 +54,13 @@ minecraft { ideaModule "${rootProject.name}.${project.name}.main" taskName "Server" - if (forge_mixins.toBoolean()) { - arg "-mixin.config=${mod_id}.mixins.json" - } - - property "mixin.env.disableRefMap", "true" - property "mixin.debug.export", "true" - property "mixin.debug.export.decompile", "false" - property "mixin.debug.verbose", "true" - property "mixin.debug.dumpTargetOnFailure", "true" - property "mixin.checks", "true" - property "mixin.hotSwap", "true" - - property 'forge.logging.console.level', 'debug' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" property 'forge.enabledGameTestNamespaces', mod_id mods { - "${mod_id}" { + modServerRun { source sourceSets.main source project(":shared").sourceSets.main } @@ -91,24 +72,13 @@ minecraft { ideaModule "${rootProject.name}.${project.name}.main" taskName "GameTest" - if (forge_mixins.toBoolean()) { - arg "-mixin.config=${mod_id}.mixins.json" - } - - property "mixin.env.disableRefMap", "true" - property "mixin.debug.export", "true" - property "mixin.debug.export.decompile", "false" - property "mixin.debug.verbose", "true" - property "mixin.debug.dumpTargetOnFailure", "true" - property "mixin.checks", "true" - property "mixin.hotSwap", "true" - - property 'forge.logging.console.level', 'debug' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" property 'forge.enabledGameTestNamespaces', mod_id mods { - "${mod_id}" { + modGameTestRun { source sourceSets.main source project(":shared").sourceSets.main } @@ -118,26 +88,14 @@ minecraft { data { workingDirectory project.file('run') ideaModule "${rootProject.name}.${project.name}.main" + args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') taskName "Data" - property 'forge.logging.console.level', 'debug' - - if (forge_mixins.toBoolean()) { - arg "-mixin.config=${mod_id}.mixins.json" - } - - property "mixin.env.disableRefMap", "true" - property "mixin.debug.export", "true" - property "mixin.debug.export.decompile", "false" - property "mixin.debug.verbose", "true" - property "mixin.debug.dumpTargetOnFailure", "true" - property "mixin.checks", "true" - property "mixin.hotSwap", "true" - - args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" mods { - "${mod_id}" { + modDataRun { source sourceSets.main source project(":shared").sourceSets.main } @@ -146,64 +104,35 @@ minecraft { } } -sourceSets { - main { - resources { - srcDirs 'src/generated/resources' - } - ext.refMap = "${mod_id}.refmap.json" - } -} +sourceSets.main.resources.srcDir 'src/generated/resources' dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - annotationProcessor 'org.spongepowered:mixin:0.8.4:processor' - compileOnly project(":shared") + annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor" implementation fg.deobf("net.blay09.mods:balm-forge:${balm_version}") { changing = balm_version.endsWith("SNAPSHOT") } - compileOnly "org.jetbrains:annotations:22.0.0" - - compileOnly fg.deobf("mezz.jei:jei-$jei_minecraft_version-common-api:$jei_version") - if (jei_minecraft_version == minecraft_version) { - runtimeOnly fg.deobf("mezz.jei:jei-$jei_minecraft_version-forge:$jei_version") - } + compileOnly project(":shared") - compileOnly fg.deobf("curse.maven:jade-324717:$jade_forge_version") - compileOnly fg.deobf("mcp.mobius.waila:wthit-api:forge-$wthit_version") - compileOnly fg.deobf("curse.maven:the-one-probe-245211:$theoneprobe_version") + compileOnly "org.jetbrains:annotations:22.0.0" } apply from: 'dependencies.gradle' -tasks.withType(JavaCompile) { +tasks.withType(JavaCompile).configureEach { source(project(":shared").sourceSets.main.allSource) } +tasks.withType(Javadoc).configureEach { + source(project(":shared").sourceSets.main.allJava) +} +tasks.named("sourcesJar", Jar) { + from(project(":shared").sourceSets.main.allSource) +} -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, - forge_loader_version_range: forge_loader_version_range, - mod_id: mod_id, mod_version: mod_version, balm_version_range: balm_version_range, -] processResources { from project(":shared").sourceSets.main.resources - - inputs.properties replaceProperties - replaceProperties.put 'project', project - - filesMatching(resourceTargets) { - expand replaceProperties - } -} - -jar { - from(rootProject.file("LICENSE")) { - rename { "${it}_${mod_id}" } - } } jar.finalizedBy('reobfJar') @@ -214,7 +143,8 @@ publishing { artifactId = mod_id + "-forge" version = project.version + (!project.version.endsWith("SNAPSHOT") ? "+" + minecraft_version : "") - artifact jar + from components.java + fg.component(it) } } @@ -238,21 +168,20 @@ task curseforge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) { def mainFile = upload(curseforge_forge_project_id, file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")) mainFile.changelog = rootProject.file('CHANGELOG.md').text - mainFile.changelogType = "markdown" mainFile.addRequirement("balm") project.minecraft_versions.split(',').toList().each { mainFile.addGameVersion(it) } - mainFile.releaseType = release_type + mainFile.releaseType = "release" } modrinth { token = project.findProperty("modrinth.token") ?: System.getenv("MODRINTH_TOKEN") ?: "none" - projectId = project.modrinth_forge_project_id - versionType = project.release_type + projectId = project.modrinth_project_id + versionType = project.modrinth_release_type versionNumber = project.version + "+forge-" + project.minecraft_version uploadFile = jar changelog = rootProject.file("CHANGELOG.md").text gameVersions = project.minecraft_versions.split(',').toList() - syncBodyFrom = rootProject.file("modrinth.md").text + syncBodyFrom = rootProject.file("modpage.md").text loaders = ['forge'] dependencies { required.project "balm" diff --git a/forge/dependencies.gradle b/forge/dependencies.gradle index 5ed80bea..a25d3654 100644 --- a/forge/dependencies.gradle +++ b/forge/dependencies.gradle @@ -7,5 +7,9 @@ repositories { dependencies { compileOnly fg.deobf(group: 'info.journeymap', name: 'journeymap-api', version: project.journeymap_api_forge_version, changing: true) + compileOnly fg.deobf("mezz.jei:jei-$jei_minecraft_version-common-api:$jei_version") + compileOnly fg.deobf("curse.maven:jade-324717:$jade_forge_version") + compileOnly fg.deobf("mcp.mobius.waila:wthit-api:forge-$wthit_version") + compileOnly fg.deobf("curse.maven:the-one-probe-245211:$theoneprobe_version") //runtimeOnly fg.deobf("curse.maven:journeymap-${project.journeymap_project_id}:${project.journeymap_forge_file_id}") } \ No newline at end of file diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index af3bc612..cfeb7b44 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -1,35 +1,31 @@ modLoader="javafml" loaderVersion="${forge_loader_version_range}" -license="All rights reserved" -issueTrackerURL="https://github.com/TwelveIterationMods/Waystones/issues" - +license="${license}" +issueTrackerURL="${issues}" [[mods]] -modId="waystones" -version="${mod_version}" -displayName="Waystones" -displayURL="https://mods.twelveiterations.com/mc/waystones" -logoFile="waystones-icon.png" +modId="${mod_id}" +version="${version}" +displayName="${mod_name}" +displayURL="${homepage}" +logoFile="${mod_id}.png" credits="BlayTheNinth" authors="BlayTheNinth" -description=''' -Teleport back to activated waystones. For Survival, Adventure or Servers. -''' - -[[dependencies.waystones]] - modId="forge" - mandatory=true - versionRange="${forge_version_range}" - ordering="NONE" - side="BOTH" -[[dependencies.waystones]] - modId="minecraft" - mandatory=true - versionRange="${minecraft_version_range}" - ordering="NONE" - side="BOTH" -[[dependencies.waystones]] - modId="balm" - mandatory=true - versionRange="${balm_version_range}" - ordering="NONE" - side="BOTH" \ No newline at end of file +description='''${description}''' +[[dependencies.${mod_id}]] +modId="forge" +mandatory=true +versionRange="${forge_version_range}" +ordering="NONE" +side="BOTH" +[[dependencies.${mod_id}]] +modId="minecraft" +mandatory=true +versionRange="${minecraft_version_range}" +ordering="NONE" +side="BOTH" +[[dependencies.${mod_id}]] +modId="balm" +mandatory=true +versionRange="${balm_version_range}" +ordering="NONE" +side="BOTH" diff --git a/forge/src/main/resources/pack.mcmeta b/forge/src/main/resources/pack.mcmeta deleted file mode 100644 index 3f5e86e7..00000000 --- a/forge/src/main/resources/pack.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "pack": { - "description": "Waystones resources", - "pack_format": 15 - } -} diff --git a/forge/src/main/resources/waystones.mixins.json b/forge/src/main/resources/waystones.forge.mixins.json similarity index 57% rename from forge/src/main/resources/waystones.mixins.json rename to forge/src/main/resources/waystones.forge.mixins.json index 2081409d..079258a9 100644 --- a/forge/src/main/resources/waystones.mixins.json +++ b/forge/src/main/resources/waystones.forge.mixins.json @@ -1,13 +1,10 @@ { "required": true, "minVersion": "0.8", - "package": "net.blay09.mods.waystones.mixin", + "package": "net.blay09.mods.waystones.forge.mixin", "compatibilityLevel": "JAVA_17", "refmap": "waystones.refmap.json", "mixins": [ - "JigsawPlacementPlacerMixin", - "SinglePoolElementMixin", - "StructureTemplatePoolAccessor" ], "client": [ ], diff --git a/gradle.properties b/gradle.properties index 651d9e23..997abb7e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,14 +1,21 @@ # Mod -mod_version = 15.0.1 mod_id = waystones -mod_group = net.blay09.mods +mod_name = Waystones +mod_main=Waystones +description=Teleport back to activated waystones. For Survival, Adventure or Servers. +version = 15.0.1 +group = net.blay09.mods +homepage=https://mods.twelveiterations.com/mc/waystones +sources=https://github.com/TwelveIterationMods/Waystones +issues=https://github.com/TwelveIterationMods/Waystones/issues +license=All Rights Reserved # Publishing -release_type = release +curseforge_release_type = release curseforge_forge_project_id = 245755 curseforge_fabric_project_id = 500087 -modrinth_forge_project_id = LOpKHB2A -modrinth_fabric_project_id = LOpKHB2A +modrinth_release_type = release +modrinth_project_id = LOpKHB2A # Journeymap v5.8.3 journeymap_project_id=32274 @@ -22,6 +29,7 @@ journeymap_api_forge_version=1.18.1-1.8-SNAPSHOT minecraft_version = 1.20.2 minecraft_versions = 1.20.2 minecraft_version_range=[1.20.2,1.21) +pack_format_number=18 java_version = 17 # Balm @@ -32,7 +40,11 @@ balm_version_range = [8.0.0,) forge_version = 48.0.4 forge_version_range=[48.0.0,) forge_loader_version_range=[48,) -forge_mixins=true + +# NeoForge +neoforge_version = 20.2.86 +neoforge_version_range=[20.2,) +neoforge_loader_version_range=[1,) # Fabric fabric_version = 0.89.0+1.20.2 @@ -46,9 +58,8 @@ wthit_version=6.1.1 jade_fabric_version=4160727 jade_forge_version=4159759 mixin_version=0.8.5 -modmenu_version=7.2.2 +modmenu_version=8.0.0 theoneprobe_version=4159743 -cloth_config_version=10.0.95 # Gradle org.gradle.jvmargs=-Xmx3G diff --git a/modrinth.md b/modpage.md similarity index 100% rename from modrinth.md rename to modpage.md diff --git a/neoforge/build.gradle b/neoforge/build.gradle new file mode 100644 index 00000000..79a43f85 --- /dev/null +++ b/neoforge/build.gradle @@ -0,0 +1,139 @@ +plugins { + id 'java-library' + id 'idea' + id 'maven-publish' + id 'net.neoforged.gradle.userdev' version '7.0.41' + id 'net.darkhax.curseforgegradle' + id "com.modrinth.minotaur" +} + +base { + archivesName = "${mod_id}-neoforge-${minecraft_version}" +} + +if (file('src/main/resources/META-INF/accesstransformer.cfg').exists()) { + minecraft.accessTransformers.file file('src/main/resources/META-INF/accesstransformer.cfg') +} +runs { + 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 + } + + client { + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + } + + server { + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + programArgument '--nogui' + } + + // 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 { + // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it + // workingDirectory project.file('run-data') + + // 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() + } +} + +sourceSets.main.resources { srcDir 'src/generated/resources' } + +dependencies { + implementation "net.neoforged:neoforge:${neoforge_version}" + + implementation("net.blay09.mods:balm-neoforge:${balm_version}") { + changing = balm_version.endsWith("SNAPSHOT") + } + + compileOnly project(":shared") + + compileOnly "org.jetbrains:annotations:22.0.0" +} + +apply from: 'dependencies.gradle' + +// NeoGradle compiles the game, but we don't want to add our common code to the game's code +Spec notNeoTask = { Task it -> !it.name.startsWith("neo") } as Spec + +tasks.withType(JavaCompile).matching(notNeoTask).configureEach { + source(project(":shared").sourceSets.main.allSource) +} + +tasks.withType(Javadoc).matching(notNeoTask).configureEach { + source(project(":shared").sourceSets.main.allJava) +} + +tasks.named("sourcesJar", Jar) { + from(project(":shared").sourceSets.main.allSource) +} + +tasks.withType(ProcessResources).matching(notNeoTask).configureEach { + from project(":shared").sourceSets.main.resources +} + +publishing { + publications { + mavenJava(MavenPublication) { + artifactId = mod_id + "-neoforge" + version = project.version + (!project.version.endsWith("SNAPSHOT") ? "+" + minecraft_version : "") + + from components.java + } + } + + repositories { + maven { + var releasesRepoUrl = "https://maven.twelveiterations.com/repository/maven-releases/" + var snapshotsRepoUrl = "https://maven.twelveiterations.com/repository/maven-snapshots/" + url = uri(version.toString().endsWith("SNAPSHOT") ? snapshotsRepoUrl : releasesRepoUrl) + name = "twelveIterationsNexus" + credentials(PasswordCredentials) + } + } +} + +task curseforge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) { + dependsOn('build') + description = 'Publishes the NeoForge build to CurseForge.' + group = 'publishing' + + apiToken = project.findProperty("curseforge.api_key") ?: System.getenv("CURSEFORGE_TOKEN") ?: "none" + + def mainFile = upload(curseforge_forge_project_id, file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")) + mainFile.changelog = rootProject.file('CHANGELOG.md').text + project.minecraft_versions.split(',').toList().each { mainFile.addGameVersion(it) } + mainFile.releaseType = "release" +} + +modrinth { + token = project.findProperty("modrinth.token") ?: System.getenv("MODRINTH_TOKEN") ?: "none" + projectId = project.modrinth_project_id + versionType = project.modrinth_release_type + versionNumber = project.version + "+neoforge-" + project.minecraft_version + uploadFile = jar + changelog = rootProject.file("CHANGELOG.md").text + gameVersions = project.minecraft_versions.split(',').toList() + syncBodyFrom = rootProject.file("modpage.md").text + loaders = ['neoforge'] +} \ No newline at end of file diff --git a/neoforge/dependencies.gradle b/neoforge/dependencies.gradle new file mode 100644 index 00000000..4551373a --- /dev/null +++ b/neoforge/dependencies.gradle @@ -0,0 +1,14 @@ +repositories { + // For JourneyMap + maven { + url = "https://jm.gserv.me/repository/maven-public/" + } +} + +dependencies { + compileOnly group: 'info.journeymap', name: 'journeymap-api', version: project.journeymap_api_forge_version, changing: true + compileOnly "mezz.jei:jei-$jei_minecraft_version-common-api:$jei_version" + compileOnly "curse.maven:jade-324717:$jade_forge_version" + compileOnly "mcp.mobius.waila:wthit-api:forge-$wthit_version" + compileOnly "curse.maven:the-one-probe-245211:$theoneprobe_version" +} \ No newline at end of file diff --git a/neoforge/src/main/java/net/blay09/mods/waystones/ForgeWaystones.java b/neoforge/src/main/java/net/blay09/mods/waystones/ForgeWaystones.java new file mode 100644 index 00000000..6b7cbcf0 --- /dev/null +++ b/neoforge/src/main/java/net/blay09/mods/waystones/ForgeWaystones.java @@ -0,0 +1,35 @@ +package net.blay09.mods.waystones; + +import net.blay09.mods.balm.api.Balm; +import net.blay09.mods.balm.api.client.BalmClient; +import net.blay09.mods.waystones.client.WaystonesClient; +import net.blay09.mods.waystones.compat.Compat; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.fml.DistExecutor; +import net.neoforged.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.lang.reflect.InvocationTargetException; + +@Mod(Waystones.MOD_ID) +public class ForgeWaystones { + + private static final Logger logger = LoggerFactory.getLogger(ForgeWaystones.class); + + public ForgeWaystones() { + Balm.initialize(Waystones.MOD_ID, Waystones::initialize); + DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> BalmClient.initialize(Waystones.MOD_ID, WaystonesClient::initialize)); + + Balm.initializeIfLoaded(Compat.THEONEPROBE, "net.blay09.mods.waystones.compat.TheOneProbeIntegration"); + + // TODO would be nice if we could use Balm.initializeIfLoaded here, but it might run too late at the moment) + if (Balm.isModLoaded("repurposed_structures")) { + try { + Class.forName("net.blay09.mods.waystones.compat.RepurposedStructuresIntegration").getConstructor().newInstance(); + } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | ClassNotFoundException | InvocationTargetException e) { + logger.error("Failed to load Repurposed Structures integration", e); + } + } + } +} diff --git a/neoforge/src/main/java/net/blay09/mods/waystones/compat/JadeIntegration.java b/neoforge/src/main/java/net/blay09/mods/waystones/compat/JadeIntegration.java new file mode 100644 index 00000000..5dfa2c8e --- /dev/null +++ b/neoforge/src/main/java/net/blay09/mods/waystones/compat/JadeIntegration.java @@ -0,0 +1,28 @@ +package net.blay09.mods.waystones.compat; + +import net.blay09.mods.waystones.Waystones; +import net.blay09.mods.waystones.block.WaystoneBlockBase; +import net.minecraft.resources.ResourceLocation; +import snownee.jade.api.*; +import snownee.jade.api.config.IPluginConfig; + +@WailaPlugin(Waystones.MOD_ID) +public class JadeIntegration implements IWailaPlugin { + + @Override + public void registerClient(IWailaClientRegistration registration) { + registration.registerBlockComponent(new WaystoneDataProvider(), WaystoneBlockBase.class); + } + + private static class WaystoneDataProvider implements IBlockComponentProvider { + @Override + public void appendTooltip(ITooltip tooltip, BlockAccessor accessor, IPluginConfig config) { + WaystonesWailaUtils.appendTooltip(accessor.getBlockEntity(), accessor.getPlayer(), tooltip::add); + } + + @Override + public ResourceLocation getUid() { + return WaystonesWailaUtils.WAYSTONE_UID; + } + } +} diff --git a/neoforge/src/main/java/net/blay09/mods/waystones/compat/RepurposedStructuresIntegration.java b/neoforge/src/main/java/net/blay09/mods/waystones/compat/RepurposedStructuresIntegration.java new file mode 100644 index 00000000..aa6121df --- /dev/null +++ b/neoforge/src/main/java/net/blay09/mods/waystones/compat/RepurposedStructuresIntegration.java @@ -0,0 +1,22 @@ +package net.blay09.mods.waystones.compat; + +import net.blay09.mods.waystones.config.WaystonesConfig; +import net.minecraft.resources.ResourceLocation; +import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.function.Supplier; + +public class RepurposedStructuresIntegration { + public static final DeferredRegister> RS_CONDITIONS_REGISTRY = DeferredRegister.create( + new ResourceLocation("repurposed_structures", "json_conditions"), "waystones"); + + public static final DeferredHolder, Supplier> WAYSTONE_CONFIG_CONDITION = RS_CONDITIONS_REGISTRY.register( + "config", () -> () -> WaystonesConfig.getActive().worldGen.spawnInVillages || WaystonesConfig.getActive().worldGen.forceSpawnInVillages); + + public RepurposedStructuresIntegration() { + final var modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); + RS_CONDITIONS_REGISTRY.register(modEventBus); + } +} diff --git a/neoforge/src/main/java/net/blay09/mods/waystones/compat/TheOneProbeIntegration.java b/neoforge/src/main/java/net/blay09/mods/waystones/compat/TheOneProbeIntegration.java new file mode 100644 index 00000000..222bd461 --- /dev/null +++ b/neoforge/src/main/java/net/blay09/mods/waystones/compat/TheOneProbeIntegration.java @@ -0,0 +1,67 @@ +package net.blay09.mods.waystones.compat; + +import mcjty.theoneprobe.api.*; +import net.blay09.mods.waystones.Waystones; +import net.blay09.mods.waystones.api.IWaystone; +import net.blay09.mods.waystones.block.entity.WarpPlateBlockEntity; +import net.blay09.mods.waystones.block.entity.WaystoneBlockEntityBase; +import net.blay09.mods.waystones.core.PlayerWaystoneManager; +import net.blay09.mods.waystones.core.WaystoneTypes; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.neoforged.fml.InterModComms; +import org.jetbrains.annotations.Nullable; + +import java.util.function.Function; + +public class TheOneProbeIntegration { + + public TheOneProbeIntegration() { + InterModComms.sendTo("theoneprobe", "getTheOneProbe", TopInitializer::new); + } + + public static class TopInitializer implements Function { + @Nullable + @Override + public Void apply(@Nullable ITheOneProbe top) { + if (top != null) { + top.registerProvider(new ProbeInfoProvider()); + } + return null; + } + } + + public static class ProbeInfoProvider implements IProbeInfoProvider { + + @Override + public ResourceLocation getID() { + return new ResourceLocation(Waystones.MOD_ID, "top"); + } + + @Override + public void addProbeInfo(ProbeMode mode, IProbeInfo info, Player player, Level level, BlockState state, IProbeHitData data) { + BlockEntity tileEntity = level.getBlockEntity(data.getPos()); + //noinspection StatementWithEmptyBody + if (tileEntity instanceof WarpPlateBlockEntity) { + /* TOP does not use the correct galactic font, so don't display for warp plates. + IWaystone waystone = ((WarpPlateTileEntity) tileEntity).getWaystone(); + ITextComponent galacticName = WarpPlateBlock.getGalacticName(waystone); + info.text(galacticName); */ + } else if (tileEntity instanceof WaystoneBlockEntityBase) { + IWaystone waystone = ((WaystoneBlockEntityBase) tileEntity).getWaystone(); + boolean isActivated = !waystone.getWaystoneType().equals(WaystoneTypes.WAYSTONE) || PlayerWaystoneManager.isWaystoneActivated(player, waystone); + if (isActivated && waystone.hasName() && waystone.isValid()) { + info.text(Component.literal(waystone.getName())); + } else { + info.text(Component.translatable("tooltip.waystones.undiscovered")); + } + } + } + + } + +} diff --git a/neoforge/src/main/resources/META-INF/mods.toml b/neoforge/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..7f33361f --- /dev/null +++ b/neoforge/src/main/resources/META-INF/mods.toml @@ -0,0 +1,35 @@ +modLoader="javafml" +loaderVersion="${neoforge_loader_version_range}" +license="${license}" +issueTrackerURL="${issues}" +[[mods]] +modId="${mod_id}" +version="${version}" +displayName="${mod_name}" +displayURL="${homepage}" +logoFile="${mod_id}.png" +credits="BlayTheNinth" +authors="BlayTheNinth" +description='''${description}''' +[[mixins]] +config = "${mod_id}.mixins.json" +[[mixins]] +config = "${mod_id}.neoforge.mixins.json" +[[dependencies.${mod_id}]] +modId="neoforge" +mandatory=true +versionRange="${neoforge_version_range}" +ordering="NONE" +side="BOTH" +[[dependencies.${mod_id}]] +modId="minecraft" +mandatory=true +versionRange="${minecraft_version_range}" +ordering="NONE" +side="BOTH" +[[dependencies.${mod_id}]] +modId="balm" +mandatory=true +versionRange="${balm_version_range}" +ordering="NONE" +side="BOTH" diff --git a/neoforge/src/main/resources/waystones.neoforge.mixins.json b/neoforge/src/main/resources/waystones.neoforge.mixins.json new file mode 100644 index 00000000..13b8d3fb --- /dev/null +++ b/neoforge/src/main/resources/waystones.neoforge.mixins.json @@ -0,0 +1,13 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blay09.mods.waystones.neoforge.mixin", + "compatibilityLevel": "JAVA_17", + "mixins": [ + ], + "client": [ + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/settings.gradle b/settings.gradle index 8e372af5..1ea574d5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,6 +5,14 @@ pluginManagement { name = 'Fabric' url = 'https://maven.fabricmc.net/' } + maven { + name = 'NeoForge' + url = 'https://maven.neoforged.net/releases/' + } + maven { + name = 'Forge' + url = 'https://maven.minecraftforge.net/' + } maven { name = 'Sponge Snapshots' url = 'https://repo.spongepowered.org/repository/maven-public/' @@ -12,4 +20,11 @@ pluginManagement { } } -include("shared", "fabric", "forge") \ No newline at end of file +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' +} + +include("shared") +include("fabric") +include("forge") +include("neoforge") \ No newline at end of file diff --git a/shared/build.gradle b/shared/build.gradle index 9610c0a4..44b70b9a 100644 --- a/shared/build.gradle +++ b/shared/build.gradle @@ -1,15 +1,19 @@ plugins { - id('java') - id('org.spongepowered.gradle.vanilla') version '0.2.1-SNAPSHOT' + id 'idea' + id 'java' id 'maven-publish' + id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' } -group = mod_group -version = mod_version -archivesBaseName = "${mod_id}-common-${minecraft_version}" +base { + archivesName = "${mod_id}-common-${minecraft_version}" +} minecraft { version(minecraft_version) + if(file("src/main/resources/${mod_id}.accesswidener").exists()){ + accessWideners(file("src/main/resources/${mod_id}.accesswidener")) + } } dependencies { @@ -19,38 +23,10 @@ dependencies { exclude(group: "net.blay09.mods", module: "shared-bridge") changing = balm_version.endsWith("SNAPSHOT") } - - compileOnly("me.shedaniel.cloth:cloth-config-fabric:$cloth_config_version") { - transitive = false - } - - compileOnly "mezz.jei:jei-$jei_minecraft_version-common-api:$jei_version" - - compileOnly "mcp.mobius.waila:wthit-api:mojmap-$wthit_version" } apply from: 'dependencies.gradle' -sourceSets { - main { - resources { - srcDirs 'src/main/generated' - } - } -} - -jar { - from(rootProject.file("LICENSE")) { - rename { "${it}_${mod_id}" } - } -} - -sourcesJar { - from(rootProject.file("LICENSE")) { - rename { "${it}_${mod_id}" } - } -} - publishing { publications { mavenJava(MavenPublication) { diff --git a/shared/dependencies.gradle b/shared/dependencies.gradle index 05672e0f..f28923b2 100644 --- a/shared/dependencies.gradle +++ b/shared/dependencies.gradle @@ -7,4 +7,6 @@ repositories { dependencies { compileOnly "info.journeymap:journeymap-api:${journeymap_api_common_version}" + compileOnly "mcp.mobius.waila:wthit-api:mojmap-$wthit_version" + compileOnly "mezz.jei:jei-$jei_minecraft_version-common-api:$jei_version" } \ No newline at end of file diff --git a/shared/src/main/java/net/blay09/mods/waystones/stats/ModStats.java b/shared/src/main/java/net/blay09/mods/waystones/stats/ModStats.java index 5d2e1784..95d07717 100644 --- a/shared/src/main/java/net/blay09/mods/waystones/stats/ModStats.java +++ b/shared/src/main/java/net/blay09/mods/waystones/stats/ModStats.java @@ -2,10 +2,7 @@ import net.blay09.mods.balm.api.Balm; import net.blay09.mods.waystones.Waystones; -import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; -import net.minecraft.stats.StatFormatter; -import net.minecraft.stats.Stats; public class ModStats { diff --git a/shared/src/main/resources/pack.mcmeta b/shared/src/main/resources/pack.mcmeta new file mode 100644 index 00000000..ad94494c --- /dev/null +++ b/shared/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "${mod_name}", + "pack_format": ${pack_format_number} + } +} \ No newline at end of file diff --git a/shared/src/main/resources/waystones.mixins.json b/shared/src/main/resources/waystones.mixins.json new file mode 100644 index 00000000..4efde254 --- /dev/null +++ b/shared/src/main/resources/waystones.mixins.json @@ -0,0 +1,14 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blay09.mods.waystones.fabric.mixin", + "refmap": "${mod_id}.refmap.json", + "compatibilityLevel": "JAVA_17", + "mixins": [ + ], + "client": [ + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/shared/src/main/resources/waystones-icon.png b/shared/src/main/resources/waystones.png similarity index 100% rename from shared/src/main/resources/waystones-icon.png rename to shared/src/main/resources/waystones.png