Jump to content

[1.7.10] Variables in EntityLivingBase are not public


Manslaughter777
 Share

Recommended Posts

Reflection.

 

Note that MC uses obf names. Use ObfuscationReflectionHelper.

To get obf name search srg files (or whatever they are called).

 

Example of getting resourcePack list from Minecraft.class.

List<IResourcePack> defaultResourcePacks = ObfuscationReflectionHelper.getPrivateValue(Minecraft.class, Minecraft.getMinecraft(), "defaultResourcePacks", "field_110449_ao");

 

Note that reflection is few times slower. You most certailny don't want to use it per-tick. Use it as litle as possible. Btw - u sure there is no getter for that?

Check callbacks on those fields (where thay are used).

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

Reflection.

 

Note that MC uses obf names. Use ObfuscationReflectionHelper.

To get obf name search srg files (or whatever they are called).

 

Example of getting resourcePack list from Minecraft.class.

List<IResourcePack> defaultResourcePacks = ObfuscationReflectionHelper.getPrivateValue(Minecraft.class, Minecraft.getMinecraft(), "defaultResourcePacks", "field_110449_ao");

 

 

Note that reflection is few times slower. You most certailny don't want to use it per-tick. Use it as litle as possible. Btw - u sure there is no getter for that?

Check callbacks on those fields (where thay are used).

 

Ive found another way of doing what i want, so dont worry bout those variables, but ive run into a crash report that i cant even firgure out whats wrong, can u help?

It happens as soon as i click on the world

 

 

 

---- Minecraft Crash Report ----

// Don't be sad. I'll do better next time, I promise!

 

Time: 30/06/15 7:12 PM

Description: Starting integrated server

 

java.lang.ExceptionInInitializerError

at net.minecraft.server.MinecraftServer.<init>(MinecraftServer.java:167)

at net.minecraft.server.integrated.IntegratedServer.<init>(IntegratedServer.java:46)

at net.minecraft.client.Minecraft.launchIntegratedServer(Minecraft.java:2175)

at cpw.mods.fml.client.FMLClientHandler.tryLoadExistingWorld(FMLClientHandler.java:669)

at net.minecraft.client.gui.GuiSelectWorld.func_146615_e(GuiSelectWorld.java:186)

at net.minecraft.client.gui.GuiSelectWorld$List.elementClicked(GuiSelectWorld.java:266)

at net.minecraft.client.gui.GuiSlot.drawScreen(GuiSlot.java:251)

at net.minecraft.client.gui.GuiSelectWorld.drawScreen(GuiSelectWorld.java:222)

at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1137)

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1057)

at net.minecraft.client.Minecraft.run(Minecraft.java:951)

at net.minecraft.client.main.Main.main(Main.java:164)

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:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:85)

at GradleStart.main(GradleStart.java:45)

Caused by: java.lang.IllegalStateException: failed to create a child event loop

at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:61)

at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:49)

at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:61)

at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:52)

at net.minecraft.network.NetworkSystem.<clinit>(NetworkSystem.java:47)

... 20 more

Caused by: io.netty.channel.ChannelException: failed to open a new selector

at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:128)

at io.netty.channel.nio.NioEventLoop.<init>(NioEventLoop.java:120)

at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:87)

at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:57)

... 24 more

Caused by: java.io.IOException: Unable to establish loopback connection

at sun.nio.ch.PipeImpl$Initializer.run(Unknown Source)

at sun.nio.ch.PipeImpl$Initializer.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at sun.nio.ch.PipeImpl.<init>(Unknown Source)

at sun.nio.ch.SelectorProviderImpl.openPipe(Unknown Source)

at java.nio.channels.Pipe.open(Unknown Source)

at sun.nio.ch.WindowsSelectorImpl.<init>(Unknown Source)

at sun.nio.ch.WindowsSelectorProvider.openSelector(Unknown Source)

at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:126)

... 27 more

Caused by: java.net.SocketException: Unrecognized Windows Sockets error: 87: socket

at sun.nio.ch.Net.socket0(Native Method)

at sun.nio.ch.Net.serverSocket(Unknown Source)

at sun.nio.ch.ServerSocketChannelImpl.<init>(Unknown Source)

at sun.nio.ch.SelectorProviderImpl.openServerSocketChannel(Unknown Source)

at java.nio.channels.ServerSocketChannel.open(Unknown Source)

... 36 more

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Stacktrace:

at net.minecraft.server.MinecraftServer.<init>(MinecraftServer.java:167)

at net.minecraft.server.integrated.IntegratedServer.<init>(IntegratedServer.java:46)

 

-- Starting integrated server --

Details:

Level ID: New World-

Level Name: New World

Stacktrace:

at net.minecraft.client.Minecraft.launchIntegratedServer(Minecraft.java:2175)

at cpw.mods.fml.client.FMLClientHandler.tryLoadExistingWorld(FMLClientHandler.java:669)

at net.minecraft.client.gui.GuiSelectWorld.func_146615_e(GuiSelectWorld.java:186)

at net.minecraft.client.gui.GuiSelectWorld$List.elementClicked(GuiSelectWorld.java:266)

at net.minecraft.client.gui.GuiSlot.drawScreen(GuiSlot.java:251)

at net.minecraft.client.gui.GuiSelectWorld.drawScreen(GuiSelectWorld.java:222)

 

-- Screen render details --

Details:

Screen name: net.minecraft.client.gui.GuiMainMenu

Mouse location: Scaled: (192, 173). Absolute: (770, 325)

Screen size: Scaled: (480, 255). Absolute: (1920, 1018). Scale factor of 4

Stacktrace:

at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1137)

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1057)

at net.minecraft.client.Minecraft.run(Minecraft.java:951)

at net.minecraft.client.main.Main.main(Main.java:164)

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:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:85)

at GradleStart.main(GradleStart.java:45)

 

-- System Details --

Details:

Minecraft Version: 1.7.10

Operating System: Windows 7 (amd64) version 6.1

Java Version: 1.7.0_51, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 965921392 bytes (921 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0

FML: MCP v9.05 FML v7.10.85.1230 Minecraft Forge 10.13.2.1230 4 mods loaded, 4 mods active

mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available

FML{7.10.85.1230} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.2.1230.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available

Forge{10.13.2.1230} [Minecraft Forge] (forgeSrc-1.7.10-10.13.2.1230.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available

moondimension{1.0.0} [The Moon] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available

Launched Version: 1.7.10

LWJGL: 2.9.1

OpenGL: ATI Radeon HD 5450 GL version 3.2.9704 Compatibility Profile Context, ATI Technologies Inc.

GL Caps: Using GL 1.3 multitexturing.

Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.

Anisotropic filtering is supported and maximum anisotropy is 16.

Shaders are available because OpenGL 2.1 is supported.

 

Is Modded: Definitely; Client brand changed to 'fml,forge'

Type: Client (map_client.txt)

Resource Packs: []

Current Language: English (US)

Profiler Position: N/A (disabled)

Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

Anisotropic Filtering: Off (1)

 

 

Link to comment
Share on other sites

I am really not sure, but this could be a problem with ur java/firewall blocking things that should not be blocked.

hmm i installed new web security before and it wanted me to delete some files scattered in the cpu, so its probably that. Ill try making a new workspace and see if it works

 

update: yep its that, it failed to setupDecompWorkspace, gotta redownload forge

Link to comment
Share on other sites

Just to clear it up: Reflection is not nearly as slow as many people think. The slow part is calling getDeclaredField/getDeclaredMethod. But you only need to do that once, ever, per field. If you use ReflectionHelper.getPrivateValue it will look up the field every time, which is bad. Therefor use findField instead and then store the Field instance somewhere. Then just getting the value via that field instance is quite fast on modern JVMs.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



×
×
  • Create New...

Important Information

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