Posts by GregoriusT

    First of all, if you dont like reflections or reverse engineering this article not for you.
    Code included still WIP and some parts "not very good" due to lack of time to benchmark everything.
    Expected that you use Forge with SRG names for development.

    Story:
    In far far away SMP server players were unable to find iridium sample, some users joined dark side, others kept looting with no success.
    After 2 hours run i decided that this is fucking korea and must be fixed;
    This thread about how to replace TE objects on existing world without loss of devices.

    So I tried to use your Code and it works indeed. Good, that I have an API for loading Stuff after my Postload Phase if someone REALLY wants to do that. I would use "after:*", but UE-Basic-Components is breaking that Feature by being the one using it (since still only one single Mod can use "after:*" at once).

    Incredible, that this little hacky piece of Code makes the whole Mod much more compatible with other Mods.

    if other mod used similar technique result is undefined or infinite loop based on exact implementation

    If another Mod uses this same technique "properly", then no Infinite Loops will happen. One just needs to do it in preload, since it won't affect the preload phase at all. And if you want to be 100% sure, just make it so, that this Function can only be called once.

    Is it reproducible or happened just once?
    I use config file name suggested by FMLPreInitializationEvent and I use it as paramenter of Configuration constructor. Have no idea how it can be null.

    I can get that Error consistently. And are you doing your Config during the @Init Phase instead of @PreInit? Because this Error happened after the GT Load Phase finished.


    I just wanted to mention this. I worked on a very hackish piece of Code.

    Edit: Found out what it was, nvm.

    Do not ask HOW I got this Error, this just happened in my Dev Build and I did nothing related to Nuclear Control.

    java.lang.NullPointerException
    at net.minecraftforge.common.Configuration.<init>(Configuration.java:91)
    at shedar.mods.ic2.nuclearcontrol.IC2NuclearControl.init(IC2NuclearControl.java:408)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:540)
    at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
    at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
    at com.google.common.eventbus.EventBus.post(EventBus.java:267)
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:194)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:174)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
    at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
    at com.google.common.eventbus.EventBus.post(EventBus.java:267)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:105)
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:696)
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:231)
    at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:507)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:806)
    at net.minecraft.client.main.Main.main(SourceFile:101)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:57)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:18)

    This is probably the Problem of Player. I dont want to mess with his Enet.

    2013-11-20 08:02:50 [SEVERE] ic2.core.energy.Grid.remove(Grid.java:115)
    2013-11-20 08:02:50 [SEVERE] ic2.core.energy.EnergyNetLocal.removeTileFromGrids(EnergyNetLocal.java:413)
    2013-11-20 08:02:50 [SEVERE] ic2.core.energy.EnergyNetLocal.removeTileEntity(EnergyNetLocal.java:152)
    2013-11-20 08:02:50 [SEVERE] ic2.core.energy.EventHandler.onEnergyTileUnload(EventHandler.java:36)
    2013-11-20 08:02:50 [SEVERE] net.minecraftforge.event.ASMEventHandler_19_EventHandler_onEnergyTileUnload_EnergyTileUnloadEvent.invoke(.dynamic)
    2013-11-20 08:02:50 [SEVERE] net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:39)
    2013-11-20 08:02:50 [SEVERE] net.minecraftforge.event.EventBus.post(EventBus.java:108)
    2013-11-20 08:02:50 [SEVERE] ic2.core.block.wiring.TileEntityCable.onUnloaded(TileEntityCable.java:150)
    2013-11-20 08:02:50 [SEVERE] ic2.core.block.BlockMultiID.func_71927_h(BlockMultiID.java:306)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:718)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.world.World.func_72832_d(World.java:850)
    2013-11-20 08:02:50 [SEVERE] ic2.core.block.wiring.BlockCable.removeBlockByPlayer(BlockCable.java:406)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.item.ItemInWorldManager.func_73079_d(ItemInWorldManager.java:345)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.item.ItemInWorldManager.func_73084_b(ItemInWorldManager.java:450)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.item.ItemInWorldManager.func_73074_a(ItemInWorldManager.java:199)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.network.NetServerHandler.func_72510_a(NetServerHandler.java:755)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.network.packet.Packet14BlockDig.func_73279_a(Packet14BlockDig.java:67)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:471)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:233)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:54)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(DedicatedServerListenThread.java:34)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:913)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:327)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:780)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.server.MinecraftServer.run(MinecraftServer.java:662)
    2013-11-20 08:02:50 [SEVERE] net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

    The new Minecraft Launcher has a Function to let you use old MC Versions. The Forge Installer is doing everything else for you.

    If you have a pirated Minecraft, well the way I did it a year and a half ago (before I bought Minecraft) broke with 1.6. :P