diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index dd505ab..d9170d1 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -10,6 +10,7 @@ dependencies { clientCompileOnly(xplatClient.output) modCompileOnly(variantOf(rootProject.libs.emi.fabric) { classifier("api") }) + modCompileOnly(libs.bundles.fabric.compile) include(libs.bundles.fabric.bundle) modImplementation(libs.bundles.fabric.bundle) diff --git a/fabric/src/client/java/gay/pridecraft/joy/fabric/client/MixinPlugin.java b/fabric/src/client/java/gay/pridecraft/joy/fabric/client/MixinPlugin.java new file mode 100644 index 0000000..ad2e801 --- /dev/null +++ b/fabric/src/client/java/gay/pridecraft/joy/fabric/client/MixinPlugin.java @@ -0,0 +1,50 @@ +package gay.pridecraft.joy.fabric.client; + +import net.fabricmc.loader.api.FabricLoader; +import org.objectweb.asm.tree.ClassNode; +import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; +import org.spongepowered.asm.mixin.extensibility.IMixinInfo; + +import java.util.List; +import java.util.Set; + +/** + * @author Ampflower + * @since ${version} + **/ +public class MixinPlugin implements IMixinConfigPlugin { + @Override + public void onLoad(final String mixinPackage) { + + } + + @Override + public String getRefMapperConfig() { + return null; + } + + @Override + public boolean shouldApplyMixin(final String targetClassName, final String mixinClassName) { + return FabricLoader.getInstance().isModLoaded(mixinClassName.split("\\.")[0]); + } + + @Override + public void acceptTargets(final Set myTargets, final Set otherTargets) { + + } + + @Override + public List getMixins() { + return null; + } + + @Override + public void preApply(final String targetClassName, final ClassNode targetClass, final String mixinClassName, final IMixinInfo mixinInfo) { + + } + + @Override + public void postApply(final String targetClassName, final ClassNode targetClass, final String mixinClassName, final IMixinInfo mixinInfo) { + + } +} diff --git a/fabric/src/client/java/gay/pridecraft/joy/fabric/client/mixin/fix/mavapi/EntityBucketItemMixin.java b/fabric/src/client/java/gay/pridecraft/joy/fabric/client/mixin/mavapi/EntityBucketItemMixin.java similarity index 98% rename from fabric/src/client/java/gay/pridecraft/joy/fabric/client/mixin/fix/mavapi/EntityBucketItemMixin.java rename to fabric/src/client/java/gay/pridecraft/joy/fabric/client/mixin/mavapi/EntityBucketItemMixin.java index 9c80cf6..3eb101f 100644 --- a/fabric/src/client/java/gay/pridecraft/joy/fabric/client/mixin/fix/mavapi/EntityBucketItemMixin.java +++ b/fabric/src/client/java/gay/pridecraft/joy/fabric/client/mixin/mavapi/EntityBucketItemMixin.java @@ -28,7 +28,7 @@ * THE SOFTWARE. */ -package gay.pridecraft.joy.fabric.client.mixin.fix.mavapi; +package gay.pridecraft.joy.fabric.client.mixin.mavapi; import io.github.akashiikun.mavapi.v1.impl.AxolotlTypeExtension; import io.github.akashiikun.mavapi.v1.impl.MoreAxolotlVariant; diff --git a/fabric/src/client/resources/joy.client.fabric.mixins.json b/fabric/src/client/resources/joy.client.fabric.mixins.json index 61c9614..bc3e6b2 100644 --- a/fabric/src/client/resources/joy.client.fabric.mixins.json +++ b/fabric/src/client/resources/joy.client.fabric.mixins.json @@ -2,9 +2,10 @@ "required": true, "minVersion": "0.8", "package": "gay.pridecraft.joy.fabric.client.mixin", + "plugin": "gay.pridecraft.joy.fabric.client.MixinPlugin", "compatibilityLevel": "JAVA_21", "client": [ - "fix.mavapi.EntityBucketItemMixin" + "mavapi.EntityBucketItemMixin" ], "injectors": { "defaultRequire": 1 diff --git a/fabric/src/main/java/gay/pridecraft/joy/registry/JoyAxolotlVariants.java b/fabric/src/main/java/gay/pridecraft/joy/registry/JoyAxolotlVariants.java index 73e7e58..9484e91 100644 --- a/fabric/src/main/java/gay/pridecraft/joy/registry/JoyAxolotlVariants.java +++ b/fabric/src/main/java/gay/pridecraft/joy/registry/JoyAxolotlVariants.java @@ -1,21 +1,29 @@ package gay.pridecraft.joy.registry; +import com.mojang.logging.LogUtils; import gay.pridecraft.joy.JoyUtil; import io.github.akashiikun.mavapi.v1.api.ModdedAxolotlVariant; +import org.slf4j.Logger; public final class JoyAxolotlVariants { + private static final Logger logger = LogUtils.getLogger(); + public static void init() { // Joy.LOGGER.info("Registering Axolotl Variants for {} via MoreAxolotlVariantsAPI", Joy.MOD_ID); - register("bi"); - register("ace"); - register("aro"); - register("lesbian"); - register("mlm"); - register("progress"); - register("trans"); - register("aroace"); - register("pan"); + try { + register("bi"); + register("ace"); + register("aro"); + register("lesbian"); + register("mlm"); + register("progress"); + register("trans"); + register("aroace"); + register("pan"); + } catch (LinkageError yKnowItIsCursed) { + logger.error("[Joy] Unable to gay our axolotls, :(", yKnowItIsCursed); + } } private static void register(String name) { diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 0f406db..c4b3ed7 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -63,7 +63,9 @@ "fabricloader": "*", "minecraft": "${minecraftRequired}", "fabric-api": "*", - "midnightlib": "*", + "midnightlib": "*" + }, + "suggests": { "mavapi": "*" } } diff --git a/libs.versions.toml b/libs.versions.toml index 3401619..e86e1e5 100644 --- a/libs.versions.toml +++ b/libs.versions.toml @@ -81,8 +81,9 @@ mixin-squared = { module = "com.github.bawnorton.mixinsquared:mixinsquared-fabri testng = { module = "org.testng:testng", version.ref = "testng" } [bundles] -fabric = ["fabric-loader", "fabric-api", "trinkets", "mavapi", "midnight-fabric"] +fabric = ["fabric-loader", "fabric-api", "trinkets", "midnight-fabric"] fabric-bundle = ["modmenu-badges"] +fabric-compile = ["mavapi"] fabric-runtime = ["emi-fabric"] fabric-client-runtime = ["modmenu"]