Posted September 26, 201312 yr So I found a way to work around the already-terrible attribute system using reflection and player capabilities. Using this, I was able to modify player speed quite nicely, and it worked, and using ObfuscationReflectionHelper I made it so it SHOULD work in normal minecraft. However, it does not . The crash log ---- Minecraft Crash Report ---- // Ouch. That hurt Time: 9/25/13 7:20 PM Description: Ticking entity cpw.mods.fml.relauncher.ReflectionHelper$UnableToAccessFieldException: cpw.mods.fml.relauncher.ReflectionHelper$UnableToFindFieldException: java.lang.NoSuchFieldException: field_73357_f at cpw.mods.fml.relauncher.ReflectionHelper.setPrivateValue(ReflectionHelper.java:140) at cpw.mods.fml.common.ObfuscationReflectionHelper.setPrivateValue(ObfuscationReflectionHelper.java:104) at rareores.Common.PlayerTickHandler.onPlayerTick(PlayerTickHandler.java:135) at rareores.Common.PlayerTickHandler.tickStart(PlayerTickHandler.java:164) at cpw.mods.fml.common.SingleIntervalHandler.tickStart(SingleIntervalHandler.java:28) at cpw.mods.fml.common.FMLCommonHandler.tickStart(FMLCommonHandler.java:122) at cpw.mods.fml.common.FMLCommonHandler.onPlayerPreTick(FMLCommonHandler.java:383) at net.minecraft.entity.player.EntityPlayer.func_70071_h_(EntityPlayer.java:282) at net.minecraft.client.entity.EntityClientPlayerMP.func_70071_h_(SourceFile:46) at net.minecraft.world.World.func_72866_a(World.java:2350) at net.minecraft.world.World.func_72870_g(World.java:2311) at net.minecraft.world.World.func_72939_s(World.java:2157) at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1919) at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:908) at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:836) 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:131) at net.minecraft.launchwrapper.Launch.main(Launch.java:27) Caused by: cpw.mods.fml.relauncher.ReflectionHelper$UnableToFindFieldException: java.lang.NoSuchFieldException: field_73357_f at cpw.mods.fml.relauncher.ReflectionHelper.findField(ReflectionHelper.java:87) at cpw.mods.fml.relauncher.ReflectionHelper.setPrivateValue(ReflectionHelper.java:136) ... 21 more Caused by: java.lang.NoSuchFieldException: field_73357_f at java.lang.Class.getDeclaredField(Unknown Source) at cpw.mods.fml.relauncher.ReflectionHelper.findField(ReflectionHelper.java:78) ... 22 more My code PlayerCapabilities cap = player.capabilities; float speed = cap.getWalkSpeed(); speed *=1.5; ObfuscationReflectionHelper.setPrivateValue(PlayerCapabilities.class, cap, speed ,"walkSpeed","field_73357_f"); walkSpeed is a private value in playercapabilities, and I got the field_73357_f from fields.csv in /mcp/conf Help appreciated Thanks. This is the creator of the Rareores mod! Be sure to check it out at
September 26, 201312 yr What about the attribute system ? It works and is expected to continue growing. Better trying to use it now, don't you think ?
September 26, 201312 yr Author 1. When modifying speed, it modifies your players field of view, which can get annoying... 2. I've only gotten it to work in a very crude way, that glitches up, and could cause incompatibilities with other mods. Aside from that, Can anyone help me with my issue? :l This is the creator of the Rareores mod! Be sure to check it out at
September 26, 201312 yr FOV also depends on PlayerCapabilities walkSpeed field. Anyway, I think the Searge name is field_75097_g
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.