aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/anthonyhilyard/iceberg/mixin/MixinConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/anthonyhilyard/iceberg/mixin/MixinConfig.java')
-rw-r--r--src/main/java/com/anthonyhilyard/iceberg/mixin/MixinConfig.java60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/main/java/com/anthonyhilyard/iceberg/mixin/MixinConfig.java b/src/main/java/com/anthonyhilyard/iceberg/mixin/MixinConfig.java
new file mode 100644
index 0000000..566843c
--- /dev/null
+++ b/src/main/java/com/anthonyhilyard/iceberg/mixin/MixinConfig.java
@@ -0,0 +1,60 @@
+package com.anthonyhilyard.iceberg.mixin;
+
+import java.util.List;
+import java.util.Set;
+
+import org.objectweb.asm.tree.ClassNode;
+import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
+import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
+
+import net.minecraftforge.fml.loading.FMLLoader;
+import net.minecraftforge.fml.loading.LoadingModList;
+import net.minecraftforge.fml.loading.moddiscovery.ModInfo;
+
+public class MixinConfig implements IMixinConfigPlugin
+{
+ private LoadingModList loadingModList = null;
+
+ @Override
+ public void onLoad(String mixinPackage) { }
+
+ @Override
+ public String getRefMapperConfig() { return null; }
+
+ @Override
+ public boolean shouldApplyMixin(String targetClassName, String mixinClassName)
+ {
+ if (mixinClassName.toLowerCase().contains("configured"))
+ {
+ if (loadingModList == null)
+ {
+ loadingModList = FMLLoader.getLoadingModList();
+ }
+
+ // Check if Config Menus for Forge is available.
+ for (ModInfo modInfo : loadingModList.getMods())
+ {
+ // If configured is present, load the mixin.
+ if (modInfo.getModId().equals("configured"))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) { }
+
+ @Override
+ public List<String> getMixins() { return null; }
+
+ @Override
+ public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { }
+
+ @Override
+ public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { }
+} \ No newline at end of file