From 2a03dd78fbb419ad23547a655799370c8ad405a2 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Sun, 7 Jul 2024 22:26:59 +0200 Subject: [PATCH] Architectury port because why not --- build.gradle | 154 +++++++----------- common/build.gradle | 24 +++ .../swordblocking/SwordBlockingClient.java | 10 +- .../config/SwordBlockingConfig.java | 0 .../mixin/MixinBipedEntityModel.java | 0 .../mixin/MixinHeldItemRenderer.java | 0 .../swordblocking/mixin/MixinInGameHud.java | 2 +- .../mixin/MixinPlayerEntityRenderer.java | 0 .../resources/assets/swordblocking/icon.png | Bin .../assets/swordblocking/lang/en_us.json | 0 .../assets/swordblocking/lang/ru_ru.json | 0 .../main/resources/swordblocking.mixins.json | 0 fabric/build.gradle | 102 ++++++++++++ .../fabric/SwordBlockingClientFabric.java | 11 ++ .../src}/main/resources/fabric.mod.json | 4 +- gradle.properties | 38 +++-- neoforge/build.gradle | 112 +++++++++++++ neoforge/gradle.properties | 1 + .../neoforge/SwordBlockingClientNeoForge.java | 15 ++ .../resources/META-INF/neoforge.mods.toml | 38 +++++ neoforge/src/main/resources/icon.png | Bin 0 -> 3517 bytes settings.gradle | 14 +- 22 files changed, 402 insertions(+), 123 deletions(-) create mode 100644 common/build.gradle rename {src => common/src}/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java (86%) rename {src => common/src}/main/java/eu/midnightdust/swordblocking/config/SwordBlockingConfig.java (100%) rename {src => common/src}/main/java/eu/midnightdust/swordblocking/mixin/MixinBipedEntityModel.java (100%) rename {src => common/src}/main/java/eu/midnightdust/swordblocking/mixin/MixinHeldItemRenderer.java (100%) rename {src => common/src}/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java (93%) rename {src => common/src}/main/java/eu/midnightdust/swordblocking/mixin/MixinPlayerEntityRenderer.java (100%) rename {src => common/src}/main/resources/assets/swordblocking/icon.png (100%) rename {src => common/src}/main/resources/assets/swordblocking/lang/en_us.json (100%) rename {src => common/src}/main/resources/assets/swordblocking/lang/ru_ru.json (100%) rename {src => common/src}/main/resources/swordblocking.mixins.json (100%) create mode 100644 fabric/build.gradle create mode 100755 fabric/src/main/java/eu/midnightdust/swordblocking/fabric/SwordBlockingClientFabric.java rename {src => fabric/src}/main/resources/fabric.mod.json (85%) create mode 100644 neoforge/build.gradle create mode 100644 neoforge/gradle.properties create mode 100644 neoforge/src/main/java/eu/midnightdust/swordblocking/neoforge/SwordBlockingClientNeoForge.java create mode 100644 neoforge/src/main/resources/META-INF/neoforge.mods.toml create mode 100644 neoforge/src/main/resources/icon.png diff --git a/build.gradle b/build.gradle index 6876efa..7d43deb 100644 --- a/build.gradle +++ b/build.gradle @@ -1,110 +1,80 @@ plugins { - id 'fabric-loom' version '1.6-SNAPSHOT' - id "me.shedaniel.unified-publishing" version "0.1.+" + id "architectury-plugin" version "3.4-SNAPSHOT" + id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false + id "me.shedaniel.unified-publishing" version "0.1.+" apply false + id 'com.github.johnrengelman.shadow' version '8.1.1' apply false } -sourceCompatibility = JavaVersion.VERSION_17 -targetCompatibility = JavaVersion.VERSION_17 - -archivesBaseName = project.archives_base_name -version = project.mod_version -group = project.maven_group +architectury { + minecraft = rootProject.minecraft_version +} repositories { - maven { url "https://api.modrinth.com/maven" } + maven { + url = "https://api.modrinth.com/maven" + } } -dependencies { - //to change the versions see the gradle.properties file - minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - - modImplementation "maven.modrinth:midnightlib:${midnightlib_version}" - include "maven.modrinth:midnightlib:${midnightlib_version}" -} - -processResources { - inputs.property "version", project.version - - filesMatching("fabric.mod.json") { - expand "version": project.version - } -} - -tasks.withType(JavaCompile).configureEach { - it.options.encoding = "UTF-8" - it.options.release = 17 -} - -java { - // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task - // if it is present. - // If you remove this line, sources will not be generated. - withSourcesJar() -} - -jar { - from("LICENSE") { - rename { "${it}_${project.archivesBaseName}"} - } -} - -remapJar { - archiveVersion = "${project.version}-${project.minecraft_version}" - archiveBaseName = "${project.archivesBaseName}" -} - -ext { - releaseChangelog = { - def changes = new StringBuilder() - changes << "## Sword Blocking v$project.version for $project.minecraft_version\n[View the changelog](https://www.github.com/TeamMidnightDust/SwordBlocking/commits/)" - def proc = "git log --max-count=1 --pretty=format:%s".execute() - proc.in.eachLine { line -> - def processedLine = line.toString() - if (!processedLine.contains("New translations") && !processedLine.contains("Merge") && !processedLine.contains("branch")) { - changes << "\n- ${processedLine.capitalize()}" - } +subprojects { + apply plugin: "dev.architectury.loom" + repositories { + maven { + url = "https://api.modrinth.com/maven" + } + maven { url 'https://jitpack.io' } + } + + dependencies { + minecraft "com.mojang:minecraft:${rootProject.minecraft_version}" + // The following line declares the mojmap mappings, you may use other mappings as well + //mappings loom.officialMojangMappings() + // The following line declares the yarn mappings you may select this one as well. + mappings loom.layered { + it.mappings("net.fabricmc:yarn:$rootProject.yarn_mappings:v2") + it.mappings("dev.architectury:yarn-mappings-patch-neoforge:$rootProject.yarn_mappings_patch_neoforge_version") } - proc.waitFor() - return changes.toString() } } -unifiedPublishing { - project { - displayName = "Sword Blocking v$project.version - Fabric $project.minecraft_version" - releaseType = "$project.release_type" - changelog = releaseChangelog() - gameVersions = [] - gameLoaders = ["fabric","quilt"] - mainPublication remapJar - relations { - includes { - curseforge = "midnightlib" - modrinth = "midnightlib" - } - } +allprojects { + apply plugin: "java" + apply plugin: "architectury-plugin" + apply plugin: "maven-publish" - var CURSEFORGE_TOKEN = project.findProperty("CURSEFORGE_TOKEN") ?: System.getenv("CURSEFORGE_TOKEN") - if (CURSEFORGE_TOKEN != null) { - curseforge { - token = CURSEFORGE_TOKEN - id = rootProject.curseforge_id - gameVersions.addAll "Java 21", project.minecraft_version - } - } + archivesBaseName = rootProject.archives_base_name + version = rootProject.mod_version + group = rootProject.maven_group - var MODRINTH_TOKEN = project.findProperty("MODRINTH_TOKEN") ?: System.getenv("MODRINTH_TOKEN") - if (MODRINTH_TOKEN != null) { - modrinth { - token = MODRINTH_TOKEN - id = rootProject.modrinth_id - version = "$project.version" - gameVersions.addAll project.minecraft_version + repositories { + // Add repositories to retrieve artifacts from in here. + // You should only use this when depending on other mods because + // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html + // for more information about repositories. + } + + tasks.withType(JavaCompile) { + options.encoding = "UTF-8" + options.release = 21 + } + ext { + releaseChangelog = { + def changes = new StringBuilder() + changes << "## SwordBlocking v$project.version for $project.minecraft_version\n[View the changelog](https://www.github.com/TeamMidnightDust/SwordBlocking/commits/)" + def proc = "git log --max-count=1 --pretty=format:%s".execute() + proc.in.eachLine { line -> + def processedLine = line.toString() + if (!processedLine.contains("New translations") && !processedLine.contains("Merge") && !processedLine.contains("branch")) { + changes << "\n- ${processedLine.capitalize()}" + } } + proc.waitFor() + return changes.toString() } } + + java { + withSourcesJar() + } } \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle new file mode 100644 index 0000000..8852913 --- /dev/null +++ b/common/build.gradle @@ -0,0 +1,24 @@ +architectury { + common(rootProject.enabled_platforms.split(",")) +} + +dependencies { + // We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies + // Do NOT use other classes from fabric loader + modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" + modCompileOnlyApi "maven.modrinth:midnightlib:${rootProject.midnightlib_version}-fabric" +} + +publishing { + publications { + mavenCommon(MavenPublication) { + artifactId = rootProject.archives_base_name + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + } +} diff --git a/src/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java b/common/src/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java similarity index 86% rename from src/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java rename to common/src/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java index 3e2630a..265b9e9 100644 --- a/src/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java +++ b/common/src/main/java/eu/midnightdust/swordblocking/SwordBlockingClient.java @@ -1,7 +1,6 @@ package eu.midnightdust.swordblocking; import eu.midnightdust.swordblocking.config.SwordBlockingConfig; -import net.fabricmc.api.ClientModInitializer; import net.minecraft.component.DataComponentTypes; import net.minecraft.entity.LivingEntity; import net.minecraft.item.AxeItem; @@ -12,10 +11,11 @@ import net.minecraft.item.SwordItem; import java.util.Objects; -public class SwordBlockingClient implements ClientModInitializer { - @Override - public void onInitializeClient() { - SwordBlockingConfig.init("swordblocking", SwordBlockingConfig.class); +public class SwordBlockingClient { + public static final String MOD_ID = "swordblocking"; + + public static void init() { + SwordBlockingConfig.init(MOD_ID, SwordBlockingConfig.class); } public static boolean isWeaponBlocking(LivingEntity entity) { diff --git a/src/main/java/eu/midnightdust/swordblocking/config/SwordBlockingConfig.java b/common/src/main/java/eu/midnightdust/swordblocking/config/SwordBlockingConfig.java similarity index 100% rename from src/main/java/eu/midnightdust/swordblocking/config/SwordBlockingConfig.java rename to common/src/main/java/eu/midnightdust/swordblocking/config/SwordBlockingConfig.java diff --git a/src/main/java/eu/midnightdust/swordblocking/mixin/MixinBipedEntityModel.java b/common/src/main/java/eu/midnightdust/swordblocking/mixin/MixinBipedEntityModel.java similarity index 100% rename from src/main/java/eu/midnightdust/swordblocking/mixin/MixinBipedEntityModel.java rename to common/src/main/java/eu/midnightdust/swordblocking/mixin/MixinBipedEntityModel.java diff --git a/src/main/java/eu/midnightdust/swordblocking/mixin/MixinHeldItemRenderer.java b/common/src/main/java/eu/midnightdust/swordblocking/mixin/MixinHeldItemRenderer.java similarity index 100% rename from src/main/java/eu/midnightdust/swordblocking/mixin/MixinHeldItemRenderer.java rename to common/src/main/java/eu/midnightdust/swordblocking/mixin/MixinHeldItemRenderer.java diff --git a/src/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java b/common/src/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java similarity index 93% rename from src/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java rename to common/src/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java index 638c802..bdc9f12 100644 --- a/src/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java +++ b/common/src/main/java/eu/midnightdust/swordblocking/mixin/MixinInGameHud.java @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.At; @Mixin(InGameHud.class) public abstract class MixinInGameHud { - @ModifyExpressionValue(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;getOffHandStack()Lnet/minecraft/item/ItemStack;"), method = "renderHotbar") + @ModifyExpressionValue(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;getOffHandStack()Lnet/minecraft/item/ItemStack;"), method = "renderHotbarVanilla") public ItemStack swordblocking$hideOffHandSlot(ItemStack original) { return (SwordBlockingConfig.enabled && SwordBlockingConfig.hideOffhandSlot && original.getItem() instanceof ShieldItem) ? ItemStack.EMPTY : original; } diff --git a/src/main/java/eu/midnightdust/swordblocking/mixin/MixinPlayerEntityRenderer.java b/common/src/main/java/eu/midnightdust/swordblocking/mixin/MixinPlayerEntityRenderer.java similarity index 100% rename from src/main/java/eu/midnightdust/swordblocking/mixin/MixinPlayerEntityRenderer.java rename to common/src/main/java/eu/midnightdust/swordblocking/mixin/MixinPlayerEntityRenderer.java diff --git a/src/main/resources/assets/swordblocking/icon.png b/common/src/main/resources/assets/swordblocking/icon.png similarity index 100% rename from src/main/resources/assets/swordblocking/icon.png rename to common/src/main/resources/assets/swordblocking/icon.png diff --git a/src/main/resources/assets/swordblocking/lang/en_us.json b/common/src/main/resources/assets/swordblocking/lang/en_us.json similarity index 100% rename from src/main/resources/assets/swordblocking/lang/en_us.json rename to common/src/main/resources/assets/swordblocking/lang/en_us.json diff --git a/src/main/resources/assets/swordblocking/lang/ru_ru.json b/common/src/main/resources/assets/swordblocking/lang/ru_ru.json similarity index 100% rename from src/main/resources/assets/swordblocking/lang/ru_ru.json rename to common/src/main/resources/assets/swordblocking/lang/ru_ru.json diff --git a/src/main/resources/swordblocking.mixins.json b/common/src/main/resources/swordblocking.mixins.json similarity index 100% rename from src/main/resources/swordblocking.mixins.json rename to common/src/main/resources/swordblocking.mixins.json diff --git a/fabric/build.gradle b/fabric/build.gradle new file mode 100644 index 0000000..0587754 --- /dev/null +++ b/fabric/build.gradle @@ -0,0 +1,102 @@ +plugins { + id 'com.github.johnrengelman.shadow' + id "me.shedaniel.unified-publishing" +} + +architectury { + platformSetupLoomIde() + fabric() +} + +loom { +} + +configurations { + common + shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files. + compileClasspath.extendsFrom common + runtimeClasspath.extendsFrom common + developmentFabric.extendsFrom common + archivesBaseName = rootProject.archives_base_name + "-fabric" +} + +dependencies { + modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" + modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}" + modImplementation include ("maven.modrinth:midnightlib:${rootProject.midnightlib_version}-fabric") + + common(project(path: ":common", configuration: "namedElements")) { transitive false } + shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } +} + +processResources { + inputs.property "version", project.version + + filesMatching("fabric.mod.json") { + expand "version": project.version + } +} + +shadowJar { + exclude "architectury.common.json" + + configurations = [project.configurations.shadowCommon] + archiveClassifier = "dev-shadow" +} + +remapJar { + input.set shadowJar.archiveFile + dependsOn shadowJar +} + +sourcesJar { + def commonSources = project(":common").sourcesJar + dependsOn commonSources + from commonSources.archiveFile.map { zipTree(it) } +} + +components.java { + withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { + skip() + } +} + +unifiedPublishing { + project { + displayName = "SwordBlocking $project.version - Fabric $project.minecraft_version" + releaseType = "$project.release_type" + changelog = releaseChangelog() + gameVersions = [] + gameLoaders = ["fabric","quilt"] + mainPublication remapJar + relations { + depends { + curseforge = "fabric-api" + modrinth = "fabric-api" + } + includes { + curseforge = "midnightlib" + modrinth = "midnightlib" + } + } + + var CURSEFORGE_TOKEN = project.findProperty("CURSEFORGE_TOKEN") ?: System.getenv("CURSEFORGE_TOKEN") + if (CURSEFORGE_TOKEN != null) { + curseforge { + token = CURSEFORGE_TOKEN + id = rootProject.curseforge_id + gameVersions.addAll "Java 21", project.minecraft_version + } + } + + var MODRINTH_TOKEN = project.findProperty("MODRINTH_TOKEN") ?: System.getenv("MODRINTH_TOKEN") + if (MODRINTH_TOKEN != null) { + modrinth { + token = MODRINTH_TOKEN + id = rootProject.modrinth_id + version = "$project.version-$project.name" + gameVersions.addAll project.minecraft_version + } + } + } +} \ No newline at end of file diff --git a/fabric/src/main/java/eu/midnightdust/swordblocking/fabric/SwordBlockingClientFabric.java b/fabric/src/main/java/eu/midnightdust/swordblocking/fabric/SwordBlockingClientFabric.java new file mode 100755 index 0000000..9fd97c8 --- /dev/null +++ b/fabric/src/main/java/eu/midnightdust/swordblocking/fabric/SwordBlockingClientFabric.java @@ -0,0 +1,11 @@ +package eu.midnightdust.swordblocking.fabric; + +import eu.midnightdust.swordblocking.SwordBlockingClient; +import net.fabricmc.api.ClientModInitializer; + +public class SwordBlockingClientFabric implements ClientModInitializer { + @Override + public void onInitializeClient() { + SwordBlockingClient.init(); + } +} diff --git a/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json similarity index 85% rename from src/main/resources/fabric.mod.json rename to fabric/src/main/resources/fabric.mod.json index 6410819..57aa328 100644 --- a/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "${version}", "name": "Sword Blocking", - "description": "Adds sword blocking to new versions, you just need a shield in your offhand!", + "description": "Adds sword blocking to new versions, you just need a shield in your offhand (or ViaVersion)!", "authors": [ "Motschen", "TeamMidnightDust", @@ -22,7 +22,7 @@ "environment": "client", "entrypoints": { "client": [ - "eu.midnightdust.swordblocking.SwordBlockingClient" + "eu.midnightdust.swordblocking.fabric.SwordBlockingClientFabric" ] }, diff --git a/gradle.properties b/gradle.properties index 78addc0..39bc71a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,22 +1,24 @@ -# Done to increase the memory available to gradle. -org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true +org.gradle.jvmargs=-Xmx2048M -# Fabric Properties - # check these on https://fabricmc.net/use - minecraft_version=1.21 - yarn_mappings=1.21+build.1 - loader_version=0.15.11 +minecraft_version=1.21 +yarn_mappings=1.21+build.2 +enabled_platforms=fabric,neoforge -# Mod Properties - mod_version = 2.0.1 - maven_group = eu.midnightdust - archives_base_name = swordblocking - release_type=release - curseforge_id=427738 - modrinth_id=4q52b4lD +archives_base_name=swordblocking +mod_version=2.1.0 +maven_group=eu.midnightdust +release_type=release +curseforge_id=427738 +modrinth_id=4q52b4lD -# Dependencies - # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_version=0.100.1+1.21 - midnightlib_version=1.5.6-fabric +midnightlib_version=1.5.7 + +fabric_loader_version=0.15.11 +fabric_api_version=0.100.1+1.21 + +neoforge_version=21.0.14-beta +yarn_mappings_patch_neoforge_version = 1.21+build.4 + +quilt_loader_version=0.19.0-beta.18 +quilt_fabric_api_version=7.0.1+0.83.0-1.20 diff --git a/neoforge/build.gradle b/neoforge/build.gradle new file mode 100644 index 0000000..849ac8a --- /dev/null +++ b/neoforge/build.gradle @@ -0,0 +1,112 @@ +plugins { + id 'com.github.johnrengelman.shadow' + id "me.shedaniel.unified-publishing" +} + +repositories { + maven { + name = 'NeoForged' + url = 'https://maven.neoforged.net/releases' + } +} + + +architectury { + platformSetupLoomIde() + neoForge() +} + +loom { + accessWidenerPath = project(":common").loom.accessWidenerPath +} + +configurations { + common { + canBeResolved = true + canBeConsumed = false + } + compileClasspath.extendsFrom common + runtimeClasspath.extendsFrom common + developmentNeoForge.extendsFrom common + + // Files in this configuration will be bundled into your mod using the Shadow plugin. + // Don't use the `shadow` configuration from the plugin itself as it's meant for excluding files. + shadowBundle { + canBeResolved = true + canBeConsumed = false + } + archivesBaseName = rootProject.archives_base_name + "-neoforge" +} + +dependencies { + neoForge "net.neoforged:neoforge:$rootProject.neoforge_version" + modImplementation include ("maven.modrinth:midnightlib:${rootProject.midnightlib_version}-neoforge") + + common(project(path: ':common', configuration: 'namedElements')) { transitive false } + shadowBundle project(path: ':common', configuration: 'transformProductionNeoForge') +} + +processResources { + inputs.property 'version', project.version + + filesMatching('META-INF/neoforge.mods.toml') { + expand version: project.version + } +} + +shadowJar { + configurations = [project.configurations.shadowBundle] + archiveClassifier = 'dev-shadow' +} + +remapJar { + input.set shadowJar.archiveFile +} + +sourcesJar { + def commonSources = project(":common").sourcesJar + dependsOn commonSources + from commonSources.archiveFile.map { zipTree(it) } +} + +components.java { + withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { + skip() + } +} + +unifiedPublishing { + project { + displayName = "SwordBlocking $project.version - NeoForge $project.minecraft_version" + releaseType = "$project.release_type" + changelog = releaseChangelog() + gameVersions = [] + gameLoaders = ["neoforge"] + mainPublication remapJar + relations { + includes { + curseforge = "midnightlib" + modrinth = "midnightlib" + } + } + + var CURSEFORGE_TOKEN = project.findProperty("CURSEFORGE_TOKEN") ?: System.getenv("CURSEFORGE_TOKEN") + if (CURSEFORGE_TOKEN != null) { + curseforge { + token = CURSEFORGE_TOKEN + id = rootProject.curseforge_id + gameVersions.addAll "Java 21", project.minecraft_version + } + } + + var MODRINTH_TOKEN = project.findProperty("MODRINTH_TOKEN") ?: System.getenv("MODRINTH_TOKEN") + if (MODRINTH_TOKEN != null) { + modrinth { + token = MODRINTH_TOKEN + id = rootProject.modrinth_id + version = "$project.version-$project.name" + gameVersions.addAll project.minecraft_version + } + } + } +} diff --git a/neoforge/gradle.properties b/neoforge/gradle.properties new file mode 100644 index 0000000..2914393 --- /dev/null +++ b/neoforge/gradle.properties @@ -0,0 +1 @@ +loom.platform=neoforge \ No newline at end of file diff --git a/neoforge/src/main/java/eu/midnightdust/swordblocking/neoforge/SwordBlockingClientNeoForge.java b/neoforge/src/main/java/eu/midnightdust/swordblocking/neoforge/SwordBlockingClientNeoForge.java new file mode 100644 index 0000000..61688d2 --- /dev/null +++ b/neoforge/src/main/java/eu/midnightdust/swordblocking/neoforge/SwordBlockingClientNeoForge.java @@ -0,0 +1,15 @@ +package eu.midnightdust.swordblocking.neoforge; + +import eu.midnightdust.swordblocking.SwordBlockingClient; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.fml.common.Mod; + +import static eu.midnightdust.swordblocking.SwordBlockingClient.MOD_ID; + +@SuppressWarnings("all") +@Mod(value = MOD_ID, dist = Dist.CLIENT) +public class SwordBlockingClientNeoForge { + public SwordBlockingClientNeoForge() { + SwordBlockingClient.init(); + } +} \ No newline at end of file diff --git a/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 0000000..21baefd --- /dev/null +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,38 @@ +modLoader = "javafml" +loaderVersion = "[2,)" +#issueTrackerURL = "" +license = "MIT License" + +[[mods]] +modId = "swordblocking" +version = "${version}" +displayName = "Sword Blocking" +logoFile = "icon.png" +authors = "Motschen, TeamMidnightDust, lowercasebtw" +description = ''' +Adds sword blocking to new versions, you just need a shield in your offhand (or ViaVersion)! +''' + +[[mixins]] +config = "swordblocking.mixins.json" + +[[dependencies.visualoverhaul]] +modId = "neoforge" +mandatory = true +versionRange = "[21.0,)" +ordering = "NONE" +side = "BOTH" + +[[dependencies.visualoverhaul]] +modId = "minecraft" +mandatory = true +versionRange = "[1.21,)" +ordering = "NONE" +side = "BOTH" + +[[dependencies.visualoverhaul]] +modId = "picturesign" +mandatory = true +versionRange = "[1.0,)" +ordering = "AFTER" +side = "BOTH" diff --git a/neoforge/src/main/resources/icon.png b/neoforge/src/main/resources/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b0fdd2b0165b993fba67ce32c25ba74a10b3d7b1 GIT binary patch literal 3517 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