From 50df7f268dddd0634539395a52aad4f1ff7da839 Mon Sep 17 00:00:00 2001 From: cdstk Date: Tue, 28 Oct 2025 23:14:44 -0500 Subject: [PATCH] Fix missing registry entry for Lycanites custom item --- .../config/LycanitesMobsConfig.java | 11 +++++++ .../ObjectManager_CustomItemMixin.java | 33 +++++++++++++++++++ ...mmixins.late.lycanitesmobs.customitem.json | 11 +++++++ 3 files changed, 55 insertions(+) create mode 100644 src/main/java/fermiummixins/mixin/lycanitesmobs/ObjectManager_CustomItemMixin.java create mode 100644 src/main/resources/mixins.fermiummixins.late.lycanitesmobs.customitem.json diff --git a/src/main/java/fermiummixins/config/LycanitesMobsConfig.java b/src/main/java/fermiummixins/config/LycanitesMobsConfig.java index 8c95de1..97bfa85 100644 --- a/src/main/java/fermiummixins/config/LycanitesMobsConfig.java +++ b/src/main/java/fermiummixins/config/LycanitesMobsConfig.java @@ -45,6 +45,17 @@ public class LycanitesMobsConfig { reason = "Requires mod to properly function" ) public boolean asmodeusMinionPatch = false; + + @Config.Comment("Fixes the missing registry entry that causes lycanites item drops to always be removed when unloaded") + @Config.Name("Custom Item Entity Registry Patch (LycanitesMobs)") + @Config.RequiresMcRestart + @MixinConfig.MixinToggle(lateMixin = "mixins.fermiummixins.late.lycanitesmobs.customitem.json", defaultValue = false) + @MixinConfig.CompatHandling( + modid = ModLoadedUtil.LycanitesMobs_MODID, + desired = true, + reason = "Requires mod to properly function" + ) + public boolean customItemEntityRegistryPatch = false; @Config.Comment("Allows for placing mob charges in item frames") @Config.Name("Allow Charges In Item Frames (LycanitesMobs)") diff --git a/src/main/java/fermiummixins/mixin/lycanitesmobs/ObjectManager_CustomItemMixin.java b/src/main/java/fermiummixins/mixin/lycanitesmobs/ObjectManager_CustomItemMixin.java new file mode 100644 index 0000000..ac375e7 --- /dev/null +++ b/src/main/java/fermiummixins/mixin/lycanitesmobs/ObjectManager_CustomItemMixin.java @@ -0,0 +1,33 @@ +package fermiummixins.mixin.lycanitesmobs; + +import com.lycanitesmobs.LycanitesMobs; +import com.lycanitesmobs.ObjectManager; +import com.lycanitesmobs.core.entity.EntityItemCustom; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.fml.common.registry.EntityEntry; +import net.minecraftforge.fml.common.registry.EntityEntryBuilder; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(ObjectManager.class) +public abstract class ObjectManager_CustomItemMixin { + + @Inject( + method = "registerSpecialEntities", + at = @At("TAIL"), + remap = false + ) + private static void fermiummixins_lycanitesMobsObjectManager_registerSpecialEntities(RegistryEvent.Register event, CallbackInfo ci){ + String entityName = "custom_item"; + String registryName = LycanitesMobs.modInfo.modid + ":" + entityName; + EntityEntry entityEntry = EntityEntryBuilder.create() + .entity(EntityItemCustom.class) + .id(registryName, ObjectManager.getNextSpecialEntityNetworkId()) + .name(entityName) + .tracker(64, 20, true) + .build(); + event.getRegistry().register(entityEntry); + } +} diff --git a/src/main/resources/mixins.fermiummixins.late.lycanitesmobs.customitem.json b/src/main/resources/mixins.fermiummixins.late.lycanitesmobs.customitem.json new file mode 100644 index 0000000..c7c2db9 --- /dev/null +++ b/src/main/resources/mixins.fermiummixins.late.lycanitesmobs.customitem.json @@ -0,0 +1,11 @@ +{ + "required": true, + "package": "fermiummixins.mixin", + "refmap": "mixins.fermiummixins.refmap.json", + "compatibilityLevel": "JAVA_8", + "target": "@env(DEFAULT)", + "minVersion": "0.8", + "mixins": [ + "lycanitesmobs.ObjectManager_CustomItemMixin" + ] +} \ No newline at end of file