Posted November 21, 20204 yr I'm trying to develop a simple mod that will export certain properties of every registered item to an external file. Most of my properties are working, but I'm having trouble trying to implement the burnTime property. First, I tried using item.getBurnTime(new ItemStack(item, 1)) and found that method was repeatedly returning "-1" because the value was to be determined by the vanilla Minecraft Logic. I then did some research and found that I could use this: ForgeHooks.getBurnTime(new ItemStack(item, 1)) I found that this was continuously returning "0" instead of my desired value, presumably because the map "VANILLA_BURNS" has no entry for the item. Finally, I tried using the deprecated FurnaceTileEntity.getBurnTimes().get(item) where I got the error java.lang.IllegalStateException: Tag minecraft:non_flammable_wood used before it was bound Stacktrace: at net.minecraft.tags.TagRegistry$NamedTag.getTag(TagRegistry.java:131) ~[forge-1.16.4-35.0.18_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.tags.TagRegistry$NamedTag.contains(TagRegistry.java:142) ~[forge-1.16.4-35.0.18_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.tileentity.AbstractFurnaceTileEntity.isNonFlammable(AbstractFurnaceTileEntity.java:161) ~[forge-1.16.4-35.0.18_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at net.minecraft.tileentity.AbstractFurnaceTileEntity.addItemBurnTime(AbstractFurnaceTileEntity.java:175) ~[forge-1.16.4-35.0.18_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at net.minecraft.tileentity.AbstractFurnaceTileEntity.getBurnTimes(AbstractFurnaceTileEntity.java:97) ~[forge-1.16.4-35.0.18_mapped_snapshot_20201028-1.16.3-recomp.jar:?] {re:classloading} at com.example.examplemod.ExampleMod.setup(ExampleMod.java:104) ~[main/:?] {re:classloading} at net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:247) ~[eventbus-3.0.5-service.jar:?] {} at net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:239) ~[eventbus-3.0.5-service.jar:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:297) ~[eventbus-3.0.5-service.jar:?] {} at net.minecraftforge.fml.javafmlmod.FMLModContainer.acceptEvent(FMLModContainer.java:120) ~[forge:?] {re:classloading} at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$4(ModContainer.java:121) ~[forge:?] {re:classloading} at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1800) ~[?:?] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1792) ~[?:?] {} at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) ~[?:?] {} at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016) ~[?:?] {} at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665) ~[?:?] {} at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598) ~[?:?] {} at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) ~[?:?] {} Which seems to indicate that the burn times cannot be generated yet. I was generating my file during the "FMLCommonSetupEvent" event. How can I successfully retrieve the correct value for burnTime?
November 21, 20204 yr 4 hours ago, ptolemy2002 said: I was generating my file during the "FMLCommonSetupEvent" event. How can I successfully retrieve the correct value for burnTime? You need to wait until after tags have been read and generated. There's an event for that too, but I'm blanking on its name. IIRC it doesn't happen until after you start or load a save though. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
November 21, 20204 yr Author Which event should I be using to accomplish this? Currently I am trying to subscribe to the TagsUpdatedEvent, but it doesn't appear to be called at all. @Mod.EventBusSubscriber(bus=Bus.FORGE) public static class GenericEvents { @SubscribeEvent public static void onTagsUpdated(TagsUpdatedEvent event) { ... } }
November 21, 20204 yr 1 hour ago, ptolemy2002 said: but it doesn't appear to be called at all. Probably the wrong bus. But I'd go with D7's suggestion of the player logged in event. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.