How to tell a module is on or off?
-
getState() maybe
-
@sexma Also how would I take a screenshot? Thanks.
-
@chodeman said in How to tell a module is on or off?:
@sexma Also how would I take a screenshot? Thanks.
f2 should work
-
@sexma i mean via script
-
also im checking lb src but I couldn't find any functions about it
I can only see this
-
@chodeman said in How to tell a module is on or off?:
@sexma i mean via script
why would you screenshot via script
-
@sexma that's not pertinent
-
LiquidBounce/1.8.9-Forge/build/tmp/recompileMc/sources/net $ grep screenshot . -ir ... ./minecraft/client/Minecraft.java:import net.minecraft.util.ScreenShotHelper; ./minecraft/client/Minecraft.java: else if (i == this.gameSettings.keyBindScreenshot.getKeyCode()) ./minecraft/client/Minecraft.java: this.ingameGUI.getChatGUI().printChatMessage(ScreenShotHelper.saveScreenshot(this.mcDataDir, this.displayWidth, this.displayHeight, this.framebufferMc)); ...
beware that
this.framebufferMc
could be a private member. -
@commandblock2 then modify liquidbounce_at.cfg
-
@commandblock2
do this.minecraft/LiquidBounce-1.8 $ grep framebufferMc mcp-stable_22.srg FD: net/minecraft/client/Minecraft/framebufferMc net/minecraft/client/Minecraft/field_147124_at
and get
field_147124_at
.
then you have thisScreenShotHelper = Java.type("net.minecraft.util.ScreenShotHelper") function screenShot() { framebufferMcField = mc.class.getDeclaredField("field_147124_at") framebufferMcField.setAccessible(true) framebufferMc = framebufferMcField.get(mc) //with Core.lib you only need 1 line //framebufferMc = getField(mc, "field_147124_at").get(mc) ScreenShotHelper.saveScreenshot(mc.mcDataDir, mc.displayWidth, mc.displayHeight, framebufferMc); }
-
@commandblock2
Thank you! I'm new, what is the.minecraft/LiquidBounce-1.8 $ grep framebufferMc mcp-stable_22.srg FD: net/minecraft/client/Minecraft/framebufferMc net/minecraft/client/Minecraft/field_147124_at
?
-
@commandblock2 said in How to tell a module is on or off?:
well
what does finding that in the text file have to do with the code that you put after? Do I have to change something in the text file or what?
-
@commandblock2 said in How to tell a module is on or off?:
//with Core.lib you only need 1 line //framebufferMc = getField(mc, "field_147124_at").get(mc)
You can do it even more easily with Core now.
adaptedMc = new Reflector(mc); print(adaptedMc.framebufferMc); adaptedMc.framebufferMc = idk;
and so on
-
@chodeman
What I have been trying to do is to changeScreenShotHelper.saveScreenshot(this.mcDataDir, this.displayWidth, this.displayHeight, this.framebufferMc)
to js.
Since it is in
net/minecraft/client/Minecraft.java
, the type ofthis
isMinecraft
(akanet.minecraft.client.Minecraft
). And the instance ofMinecraft
is exposed asmc
in scriptAPI.
So we change allthis
tomc
.
ButframebufferMc
is not public so you cannot access it from a script.
So we accessing a private variable using reflection.
However the name offramebufferMc
is notframebufferMc
.
See about obfuscation.
You will have to use the Searge name(field_147124_at
) to access variable and functions.
The filemcp-stable_22.srg
have the mappings from MCP name to Searge name.
The reason you can use MCP name to in normal scriptAPI is because they did this.But with Core.lib you don't have to do that anymore.
@CzechHek
THANK YOU BASED HEK. Don't have to look for srg name anymore.
And that should even solved the problem of using script in development environment, going to try it later.