Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Kfir40Forge

Members
  • Joined

  • Last visited

Everything posted by Kfir40Forge

  1. Well that's... confusing. Well whatever, this is what I do now: public static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, MODID); public static final RegistryObject<Item> CHAINMAIL_PLATE = ITEMS.register("chainmail_plate", () -> new Item(new Item.Properties().group(ItemGroup.MISC))); Anyway, it works now! Only problem is that JEI still shows iron ingots in the repair recipe.
  2. 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? I had no idea it existed. Will change to it.
  3. 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!
  4. You can also use MultiMC to install Twitch modpacks without using the Twitch launcher.
  5. 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. Full code: https://github.com/Leo40Git/CraftableChainmail/blob/1.14.4/src/main/java/adudecalledleo/craftablechainmail/CraftableChainmail.java
  6. Gotcha. So, do that in an event that's run after item registration, which would be...? Is there an event list sorted by order?
  7. 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?

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.