Jump to content

Accessing field within non-public subclass using reflection?


SpectralGerbil

Recommended Posts

Hiya, to make a long story start I am altering the Phantom AI and part of this involved using reflection to fetch various private parts of the AI system (like the various goal objects in Forge). Problem I'm having is, after I run all these calculations, I need to put them back into the AI goal - but I can't quite do this.

See, the field I'm trying to edit is "attackTargeting", within the Phantom.PhantomAttackPlayerTargetGoal subclass. Problem is, this subclass is not public. Attempting to use reflection to get the value of the field simply throws me an error that the field and subclass are not visible. I'm experienced in Java but have absolutely no idea how to get around accessing a non-visible field without being able to edit said field (which I can't, because it's vanilla code). What can I do here?

Link to comment
Share on other sites

https://forge.gemwire.uk/wiki/Access_Transformers

There is a bot on forge's discord where you can lookup the runtime field and method names.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.



×
×
  • Create New...

Important Information

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