diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f6f963f..7c20868 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,5 +6,25 @@ on: jobs: build: - uses: TwelveIterationMods/Workflows/.github/workflows/build.yml@v2 - secrets: inherit + runs-on: ubuntu-latest + strategy: + matrix: + loader: [fabric, forge, neoforge] + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Validate gradle wrapper + uses: gradle/wrapper-validation-action@v1 + - name: Setup JDK + uses: actions/setup-java@v3 + with: + java-version: 21 + distribution: temurin + - name: Make gradle wrapper executable + run: chmod +x ./gradlew + - name: Build + run: ./gradlew :${{ matrix.loader }}:build + env: + GPR_USERNAME: ${{secrets.GPR_USERNAME}} + GPR_TOKEN: ${{secrets.GPR_TOKEN}} + GPR_BUILD_NUMBER: ${{github.run_number}} \ No newline at end of file diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 0000000..38ac5aa --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,78 @@ +name: publish-release +on: + workflow_dispatch: + inputs: + bump: + description: 'The bump in version for this release' + required: true + type: choice + default: patch + options: + - major + - minor + - patch + +jobs: + create-release: + runs-on: ubuntu-latest + outputs: + ref: v${{ steps.bump-version.outputs.version }} + version: ${{ steps.bump-version.outputs.version }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Extracting version from properties + shell: bash + run: echo "version=$(cat gradle.properties | grep -w "\bversion" | cut -d= -f2)" >> $GITHUB_OUTPUT + id: extract-version + - name: Bumping version + uses: TwelveIterationMods/bump-version@v1 + with: + version: ${{ steps.extract-version.outputs.version }} + bump: ${{ inputs.bump }} + id: bump-version + - name: Updating version properties + run: | + sed -i "s/^\s*version\s*=.*/version = ${{ steps.bump-version.outputs.version }}/g" gradle.properties + git config user.name "GitHub Actions" + git config user.email "<>" + git commit -am "Set version to ${{ steps.bump-version.outputs.version }}" + git push origin ${BRANCH_NAME} + git tag -a "v${{ steps.bump-version.outputs.version }}" -m "Release ${{ steps.bump-version.outputs.version }}" + git push origin "v${{ steps.bump-version.outputs.version }}" + shell: bash + env: + BRANCH_NAME: ${{ github.head_ref || github.ref_name }} + publish-release: + runs-on: ubuntu-latest + permissions: + packages: write + strategy: + matrix: + loader: [ common, fabric, forge, neoforge ] + site: [ curseforge, modrinth, publish ] + exclude: + - loader: common + site: curseforge + - loader: common + site: modrinth + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + ref: ${{ needs.create-release.outputs.ref }} + - name: Validate gradle wrapper + uses: gradle/wrapper-validation-action@v1 + - name: Setup JDK + uses: actions/setup-java@v3 + with: + java-version: 21 + distribution: temurin + - name: Make gradle wrapper executable + run: chmod +x ./gradlew + - name: Publish + run: ./gradlew :${{ matrix.loader }}:${{ matrix.site }} '-Pversion=${{needs.create-release.outputs.version}}' '-PtwelveIterationsNexusUsername=${{ secrets.NEXUS_USER }}' '-PtwelveIterationsNexusPassword=${{ secrets.NEXUS_PASSWORD }}' + env: + CURSEFORGE_TOKEN: ${{secrets.CURSEFORGE_TOKEN}} + MODRINTH_TOKEN: ${{secrets.MODRINTH_TOKEN}} + needs: create-release \ No newline at end of file diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml new file mode 100644 index 0000000..9b36687 --- /dev/null +++ b/.github/workflows/publish-snapshot.yml @@ -0,0 +1,38 @@ +name: publish-snapshot +on: + push: + tags: + - '*' + +jobs: + publish-snapshot: + runs-on: ubuntu-latest + permissions: + packages: write + strategy: + matrix: + loader: [common, fabric, forge, neoforge] + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Validate gradle wrapper + uses: gradle/wrapper-validation-action@v1 + - name: Setup JDK + uses: actions/setup-java@v3 + with: + java-version: 21 + distribution: temurin + - name: Make gradle wrapper executable + run: chmod +x ./gradlew + - name: Extracting version from properties + shell: bash + run: echo "version=$(cat gradle.properties | grep -w "\bversion" | cut -d= -f2)" >> $GITHUB_OUTPUT + id: extract-version + - name: Bumping version + uses: TwelveIterationMods/bump-version@v1 + with: + version: ${{ steps.extract-version.outputs.version }} + bump: minor + id: bump-version + - name: Publish + run: ./gradlew :${{ matrix.loader }}:publish '-Pversion=${{ steps.bump-version.outputs.version }}-SNAPSHOT' '-PtwelveIterationsNexusUsername=${{ secrets.NEXUS_USER }}' '-PtwelveIterationsNexusPassword=${{ secrets.NEXUS_PASSWORD }}' \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 33d2be3..daf9ebc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,4 @@ +Updated to Minecraft 1.20.6 + - Increased mixin priority to possibly support some additional mods in extra default configs - Fixed difficulty resetting to default even if it was already changed \ No newline at end of file diff --git a/build.gradle b/build.gradle index 77dde71..40bf589 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.4-SNAPSHOT' apply(false) + id 'fabric-loom' version '1.6-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) @@ -8,87 +8,10 @@ plugins { } subprojects { - apply plugin: 'java' - - java.toolchain.languageVersion = JavaLanguageVersion.of(java_version) - java.withSourcesJar() - java.withJavadocJar() - - jar { - from(rootProject.file("LICENSE")) { - rename { "${it}_${mod_id}" } - } - manifest { - attributes([ - "Specification-Title" : mod_id, - "Specification-Vendor" : "BlayTheNinth", - "Specification-Version" : project.jar.archiveVersion, - "Implementation-Title" : project.name, - "Implementation-Version" : project.jar.archiveVersion, - "Implementation-Vendor" : "BlayTheNinth" - ]) - } - } - - sourcesJar { - from(rootProject.file("LICENSE")) { - rename { "${it}_${mod_id}" } - } - } - - repositories { - mavenCentral() - - maven { url "https://maven.twelveiterations.com/repository/maven-public/" } - } - - apply from: rootProject.file('repositories.gradle') - - tasks.withType(JavaCompile).configureEach { - it.options.encoding = 'UTF-8' - it.options.getRelease().set(java_version.toInteger()) - } - - tasks.withType(Javadoc).configureEach { - failOnError false - } - - 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 - } + configurations.all { + resolutionStrategy { + cacheChangingModulesFor 60, 'seconds' + cacheDynamicVersionsFor 60, 'seconds' + } + } } \ No newline at end of file diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle new file mode 100644 index 0000000..1957c33 --- /dev/null +++ b/buildSrc/build.gradle @@ -0,0 +1,3 @@ +plugins { + id 'groovy-gradle-plugin' +} \ No newline at end of file diff --git a/buildSrc/src/main/groovy/multiloader-common.gradle b/buildSrc/src/main/groovy/multiloader-common.gradle new file mode 100644 index 0000000..eae0750 --- /dev/null +++ b/buildSrc/src/main/groovy/multiloader-common.gradle @@ -0,0 +1,123 @@ +plugins { + id 'java-library' + id 'maven-publish' +} + +base { + archivesName = "${mod_id}-${project.name}" + version = "${version}+${minecraft_version}" +} + +java { + toolchain.languageVersion = JavaLanguageVersion.of(java_version) + withSourcesJar() + withJavadocJar() +} + +repositories { + mavenCentral() + // https://docs.gradle.org/current/userguide/declaring_repositories.html#declaring_content_exclusively_found_in_one_repository + exclusiveContent { + forRepository { + maven { + name = 'Sponge' + url = 'https://repo.spongepowered.org/repository/maven-public' + } + } + filter { includeGroupAndSubgroups("org.spongepowered") } + } + maven { url "https://maven.twelveiterations.com/repository/maven-public/" } +} + +dependencies { + implementation 'org.jetbrains:annotations:24.1.0' +} + +// Declare capabilities on the outgoing configurations. +// Read more about capabilities here: https://docs.gradle.org/current/userguide/component_capabilities.html#sec:declaring-additional-capabilities-for-a-local-component +['apiElements', 'runtimeElements', 'sourcesElements', 'javadocElements'].each { variant -> + configurations."$variant".outgoing { + capability("$group:$mod_id-${project.name}:$version") + capability("$group:$mod_id:$version") + } + publishing.publications.configureEach { + suppressPomMetadataWarningsFor(variant) + } +} + +sourcesJar { + from(rootProject.file("LICENSE")) { + rename { "${it}_${mod_name}" } + } +} + +jar { + from(rootProject.file("LICENSE")) { + rename { "${it}_${mod_name}" } + } + + manifest { + attributes([ + 'Specification-Title' : mod_name, + 'Specification-Vendor' : mod_author, + 'Specification-Version' : project.jar.archiveVersion, + 'Implementation-Title' : project.name, + 'Implementation-Version': project.jar.archiveVersion, + 'Implementation-Vendor' : mod_author, + 'Built-On-Minecraft' : minecraft_version + ]) + } +} + +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_author": mod_author, + "mod_id": mod_id, + "license": license, + "description": project.description, + "neoforge_version": neoforge_version, + "neoforge_version_range": neoforge_version_range, + "neoforge_loader_version_range": neoforge_loader_version_range, + "credits": credits, + "java_version": java_version, + "pack_format_number": pack_format_number, + "homepage": homepage, + "issues": issues, + "sources": sources, + "balm_version_range": balm_version_range, + ] + + filesMatching(['pack.mcmeta', 'fabric.mod.json', 'META-INF/mods.toml', 'META-INF/neoforge.mods.toml', '*.mixins.json']) { + expand expandProps + } + inputs.properties(expandProps) +} + +publishing { + publications { + register('mavenJava', MavenPublication) { + version = project.version + (!project.version.endsWith("SNAPSHOT") ? "+" + minecraft_version : "") + artifactId base.archivesName.get() + 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) + } + } +} \ No newline at end of file diff --git a/buildSrc/src/main/groovy/multiloader-loader.gradle b/buildSrc/src/main/groovy/multiloader-loader.gradle new file mode 100644 index 0000000..dc8ed7c --- /dev/null +++ b/buildSrc/src/main/groovy/multiloader-loader.gradle @@ -0,0 +1,52 @@ +plugins { + id 'multiloader-common' +} + +configurations { + commonJava { + canBeResolved = true + } + commonResources { + canBeResolved = true + } + commonGeneratedResources { + canBeResolved = true + } +} + +dependencies { + compileOnly(project(':common')) { + capabilities { + requireCapability "$group:$mod_id" + } + } + commonJava project(path: ':common', configuration: 'commonJava') + commonResources project(path: ':common', configuration: 'commonResources') + commonGeneratedResources project(path: ':common', configuration: 'commonGeneratedResources') +} + +tasks.named('compileJava', JavaCompile) { + dependsOn(configurations.commonJava) + source(configurations.commonJava) +} + +processResources { + dependsOn(configurations.commonResources) + dependsOn(configurations.commonGeneratedResources) + from(configurations.commonResources) + from(configurations.commonGeneratedResources) +} + +tasks.named('javadoc', Javadoc).configure { + dependsOn(configurations.commonJava) + source(configurations.commonJava) +} + +tasks.named("sourcesJar", Jar) { + dependsOn(configurations.commonJava) + from(configurations.commonJava) + dependsOn(configurations.commonResources) + from(configurations.commonResources) + dependsOn(configurations.commonGeneratedResources) + from(configurations.commonGeneratedResources) +} \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle new file mode 100644 index 0000000..f0d5fe8 --- /dev/null +++ b/common/build.gradle @@ -0,0 +1,60 @@ +plugins { + id 'multiloader-common' + id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' +} + +base { + archivesName = "${mod_id}-common-${minecraft_version}" +} + +minecraft { + version(minecraft_version) + def aw = file("src/main/resources/${mod_id}.accesswidener") + if (aw.exists()) { + accessWideners(aw) + } +} + +dependencies { + compileOnly "org.spongepowered:mixin:$mixin_version" +} + +apply from: rootProject.file('repositories.gradle') +apply from: 'dependencies.gradle' + +configurations { + commonJava { + canBeResolved = false + canBeConsumed = true + } + commonResources { + canBeResolved = false + canBeConsumed = true + } + commonGeneratedResources { + canBeResolved = false + canBeConsumed = true + } +} + +sourceSets { + generated { + resources { + srcDir 'src/generated/resources' + } + } +} + +artifacts { + commonJava sourceSets.main.java.sourceDirectories.singleFile + commonResources sourceSets.main.resources.sourceDirectories.singleFile + commonGeneratedResources sourceSets.generated.resources.sourceDirectories.singleFile +} + +sourceSets { + main { + java { + srcDir 'src/shell/java' + } + } +} \ No newline at end of file diff --git a/common/dependencies.gradle b/common/dependencies.gradle new file mode 100644 index 0000000..0340848 --- /dev/null +++ b/common/dependencies.gradle @@ -0,0 +1,5 @@ +dependencies { + implementation("net.blay09.mods:balm-common:${balm_version}") { + changing = balm_version.endsWith("SNAPSHOT") + } +} \ No newline at end of file diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/DefaultOptions.java b/common/src/main/java/net/blay09/mods/defaultoptions/DefaultOptions.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/DefaultOptions.java rename to common/src/main/java/net/blay09/mods/defaultoptions/DefaultOptions.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsDefaultHandlers.java b/common/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsDefaultHandlers.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsDefaultHandlers.java rename to common/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsDefaultHandlers.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsHandlerException.java b/common/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsHandlerException.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsHandlerException.java rename to common/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsHandlerException.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsInitializer.java b/common/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsInitializer.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsInitializer.java rename to common/src/main/java/net/blay09/mods/defaultoptions/DefaultOptionsInitializer.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/ExtraDefaultOptionsHandler.java b/common/src/main/java/net/blay09/mods/defaultoptions/ExtraDefaultOptionsHandler.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/ExtraDefaultOptionsHandler.java rename to common/src/main/java/net/blay09/mods/defaultoptions/ExtraDefaultOptionsHandler.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/InternalMethodsImpl.java b/common/src/main/java/net/blay09/mods/defaultoptions/InternalMethodsImpl.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/InternalMethodsImpl.java rename to common/src/main/java/net/blay09/mods/defaultoptions/InternalMethodsImpl.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/PlatformBindings.java b/common/src/main/java/net/blay09/mods/defaultoptions/PlatformBindings.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/PlatformBindings.java rename to common/src/main/java/net/blay09/mods/defaultoptions/PlatformBindings.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/SimpleDefaultOptionsFileHandler.java b/common/src/main/java/net/blay09/mods/defaultoptions/SimpleDefaultOptionsFileHandler.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/SimpleDefaultOptionsFileHandler.java rename to common/src/main/java/net/blay09/mods/defaultoptions/SimpleDefaultOptionsFileHandler.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsAPI.java b/common/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsAPI.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsAPI.java rename to common/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsAPI.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsCategory.java b/common/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsCategory.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsCategory.java rename to common/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsCategory.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsHandler.java b/common/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsHandler.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsHandler.java rename to common/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsHandler.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsLoadStage.java b/common/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsLoadStage.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsLoadStage.java rename to common/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsLoadStage.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsPlugin.java b/common/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsPlugin.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsPlugin.java rename to common/src/main/java/net/blay09/mods/defaultoptions/api/DefaultOptionsPlugin.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/api/InternalMethods.java b/common/src/main/java/net/blay09/mods/defaultoptions/api/InternalMethods.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/api/InternalMethods.java rename to common/src/main/java/net/blay09/mods/defaultoptions/api/InternalMethods.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/api/SimpleDefaultOptionsHandler.java b/common/src/main/java/net/blay09/mods/defaultoptions/api/SimpleDefaultOptionsHandler.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/api/SimpleDefaultOptionsHandler.java rename to common/src/main/java/net/blay09/mods/defaultoptions/api/SimpleDefaultOptionsHandler.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/command/DefaultOptionsCommand.java b/common/src/main/java/net/blay09/mods/defaultoptions/command/DefaultOptionsCommand.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/command/DefaultOptionsCommand.java rename to common/src/main/java/net/blay09/mods/defaultoptions/command/DefaultOptionsCommand.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/config/DefaultOptionsConfig.java b/common/src/main/java/net/blay09/mods/defaultoptions/config/DefaultOptionsConfig.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/config/DefaultOptionsConfig.java rename to common/src/main/java/net/blay09/mods/defaultoptions/config/DefaultOptionsConfig.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/config/DefaultOptionsConfigData.java b/common/src/main/java/net/blay09/mods/defaultoptions/config/DefaultOptionsConfigData.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/config/DefaultOptionsConfigData.java rename to common/src/main/java/net/blay09/mods/defaultoptions/config/DefaultOptionsConfigData.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/difficulty/DefaultDifficultyHandler.java b/common/src/main/java/net/blay09/mods/defaultoptions/difficulty/DefaultDifficultyHandler.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/difficulty/DefaultDifficultyHandler.java rename to common/src/main/java/net/blay09/mods/defaultoptions/difficulty/DefaultDifficultyHandler.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/difficulty/UnobfuscatedDifficulty.java b/common/src/main/java/net/blay09/mods/defaultoptions/difficulty/UnobfuscatedDifficulty.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/difficulty/UnobfuscatedDifficulty.java rename to common/src/main/java/net/blay09/mods/defaultoptions/difficulty/UnobfuscatedDifficulty.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/keys/DefaultKeyMapping.java b/common/src/main/java/net/blay09/mods/defaultoptions/keys/DefaultKeyMapping.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/keys/DefaultKeyMapping.java rename to common/src/main/java/net/blay09/mods/defaultoptions/keys/DefaultKeyMapping.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/keys/KeyMappingDefaultsHandler.java b/common/src/main/java/net/blay09/mods/defaultoptions/keys/KeyMappingDefaultsHandler.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/keys/KeyMappingDefaultsHandler.java rename to common/src/main/java/net/blay09/mods/defaultoptions/keys/KeyMappingDefaultsHandler.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/mixin/KeyMappingAccessor.java b/common/src/main/java/net/blay09/mods/defaultoptions/mixin/KeyMappingAccessor.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/mixin/KeyMappingAccessor.java rename to common/src/main/java/net/blay09/mods/defaultoptions/mixin/KeyMappingAccessor.java diff --git a/shared/src/main/java/net/blay09/mods/defaultoptions/mixin/OptionsMixin.java b/common/src/main/java/net/blay09/mods/defaultoptions/mixin/OptionsMixin.java similarity index 100% rename from shared/src/main/java/net/blay09/mods/defaultoptions/mixin/OptionsMixin.java rename to common/src/main/java/net/blay09/mods/defaultoptions/mixin/OptionsMixin.java diff --git a/shared/src/main/resources/META-INF/services/net.blay09.mods.defaultoptions.api.DefaultOptionsPlugin b/common/src/main/resources/META-INF/services/net.blay09.mods.defaultoptions.api.DefaultOptionsPlugin similarity index 100% rename from shared/src/main/resources/META-INF/services/net.blay09.mods.defaultoptions.api.DefaultOptionsPlugin rename to common/src/main/resources/META-INF/services/net.blay09.mods.defaultoptions.api.DefaultOptionsPlugin diff --git a/shared/src/main/resources/assets/defaultoptions/lang/en_us.json b/common/src/main/resources/assets/defaultoptions/lang/en_us.json similarity index 100% rename from shared/src/main/resources/assets/defaultoptions/lang/en_us.json rename to common/src/main/resources/assets/defaultoptions/lang/en_us.json diff --git a/shared/src/main/resources/assets/defaultoptions/lang/pt_br.json b/common/src/main/resources/assets/defaultoptions/lang/pt_br.json similarity index 97% rename from shared/src/main/resources/assets/defaultoptions/lang/pt_br.json rename to common/src/main/resources/assets/defaultoptions/lang/pt_br.json index c2c9bfc..4b8b267 100644 --- a/shared/src/main/resources/assets/defaultoptions/lang/pt_br.json +++ b/common/src/main/resources/assets/defaultoptions/lang/pt_br.json @@ -1,5 +1,5 @@ -{ - "config.defaultoptions.title": "Opções padrão", - "config.defaultoptions.defaultDifficulty": "Dificuldade padrão", - "config.defaultoptions.lockDifficulty": "Travar Dificuldade" +{ + "config.defaultoptions.title": "Opções padrão", + "config.defaultoptions.defaultDifficulty": "Dificuldade padrão", + "config.defaultoptions.lockDifficulty": "Travar Dificuldade" } \ No newline at end of file diff --git a/shared/src/main/resources/defaultoptions.mixins.json b/common/src/main/resources/defaultoptions.mixins.json similarity index 100% rename from shared/src/main/resources/defaultoptions.mixins.json rename to common/src/main/resources/defaultoptions.mixins.json diff --git a/shared/src/main/resources/defaultoptions.png b/common/src/main/resources/defaultoptions.png similarity index 100% rename from shared/src/main/resources/defaultoptions.png rename to common/src/main/resources/defaultoptions.png diff --git a/shared/src/main/resources/pack.mcmeta b/common/src/main/resources/pack.mcmeta similarity index 100% rename from shared/src/main/resources/pack.mcmeta rename to common/src/main/resources/pack.mcmeta diff --git a/fabric/build.gradle b/fabric/build.gradle index d16daa9..ec14237 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -1,133 +1,81 @@ plugins { - id 'fabric-loom' - id 'maven-publish' - id 'idea' - id 'net.darkhax.curseforgegradle' - id "com.modrinth.minotaur" -} - -base { - archivesName = "${mod_id}-fabric-${minecraft_version}" + id 'multiloader-loader' + id 'fabric-loom' + id 'net.darkhax.curseforgegradle' + id "com.modrinth.minotaur" } dependencies { - minecraft "com.mojang:minecraft:${minecraft_version}" - mappings loom.officialMojangMappings() - - modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" - modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" - - modImplementation("net.blay09.mods:balm-fabric:${balm_version}") { - transitive = false - changing = balm_version.endsWith("SNAPSHOT") - } - - implementation project(":shared") - - compileOnly "org.jetbrains:annotations:22.0.0" + minecraft "com.mojang:minecraft:${minecraft_version}" + mappings loom.officialMojangMappings() + modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" } +apply from: rootProject.file('repositories.gradle') 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() - setConfigName("fabric Client") - ideConfigGenerated(true) - runDir("run") - } - server { - server() - setConfigName("fabric Server") - ideConfigGenerated(true) - runDir("run") - } - data { - inherit client - setConfigName("fabric Data") - ideConfigGenerated(true) - runDir("build/datagen") - - vmArg "-Dfabric-api.datagen" - vmArg "-Dfabric-api.datagen.output-dir=${project(":shared").file("src/generated/resources")}" - vmArg "-Dfabric-api.datagen.modid=${mod_id}" - } - } -} - -sourceSets.main.resources.srcDir('src/generated/resources') - -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) -} - -processResources { - from project(":shared").sourceSets.main.resources -} - -publishing { - publications { - mavenJava(MavenPublication) { - artifactId = mod_id + "-fabric" - 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) - } - } + def aw = project(":common").file("src/main/resources/${mod_id}.accesswidener") + if (aw.exists()) { + accessWidenerPath.set(aw) + } + + mixin { + defaultRefmapName.set("${mod_id}.refmap.json") + } + + runs { + client { + client() + setConfigName("fabric Client") + ideConfigGenerated(true) + runDir("runs/client") + } + server { + server() + setConfigName("fabric Server") + ideConfigGenerated(true) + runDir("runs/server") + } + data { + inherit client + setConfigName("fabric Data") + ideConfigGenerated(true) + runDir("build/datagen") + + vmArg "-Dfabric-api.datagen" + vmArg "-Dfabric-api.datagen.output-dir=${project(":common").file("src/generated/resources")}" + vmArg "-Dfabric-api.datagen.modid=${mod_id}" + } + } } task curseforge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) { - dependsOn('build') - description = 'Publishes the Fabric build to CurseForge.' - group = 'publishing' + dependsOn('build') + description = 'Publishes the Fabric build to CurseForge.' + group = 'publishing' - apiToken = project.findProperty("curseforge.api_key") ?: System.getenv("CURSEFORGE_TOKEN") ?: "none" + apiToken = project.findProperty("curseforge.api_key") ?: System.getenv("CURSEFORGE_TOKEN") ?: "none" - def mainFile = upload(curseforge_fabric_project_id, file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")) - mainFile.changelog = rootProject.file('CHANGELOG.md').text - mainFile.addRequirement("fabric-api") - mainFile.addRequirement("balm-fabric") - project.minecraft_versions.split(',').toList().each { mainFile.addGameVersion(it) } - mainFile.releaseType = "release" + def mainFile = upload(curseforge_fabric_project_id, file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")) + mainFile.changelog = rootProject.file('CHANGELOG.md').text + mainFile.addRequirement("fabric-api") + 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 + "+fabric-" + project.minecraft_version - uploadFile = remapJar - changelog = rootProject.file("CHANGELOG.md").text - gameVersions = project.minecraft_versions.split(',').toList() - syncBodyFrom = rootProject.file("modpage.md").text - loaders = ['fabric'] - dependencies { - required.project "fabric-api" - required.project "balm" - } + token = project.findProperty("modrinth.token") ?: System.getenv("MODRINTH_TOKEN") ?: "none" + 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("modpage.md").text + loaders = ['fabric'] + dependencies { + required.project "fabric-api" + } } \ No newline at end of file diff --git a/fabric/dependencies.gradle b/fabric/dependencies.gradle index 3ced179..23de598 100644 --- a/fabric/dependencies.gradle +++ b/fabric/dependencies.gradle @@ -1,3 +1,6 @@ dependencies { + modImplementation("net.blay09.mods:balm-fabric:${balm_version}") { + changing = balm_version.contains("SNAPSHOT") + } modImplementation "com.terraformersmc:modmenu:$modmenu_version" } \ No newline at end of file diff --git a/fabric/src/main/java/net/blay09/mods/defaultoptions/fabric/client/FabricDefaultOptionsClient.java b/fabric/src/main/java/net/blay09/mods/defaultoptions/fabric/client/FabricDefaultOptionsClient.java index 7ab3ca0..a987020 100644 --- a/fabric/src/main/java/net/blay09/mods/defaultoptions/fabric/client/FabricDefaultOptionsClient.java +++ b/fabric/src/main/java/net/blay09/mods/defaultoptions/fabric/client/FabricDefaultOptionsClient.java @@ -1,6 +1,7 @@ package net.blay09.mods.defaultoptions.fabric.client; import net.blay09.mods.balm.api.Balm; +import net.blay09.mods.balm.api.EmptyLoadContext; import net.blay09.mods.balm.api.client.BalmClient; import net.blay09.mods.balm.api.client.keymappings.KeyModifier; import net.blay09.mods.defaultoptions.DefaultOptions; @@ -36,7 +37,7 @@ public KeyModifier getDefaultKeyModifier(KeyMapping keyMapping) { } }; - Balm.initialize(DefaultOptions.MOD_ID, () -> {}); - BalmClient.initialize(DefaultOptions.MOD_ID, DefaultOptions::initialize); + Balm.initialize(DefaultOptions.MOD_ID, EmptyLoadContext.INSTANCE, () -> {}); + BalmClient.initialize(DefaultOptions.MOD_ID, EmptyLoadContext.INSTANCE, DefaultOptions::initialize); } } diff --git a/forge/build.gradle b/forge/build.gradle index 55e1be9..8d1b747 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -1,16 +1,11 @@ plugins { - id 'idea' - id 'maven-publish' + id 'multiloader-loader' 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}" -} - mixin { add(sourceSets.main, "${mod_id}.refmap.json") @@ -26,78 +21,49 @@ minecraft { // 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') + def at = file('src/main/resources/META-INF/accesstransformer.cfg') + if (at.exists()) { + accessTransformer = at } runs { client { - workingDirectory project.file('run') + workingDirectory file('runs/client') ideaModule "${rootProject.name}.${project.name}.main" taskName "Client" - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" - property 'forge.enabledGameTestNamespaces', mod_id mods { modClientRun { source sourceSets.main - source project(":shared").sourceSets.main } } } server { - workingDirectory project.file('run') + workingDirectory file('runs/server') ideaModule "${rootProject.name}.${project.name}.main" taskName "Server" - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" - property 'forge.enabledGameTestNamespaces', mod_id mods { modServerRun { source sourceSets.main - source project(":shared").sourceSets.main - } - } - } - - gameTestServer { - workingDirectory project.file('run') - ideaModule "${rootProject.name}.${project.name}.main" - taskName "GameTest" - - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" - - property 'forge.enabledGameTestNamespaces', mod_id - - mods { - modGameTestRun { - source sourceSets.main - source project(":shared").sourceSets.main } } } data { - workingDirectory project.file('run') + workingDirectory file('runs/data') ideaModule "${rootProject.name}.${project.name}.main" args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') taskName "Data" - property 'mixin.env.remapRefMap', 'true' - property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" - mods { modDataRun { source sourceSets.main - source project(":shared").sourceSets.main } } } @@ -109,54 +75,19 @@ sourceSets.main.resources.srcDir 'src/generated/resources' dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor" - - implementation fg.deobf("net.blay09.mods:balm-forge:${balm_version}") { - changing = balm_version.endsWith("SNAPSHOT") - } - - compileOnly project(":shared") - - compileOnly "org.jetbrains:annotations:22.0.0" } +apply from: rootProject.file('repositories.gradle') apply from: 'dependencies.gradle' -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) -} - -processResources { - from project(":shared").sourceSets.main.resources -} - jar.finalizedBy('reobfJar') publishing { publications { mavenJava(MavenPublication) { - artifactId = mod_id + "-forge" - version = project.version + (!project.version.endsWith("SNAPSHOT") ? "+" + minecraft_version : "") - - from components.java fg.component(it) } } - - 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) { @@ -168,7 +99,6 @@ 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.addRequirement("balm") project.minecraft_versions.split(',').toList().each { mainFile.addGameVersion(it) } mainFile.releaseType = "release" } @@ -183,7 +113,4 @@ modrinth { gameVersions = project.minecraft_versions.split(',').toList() syncBodyFrom = rootProject.file("modpage.md").text loaders = ['forge'] - dependencies { - required.project "balm" - } } \ No newline at end of file diff --git a/forge/dependencies.gradle b/forge/dependencies.gradle index 571b417..3453c00 100644 --- a/forge/dependencies.gradle +++ b/forge/dependencies.gradle @@ -1,2 +1,5 @@ dependencies { + implementation fg.deobf("net.blay09.mods:balm-forge:${balm_version}") { + changing = balm_version.contains("SNAPSHOT") + } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 25c7a2f..2c71b77 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ mod_id = defaultoptions mod_name = Default Options mod_main=DefaultOptions description=A way for modpacks to ship a default (key) configuration without having to include an options.txt file. Also allows local options from any mod .cfg file. -version = 20.0.2 +version = 21.0.0 group = net.blay09.mods homepage=https://mods.twelveiterations.com/mc/defaultoptions sources=https://github.com/TwelveIterationMods/DefaultOptions @@ -18,29 +18,29 @@ modrinth_release_type = release modrinth_project_id = WEg59z5b # Minecraft -minecraft_version = 1.20.4 -minecraft_versions = 1.20.4 -minecraft_version_range=[1.20.4,1.21) -pack_format_number=18 -java_version = 17 +minecraft_version = 1.20.6 +minecraft_versions = 1.20.6 +minecraft_version_range = [1.20.6,1.21) +pack_format_number = 18 +java_version = 21 # Balm -balm_version = 9.1.0-SNAPSHOT -balm_version_range = [9.0.0,) +balm_version = 10.1.0-SNAPSHOT +balm_version_range = [10.0.0,) # Forge -forge_version = 49.0.10 -forge_version_range=[49,) -forge_loader_version_range=[49,) +forge_version = 50.0.22 +forge_version_range = [50,) +forge_loader_version_range = [50,) # NeoForge -neoforge_version = 20.4.47-beta -neoforge_version_range=[20.4,) -neoforge_loader_version_range=[1,) +neoforge_version = 20.6.70-beta +neoforge_version_range = [20.6,) +neoforge_loader_version_range = [1,) # Fabric -fabric_version = 0.91.3+1.20.4 -fabric_loader_version = 0.15.3 +fabric_version = 0.98.0+1.20.6 +fabric_loader_version = 0.15.11 # Dependencies mixin_version=0.8.5 @@ -48,4 +48,6 @@ modmenu_version=9.0.0 # Gradle org.gradle.jvmargs=-Xmx3G -org.gradle.daemon=false \ No newline at end of file +org.gradle.daemon=false +mod_author = BlayTheNinth +credits = BlayTheNinth \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index db9a6b8..48c0a02 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/neoforge/build.gradle b/neoforge/build.gradle index 79a43f8..a5886d7 100644 --- a/neoforge/build.gradle +++ b/neoforge/build.gradle @@ -1,8 +1,6 @@ plugins { - id 'java-library' - id 'idea' - id 'maven-publish' - id 'net.neoforged.gradle.userdev' version '7.0.41' + id 'multiloader-loader' + id 'net.neoforged.gradle.userdev' version '7.0.124' id 'net.darkhax.curseforgegradle' id "com.modrinth.minotaur" } @@ -11,9 +9,11 @@ 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') +def at = file('src/main/resources/META-INF/accesstransformer.cfg') +if (at.exists()) { + minecraft.accessTransformers.file at } + runs { configureEach { // Recommended logging data for a userdev environment @@ -61,58 +61,11 @@ 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: rootProject.file('repositories.gradle') 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.' diff --git a/neoforge/dependencies.gradle b/neoforge/dependencies.gradle index 571b417..bf92cd4 100644 --- a/neoforge/dependencies.gradle +++ b/neoforge/dependencies.gradle @@ -1,2 +1,5 @@ dependencies { + implementation("net.blay09.mods:balm-neoforge:${balm_version}") { + changing = balm_version.contains("SNAPSHOT") + } } \ No newline at end of file diff --git a/neoforge/src/main/java/net/blay09/mods/defaultoptions/neoforge/NeoForgeDefaultOptions.java b/neoforge/src/main/java/net/blay09/mods/defaultoptions/neoforge/NeoForgeDefaultOptions.java index 7768562..02bf57a 100644 --- a/neoforge/src/main/java/net/blay09/mods/defaultoptions/neoforge/NeoForgeDefaultOptions.java +++ b/neoforge/src/main/java/net/blay09/mods/defaultoptions/neoforge/NeoForgeDefaultOptions.java @@ -3,20 +3,19 @@ import net.blay09.mods.balm.api.Balm; import net.blay09.mods.balm.api.client.BalmClient; import net.blay09.mods.balm.api.client.keymappings.KeyModifier; +import net.blay09.mods.balm.neoforge.NeoForgeLoadContext; import net.blay09.mods.defaultoptions.DefaultOptions; import net.blay09.mods.defaultoptions.PlatformBindings; import net.blay09.mods.defaultoptions.neoforge.mixin.NeoForgeKeyMappingAccessor; import net.minecraft.client.KeyMapping; import net.neoforged.api.distmarker.Dist; -import net.neoforged.fml.DistExecutor; -import net.neoforged.fml.IExtensionPoint; -import net.neoforged.fml.ModLoadingContext; +import net.neoforged.bus.api.IEventBus; import net.neoforged.fml.common.Mod; -@Mod(DefaultOptions.MOD_ID) +@Mod(value = DefaultOptions.MOD_ID, dist = Dist.CLIENT) public class NeoForgeDefaultOptions { - public NeoForgeDefaultOptions() { + public NeoForgeDefaultOptions(IEventBus modEventBus) { PlatformBindings.INSTANCE = new PlatformBindings() { @Override public void setDefaultKeyModifier(KeyMapping keyMapping, KeyModifier keyModifier) { @@ -63,12 +62,10 @@ private static net.neoforged.neoforge.client.settings.KeyModifier toForge(KeyMod } }; - DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> { - Balm.initialize(DefaultOptions.MOD_ID, () -> {}); - BalmClient.initialize(DefaultOptions.MOD_ID, DefaultOptions::initialize); + final var context = new NeoForgeLoadContext(modEventBus); + Balm.initialize(DefaultOptions.MOD_ID, context, () -> { }); - - ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> IExtensionPoint.DisplayTest.IGNORESERVERONLY, (a, b) -> true)); + BalmClient.initialize(DefaultOptions.MOD_ID, context, DefaultOptions::initialize); } } diff --git a/neoforge/src/main/resources/META-INF/mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml similarity index 97% rename from neoforge/src/main/resources/META-INF/mods.toml rename to neoforge/src/main/resources/META-INF/neoforge.mods.toml index 66ed4c9..a34c765 100644 --- a/neoforge/src/main/resources/META-INF/mods.toml +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -7,6 +7,7 @@ modId="${mod_id}" version="${version}" displayName="${mod_name}" displayURL="${homepage}" +displayTest="NONE" logoFile="${mod_id}.png" credits="BlayTheNinth" authors="BlayTheNinth" diff --git a/repositories.gradle b/repositories.gradle index 4b11d81..fdf3850 100644 --- a/repositories.gradle +++ b/repositories.gradle @@ -10,6 +10,8 @@ repositories { url = "https://maven.shedaniel.me/" content { includeGroup "me.shedaniel" + includeGroup "me.shedaniel.cloth" + includeGroup "dev.architectury" } } diff --git a/settings.gradle b/settings.gradle index 1ea574d..a389f90 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,30 +1,61 @@ pluginManagement { repositories { gradlePluginPortal() - maven { - name = 'Fabric' - url = 'https://maven.fabricmc.net/' + mavenCentral() + exclusiveContent { + forRepository { + maven { + name = 'Fabric' + url = uri("https://maven.fabricmc.net") + } + } + filter { + includeGroup("net.fabricmc") + includeGroup("fabric-loom") + } } - maven { - name = 'NeoForge' - url = 'https://maven.neoforged.net/releases/' + exclusiveContent { + forRepository { + maven { + name = 'NeoForge' + url = uri("https://maven.neoforged.net/releases") + } + } + filter { + includeGroupAndSubgroups("net.neoforged") + includeGroup("codechicken") + } } - maven { - name = 'Forge' - url = 'https://maven.minecraftforge.net/' + exclusiveContent { + forRepository { + maven { + name = 'Forge' + url = uri("https://maven.minecraftforge.net") + } + } + filter { + includeGroupAndSubgroups("net.minecraftforge") + } } - maven { - name = 'Sponge Snapshots' - url = 'https://repo.spongepowered.org/repository/maven-public/' + exclusiveContent { + forRepository { + maven { + name = 'Sponge Snapshots' + url = uri("https://repo.spongepowered.org/repository/maven-public") + } + } + filter { + includeGroupAndSubgroups("org.spongepowered") + } } } } plugins { - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' } -include("shared") +include("common") include("fabric") include("forge") include("neoforge") \ No newline at end of file diff --git a/shared/build.gradle b/shared/build.gradle deleted file mode 100644 index deccd5b..0000000 --- a/shared/build.gradle +++ /dev/null @@ -1,59 +0,0 @@ -plugins { - id 'idea' - id 'java' - id 'maven-publish' - id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' -} - -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 { - compileOnly "org.spongepowered:mixin:$mixin_version" - - compileOnly("net.blay09.mods:balm-common:$balm_version") { - exclude(group: "net.blay09.mods", module: "shared-bridge") - changing = balm_version.endsWith("SNAPSHOT") - } -} - -apply from: 'dependencies.gradle' - -sourceSets.main.resources.srcDir('src/generated/resources') - -publishing { - publications { - mavenJava(MavenPublication) { - artifactId = mod_id + "-common" - version = project.version + (!project.version.endsWith("SNAPSHOT") ? "+" + minecraft_version : "") - - artifact jar - - artifact sourcesJar { - archiveClassifier = 'sources' - } - - artifact project.javadocJar { - archiveClassifier = 'javadoc' - } - } - } - - 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) - } - } -} \ No newline at end of file diff --git a/shared/dependencies.gradle b/shared/dependencies.gradle deleted file mode 100644 index 95b0275..0000000 --- a/shared/dependencies.gradle +++ /dev/null @@ -1,5 +0,0 @@ -repositories { -} - -dependencies { -} \ No newline at end of file