Everything posted by SViking
-
repeated AnvilUpdateEvent
It doesn't appear to have any sub events. The Forge hook is onAnvilChange(...) which is called from within ContainerRepair.updateRepairOutput(). Each event does appear to be a separate call from this same point. That's as much as I've determined so far.
-
repeated AnvilUpdateEvent
Thanks for the reply. Of course, some of the repeating in my test due to execution on both client and server. However, my laziness was fortuitous, as I sometimes saw a different number of events on one side vs the other. That would further support your notion of the event firing on multiple ticks, with lag as a contributor. I'm digging a little more into the Forge hook that allows the anvil events to see if there's a possible resolution. At least I know now I'm not chasing my own tail. Haha...same here!
-
repeated AnvilUpdateEvent
When subscribing to the AnvilUpdateEvent, I seem to be getting multiple events for a single action of filling the left and right slots on the anvil. This is for Forge 1.9-12.16.0.1811-1.9. Am I doing something wrong here, is this a bug or other? Here's my test code and output from one test run: Main class: package com.sviking.practicalanvil; import com.sviking.practicalanvil.event.PAEventHandler; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; @Mod(modid = Main.MODID, name = Main.MODNAME, version = Main.VERSION) public class Main { public static final String MODID = "practicalanvil"; public static final String MODNAME = "Practical Anvil Mod"; public static final String VERSION = "1.0.0"; @Instance public static Main instance = new Main(); @EventHandler public void preInit(FMLPreInitializationEvent e) { } @EventHandler public void init(FMLInitializationEvent e) { MinecraftForge.EVENT_BUS.register(new PAEventHandler()); } @EventHandler public void postInit(FMLPostInitializationEvent e) { } } Event handler: package com.sviking.practicalanvil.event; import net.minecraftforge.event.AnvilUpdateEvent; import net.minecraftforge.event.entity.player.AnvilRepairEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class PAEventHandler { @SubscribeEvent public void onAnvilUpdate(AnvilUpdateEvent e) { System.out.println(e); e.setCanceled(true); } } Sample output (single action of filling left and right slots): [21:42:28] [Client thread/INFO] [sTDOUT]: [com.sviking.practicalanvil.event.PAEventHandler:onAnvilUpdate:11]: net.minecraftforge.event.AnvilUpdateEvent@384bd992 [21:42:28] [Client thread/INFO] [sTDOUT]: [com.sviking.practicalanvil.event.PAEventHandler:onAnvilUpdate:11]: net.minecraftforge.event.AnvilUpdateEvent@10fae499 [21:42:28] [Client thread/INFO] [sTDOUT]: [com.sviking.practicalanvil.event.PAEventHandler:onAnvilUpdate:11]: net.minecraftforge.event.AnvilUpdateEvent@259a9966 [21:42:28] [server thread/INFO] [sTDOUT]: [com.sviking.practicalanvil.event.PAEventHandler:onAnvilUpdate:11]: net.minecraftforge.event.AnvilUpdateEvent@b0f027e [21:42:28] [server thread/INFO] [sTDOUT]: [com.sviking.practicalanvil.event.PAEventHandler:onAnvilUpdate:11]: net.minecraftforge.event.AnvilUpdateEvent@3505b6d9 [21:42:28] [server thread/INFO] [sTDOUT]: [com.sviking.practicalanvil.event.PAEventHandler:onAnvilUpdate:11]: net.minecraftforge.event.AnvilUpdateEvent@6eef4800 [21:42:28] [Client thread/INFO] [sTDOUT]: [com.sviking.practicalanvil.event.PAEventHandler:onAnvilUpdate:11]: net.minecraftforge.event.AnvilUpdateEvent@7b7ef483 [21:42:28] [Client thread/INFO] [sTDOUT]: [com.sviking.practicalanvil.event.PAEventHandler:onAnvilUpdate:11]: net.minecraftforge.event.AnvilUpdateEvent@1d9f2537 I'll also note that the number of events generated varies from as few as 4 to as many as 10. I've experienced similar behavior with AnvilRepairEvent, though not as extreme. Thanks in advance.
IPS spam blocked by CleanTalk.