-
Posts
8 -
Joined
-
Last visited
Posts posted by Kfir40Forge
-
-
3 minutes ago, diesieben07 said:
You are not using @ObjectHolder correctly. When put in a field it must hold a registry name, not a resource domain.
So it was staying "null", and some part of the process detected that and undid it or something??? Because I saw no NPEs in the log. Regardless... whoops.
@ObjectHolder("MOD_ID_HERE"); class ModThing { @ObjectHolder("ITEM_REGISTRY_NAME_HERE"); public static final Item ITEM_THINGY = null; }
Is this how it's done, or does
@Mod
imply
@ObjectHolder
?
5 minutes ago, diesieben07 said:Any reason you are not using DeferredRegister?
I had no idea it existed. Will change to it.
-
10 minutes ago, Alpvax said:
I believe that isn't the case any more, with forge >= 1.13 (since the complete rewrite) unless something has changed recently.
Forge 1.13+ support has been fixed on the develop branch (which is pretty stable RN). In fact, that branch has (the startings of) a Twitch modpack browser!
-
You can also use MultiMC to install Twitch modpacks without using the Twitch launcher.
-
This doesn't seem to work...
@ObjectHolder(MODID) public static final Item CHAINMAIL_PLATE = null; public ExampleMod() { FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); } private void setup(FMLCommonSetupEvent e) { DeferredWorkQueue.runLater(ExampleMod::doReplaceChainmailRepairMaterial); } private static final String OBSFUCATED_FIELD_NAME_ARMORMATERIAL_REPAIRMATERIAL = "field_200914_m"; static void doReplaceChainmailRepairMaterial() { try { ObfuscationReflectionHelper.setPrivateValue( ArmorMaterial.class, ArmorMaterial.CHAIN, new LazyLoadBase<>(() -> Ingredient.fromItems(CHAINMAIL_PLATE)), OBSFUCATED_FIELD_NAME_ARMORMATERIAL_REPAIRMATERIAL); } catch(ObfuscationReflectionHelper.UnableToFindFieldException e) { throw new RuntimeException("Could not find field ArmorMaterial.CHAIN.repairMaterial", e); } catch(ObfuscationReflectionHelper.UnableToAccessFieldException e) { throw new RuntimeException("Could not access field ArmorMaterial.CHAIN.repairMaterial", e); } }
No exceptions, it just doesn't have any effect in-game.
-
Gotcha. So, do that in an event that's run after item registration, which would be...? Is there an event list sorted by order?
-
Okay, so - I have an item "craftablechainmail:chainmail_plate". I want to change the repair item of chainmail armor to this item.
...how do I do this?
[1.14/1.15] Replacing repair item of vanilla armor material?
in Modder Support
Posted
Well that's... confusing.
Well whatever, this is what I do now:
Anyway, it works now! Only problem is that JEI still shows iron ingots in the repair recipe.