Posted October 26, 201213 yr I've made a custom biome, but I can't access many of the BiomeDecorator's functions, as they are protected. How can I get around this?
October 26, 201213 yr You could use an access transform. Read the EAQ before posting! OR ELSE! This isn't building better software, its trying to grab a place in the commit list of a highly visible github project. www.forgeessentials.com Don't PM me, I don't check this account unless I have to.
October 26, 201213 yr There was a tutorial on our wiki, but it's broken. Read the EAQ before posting! OR ELSE! This isn't building better software, its trying to grab a place in the commit list of a highly visible github project. www.forgeessentials.com Don't PM me, I don't check this account unless I have to.
October 26, 201213 yr Author It doesn't really help if I have no idea how to access it, or what it is If googling it doesn't bring some kind of answer, I doubt it's even what it's called.
October 26, 201213 yr You're looking for the Java Reflection API I reckon. http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html
October 26, 201213 yr http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html Please read and understand how access levels work. Protected is nothing you have to go crazy over. Majority of the time reflection or other hacks are not needed. I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
October 27, 201213 yr Author Considering the Biome Decorator is a variable inside my SubClass, my only options to access it are presumably: [*]Using reflection: Slow and very hacky, and as you said, not needed. [*]Changing the Access Level: Breaks compatibility, and if FML hasn't done it, there is likely a reason not to. [*]Making my class in the minecraft.net.src package: Heavily discouraged amongst the forge community, might break compatibility and also makes it hard to keep track of classes. [*]Making my own WorldGenBase, BiomeDecorator (and plenty more) classes: Tedious, messy, and seems unnecessary. [*]Creating some kind of wrapper for BiomeDecorator (and some more) classes: Better option, it seems, but still tedious, messy and unnecessary. All of these seem like a "hack" and suboptimal (not to mention tedious). I must be missing something, because everyone talks about this "Access Transformer" or says that a hack is not needed (not only in this forum post, I did search before posting this).
October 27, 201213 yr Considering the Biome Decorator is a variable inside my SubClass, my only options to access it are presumably: Using reflection: Slow and very hacky, and as you said, not needed. Changing the Access Level: Breaks compatibility, and if FML hasn't done it, there is likely a reason not to. Making my class in the minecraft.net.src package: Heavily discouraged amongst the forge community, might break compatibility and also makes it hard to keep track of classes. Making my own WorldGenBase, BiomeDecorator (and plenty more) classes: Tedious, messy, and seems unnecessary. Creating some kind of wrapper for BiomeDecorator (and some more) classes: Better option, it seems, but still tedious, messy and unnecessary. All of these seem like a "hack" and suboptimal (not to mention tedious). I must be missing something, because everyone talks about this "Access Transformer" or says that a hack is not needed (not only in this forum post, I did search before posting this). I currently use a wrapper/workaround but I love to be able to do it directly. I don't see why we have to do this workaround to do something as simple as setting the tree rate of a biome?
December 21, 201212 yr Bump. Until now I used a utility class located in the Minecraft package. Now this won't work as the Minecraft code is split between packages when in MCP but isn't when reobfuscated. I'd use the subclass method but it does not work for objects you did not instantiate yourself. Before I get into weird hacks, anybody has a "clean" solution to this? To pick an example, for EntityCreature.entityToAttack for an existing entity, not a mod-created one? http://www.millenaire.org/img/dynamicsig.png[/img]
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.