Some module renamer script which anyone can make
-
@faaatpotato Yeah, not a good idea.
-
1.
Core.hookClickGui()
To reload the ClickGui properly. (You've used that in JartexScript.)
2.
onShutdown: function () { // rename them back and LiquidBounce.fileManager... save config modules or values or smth // probably both, since states are in modules.json and values in values.json from what I remember }
EDIT:
I've found my renaming module from 15. 6. 2020 16:34- renames window title
- renames ClickGui categories
- renames LiquidBounce itself (probably applies to TitleScreen?)
- renames hud elements such as %clientName% or LiquidBounce to the new name tf I really did that, why????
- renames everything back when unloaded OK NOW SERIOUSLY WHY?
- old ScriptAPI
- Core didn't have reflection utils but I knew how Java reflections worked so they probably came out not long after this post
- didn't know about for each loop nashorn exclusive
module = { name: "Rename", values: [name = value.createText("Name", "Cube")], onLoad: function () { Display.setTitle(Display.getTitle().replace(LiquidBounce.CLIENT_NAME, "CubeLiquidBounce")); Java.from(ModuleCategory.values()).forEach(function (v) { (field = v.class.getDeclaredField("displayName")).setAccessible(true); (modifiersField = Field.class.getDeclaredField("modifiers")).setAccessible(true); modifiersField.set(field, field.getModifiers() & ~Modifier.FINAL) field.set(v, name.get() + v.getDisplayName()); }); LiquidBounce.moduleManager.modules.forEach(function (v) { v.setName(name.get() + v.name); }); field = LiquidBounce.class.getDeclaredField("CLIENT_NAME"); (modifiersField = Field.class.getDeclaredField("modifiers")).setAccessible(true); modifiersField.set(field, field.getModifiers() & ~Modifier.FINAL) field.set(LiquidBounce, "CubeLiquidBounce"); LiquidBounce.hud.elements.forEach(function (v) { if (v instanceof Text) { (field = Text.class.getDeclaredField("displayString")).setAccessible(true); (field.get(v).get() == "%clientName%" || field.get(v).get().toLowerCase().match("LiquidBounce")) && field.get(v).set(LiquidBounce.CLIENT_NAME); } }); }, onUnload: function () { Java.from(ModuleCategory.values()).forEach(function (v) { (field = v.class.getDeclaredField("displayName")).setAccessible(true); (modifiersField = Field.class.getDeclaredField("modifiers")).setAccessible(true); modifiersField.set(field, field.getModifiers() & ~Modifier.FINAL) field.set(v, v.getDisplayName().split(name.get())[1]); }); LiquidBounce.moduleManager.modules.forEach(function (v) { v.setName(v.name.split(name.get())[1]); }); LiquidBounce.hud.elements.forEach(function (v) { if (v instanceof Text) { (field = Text.class.getDeclaredField("displayString")).setAccessible(true); (field.get(v).get() == "CubeLiquidBounce") && field.get(v).set(LiquidBounce.CLIENT_NAME); } }); } } Field = Java.type("java.lang.reflect.Field"); Modifier = Java.type("java.lang.reflect.Modifier"); Text = Java.type("net.ccbluex.liquidbounce.ui.client.hud.element.elements.Text"); ModuleCategory = Java.type("net.ccbluex.liquidbounce.features.module.ModuleCategory"); Display = Java.type("org.lwjgl.opengl.Display"); script.import("Core.lib");
-
@faaatpotato perhaps you can do it like
for each (module in moduleManager.getModules()) { //THIS IS REALLY NASHORN SPECIFIC SHIT module.name = "abc" }
or by using Java's StreamAPI
-
@idk-my-name
He figured that out himself one time and fucked it up second time.
-
@faaatpotato first time you could it make like
moduleManager.getModule(name).name = "abc"
EDIT:
btw using var in for isn't js style -
@idk-my-name I'm learning smth new great
-
for each (var names in saveNames) { var module = moduleManager.getModule(names[1]); if (module) module.name = names[0]; }
but this should probably be done with object {}
oh and ofc im stupid
moduleManager.getModule(name).name = "abc"
but you need vars in for loops because they otherwise create globals outside the for loop which can create problems and also degrades performance significantly
-
.hide is a thing