Refined Relocation

Refined Relocation

3M Downloads

NoSuchFieldException: tabToDisplayOn

squeek502 opened this issue ยท 3 comments

commented

Item.tabToDisplayOn doesn't exist when the MInecraft code is obfuscated. I'm too unfamiliar with reflection to know what the best way to fix this is, however, I see that there is an ObfuscationReflectionHelper and ReflectionHelper in FML which I assume would be useful in this case (though I don't know exactly how to use them).

[STDERR] java.lang.NoSuchFieldException: tabToDisplayOn
[STDERR]    at java.lang.Class.getDeclaredField(Unknown Source)
[STDERR]    at com.dynious.blex.config.Filter.<init>(Filter.java:24)
[STDERR]    at com.dynious.blex.tileentity.TileFilteredBlockExtender.<init>(TileFilteredBlockExtender.java:14)
[STDERR]    at com.dynious.blex.block.BlockExtender.createTileEntity(BlockExtender.java:55)
[STDERR]    at net.minecraft.world.chunk.Chunk.func_76597_e(Chunk.java:991)
[STDERR]    at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:763)
[STDERR]    at net.minecraft.world.World.func_72832_d(World.java:559)
[STDERR]    at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:241)
[STDERR]    at com.dynious.blex.item.ItemBlockExtender.placeBlockAt(ItemBlockExtender.java:23)
[STDERR]    at net.minecraft.item.ItemBlock.func_77648_a(ItemBlock.java:119)
[STDERR]    at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:153)
[STDERR]    at net.minecraft.client.multiplayer.PlayerControllerMP.func_78760_a(PlayerControllerMP.java:408)
[STDERR]    at net.minecraft.client.Minecraft.func_71402_c(Minecraft.java:1390)
[STDERR]    at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1868)
[STDERR]    at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:910)
[STDERR]    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:838)
[STDERR]    at net.minecraft.client.main.Main.main(SourceFile:101)
[STDERR]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[STDERR]    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[STDERR]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[STDERR]    at java.lang.reflect.Method.invoke(Unknown Source)
[STDERR]    at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
[STDERR]    at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
[STDERR] java.lang.NoSuchFieldException: tabToDisplayOn
[STDERR]    at java.lang.Class.getDeclaredField(Unknown Source)
[STDERR]    at com.dynious.blex.config.Filter.<init>(Filter.java:24)
[STDERR]    at com.dynious.blex.tileentity.TileFilteredBlockExtender.<init>(TileFilteredBlockExtender.java:14)
[STDERR]    at com.dynious.blex.block.BlockExtender.createTileEntity(BlockExtender.java:55)
[STDERR]    at net.minecraft.world.chunk.Chunk.func_76597_e(Chunk.java:991)
[STDERR]    at net.minecraft.world.chunk.Chunk.func_76592_a(Chunk.java:763)
[STDERR]    at net.minecraft.world.World.func_72832_d(World.java:559)
[STDERR]    at net.minecraft.item.ItemBlock.placeBlockAt(ItemBlock.java:241)
[STDERR]    at com.dynious.blex.item.ItemBlockExtender.placeBlockAt(ItemBlockExtender.java:23)
[STDERR]    at net.minecraft.item.ItemBlock.func_77648_a(ItemBlock.java:119)
[STDERR]    at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:153)
[STDERR]    at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:434)
[STDERR]    at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:556)
[STDERR]    at net.minecraft.network.packet.Packet15Place.func_73279_a(SourceFile:58)
[STDERR]    at net.minecraft.network.MemoryConnection.func_74428_b(MemoryConnection.java:89)
[STDERR]    at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:141)
[STDERR]    at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:54)
[STDERR]    at net.minecraft.server.integrated.IntegratedServerListenThread.func_71747_b(IntegratedServerListenThread.java:109)
[STDERR]    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:691)
[STDERR]    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:587)
[STDERR]    at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:129)
[STDERR]    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:484)
[STDERR]    at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)

Note that this also causes a NullPointerException error that gets spammed like crazy whenever the filter is being checked:

[STDERR] java.lang.NullPointerException
[STDERR]    at com.dynious.blex.config.Filter.passesFilter(Filter.java:100)
[STDERR]    at com.dynious.blex.tileentity.TileFilteredBlockExtender.func_102007_a(TileFilteredBlockExtender.java:23)
[STDERR]    at cofh.util.InventoryHelper.simulateInsertItemStackIntoInventory(InventoryHelper.java:163)
[STDERR]    at thermalexpansion.util.Utils.canAddToInventory(Utils.java:121)
[STDERR]    at thermalexpansion.part.conduit.item.ConduitItem.canRouteItem(ConduitItem.java:421)
[STDERR]    at thermalexpansion.part.conduit.item.ConduitItem.doRouteItem(ConduitItem.java:537)
[STDERR]    at thermalexpansion.part.conduit.item.ConduitItem.routeItem(ConduitItem.java:526)
[STDERR]    at thermalexpansion.part.conduit.item.ConduitItem.inputItems(ConduitItem.java:161)
[STDERR]    at thermalexpansion.part.conduit.item.ConduitItem.doOutput(ConduitItem.java:114)
[STDERR]    at thermalexpansion.part.conduit.item.GridItem.doGridUpdate(GridItem.java:64)
[STDERR]    at thermalexpansion.part.conduit.GridTickHandler.tickEnd(GridTickHandler.java:75)
[STDERR]    at cpw.mods.fml.common.SingleIntervalHandler.tickEnd(SingleIntervalHandler.java:34)
[STDERR]    at cpw.mods.fml.common.FMLCommonHandler.tickEnd(FMLCommonHandler.java:141)
[STDERR]    at cpw.mods.fml.common.FMLCommonHandler.onPostServerTick(FMLCommonHandler.java:274)
[STDERR]    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:622)
[STDERR]    at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:129)
[STDERR]    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:484)
[STDERR]    at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)
commented

I'll fix this when I get home at +- 3 pm CET.

commented

Here's my attempt at a fix, unsure if it's the best method, but it seems to work: squeek502@8aa1eca

commented

Fixed with a2e9cfe.