[SCRIPT BASE] Core 4.11 - Simple, yet powerful ScriptAPI base
-
-
@fartcheese
Java.type("java.lang.Runtime").getRuntime().addShutdownHook( new Thread(function() { var editor = new TextEditor(new File("wtf.txt")); editor.text = "The process has been terminated." }) );
Works but I don't think that using Runtime isn't sus in scripting base scenario.
However I could make it call onClientShutdown event if you wanted.
Edit: For some reason it doesn't do anything probably because it is on other thread, however normal onClientShutdown detects process termination from Task Manager, so I will leave it like it is. Additionally, when I was doing stuff around this I noticed that you cannot call the new "artificial events" using built-in
callEvent
util, so I made them register into ScriptModule's event register as well. -
-
Core 4 brings new commands API
Reworked the whole Core Commands API. You can now specify arguments that are required as function parameters. Multiple arguments count can be accounted for by using array of functions with different parameter count. Look at some examples to learn how it works.
- https://github.com/CzechHek/Core/blob/master/Scripts/ValueBinder.js
- https://github.com/CzechHek/Core/blob/master/Scripts/Manager.js
- https://github.com/CzechHek/Core/blob/master/Examples/complex command.js
- https://github.com/CzechHek/Core/blob/master/Examples/simple command.js
Core Updater now prints latest commit information in update dialogs (changelog).
Added multiple functions: isObject, getFunctionParameters, downloadDirectory, Array.toLowerCase, Array.flat
ClickGui hooking separated into Core.updateClickGui. You can use it to refresh ClickGui while keeping events such as onClickGuiLoaded working.
Fixed a possible bug that could prevent core.log from being removed and therefore break Core Updater.All changes: https://github.com/CzechHek/Core/commit/293059540f632bc3300ccdd47128d3f0d21daba6
-
-
Core 4.1 - utils and polish
Added utils:
- getTargetsInRange(range, entityType) - used in KillAuraPatch 3
- getStepHeight()
You can now setValues of built-in LB modules. (stupid)
Improved code.
All changes: https://github.com/CzechHek/Core/commit/6d63b715ccd079cf6ffeb2562900e553613701b8
-
Core 4.2 - dynamic values, performance, b73
You need to update manually this time if you are on stable b73.
Added built-in Dynamic Values.(However, I don't like the way they are implemented just yet. I will post an example later if I don't figure out any better method.)
- added onValueChanged event
Greatly improved Core performance.
- improved importing (better importPackage implementation, better module importing) (makes it work on b73 as well)
Fixed Reflector not working correctly in some situations, like accessing keys and such.
Refactored, simplified code, removed a few missed globals.
Improved hookEvent util. (Now you can hook events that have different handleEventsCallback - they can get triggered if your handleEventsCallback function returns true) (example soon)
https://github.com/CzechHek/Core/commit/61dfc5bb823aa467d23c61a840e5b38f0ee78248
Some things to look at:
Core.importedPackages = []; function importPackage() { var packages = Array.prototype.slice.call(arguments); Core.importedPackages = Core.importedPackages.concat(packages); } __noSuchProperty__ = function (name) { if (name.endsWith("Module")) { var module = moduleManager.getModule(name.slice(0, -6)); if (module) return this[name] = module; } for each (var package in Core.importedPackages) { try { var type = Java.type(package + "." + name); return this[name] = type; } catch (e) {} } throw new ReferenceError(name + " is not defined"); } importPackage( "net.minecraft.block", "net.minecraft.block.material", "net.minecraft.block.properties", "net.minecraft.block.state", "net.minecraft.client.gui", "net.minecraft.client.gui.inventory", "net.minecraft.client.renderer", "net.minecraft.client.renderer.block.model", "net.minecraft.entity", "net.minecraft.entity.boss", "net.minecraft.entity.effect", "net.minecraft.entity.item", "net.minecraft.entity.monster", "net.minecraft.entity.passive", "net.minecraft.entity.player", "net.minecraft.entity.projectile", "net.minecraft.init", "net.minecraft.item", "net.minecraft.network", "net.minecraft.network.handshake.client", "net.minecraft.network.login.client", "net.minecraft.network.login.server", "net.minecraft.network.play.client", "net.minecraft.network.play.server", "net.minecraft.network.status.client", "net.minecraft.network.status.server", "net.minecraft.util", "net.ccbluex.liquidbounce.utils", "net.ccbluex.liquidbounce.utils.block", "net.ccbluex.liquidbounce.utils.extensions", "net.ccbluex.liquidbounce.utils.item", "net.ccbluex.liquidbounce.utils.login", "net.ccbluex.liquidbounce.utils.misc", "net.ccbluex.liquidbounce.utils.render", "net.ccbluex.liquidbounce.utils.render.shader", "net.ccbluex.liquidbounce.utils.render.shader.shaders", "net.ccbluex.liquidbounce.utils.timer", "net.ccbluex.liquidbounce.value", "net.ccbluex.liquidbounce.event" );
-
@czechhek said in [SCRIPT BASE] Core 4.2 - Simple, yet powerful ScriptAPI base:
- added the RAT
- re-added the bloatware
-
-
Summary of 4.3 to 4.11 changes:
4.3
C04, C05, C06 importing
4.4
Improved ClickGUI hooking, now updates style and refreshes ClickGui if it was open already.
Added value.createSpacer()4.5 - headers, value improvements
Added value.createHeader(title) which makes a new TextValue(title, "") which cannot be changed by user, therefore acting like a header.
Added support for multiple spacer values.
Fixed getNearestTarget and getTargetsInRange not actually checking if entities are suitable targets when you specify a certain type using entityType argument.4.6 - dynamic values rework
Reworked dynamic values.
Fixed Core not setting module tags.
Fixed setValues not being able to set more spacers than 1.4.7 - tab autocompleting
Added support for tab autocompleting into Core commands.
You use it by defining onTabComplete in Core command.command = { onTabComplete: function (args) { return ["arguments", "to", "autocomplete"] } }
4.8 - better reloading
Replaced LB's .reload with better built-in reloader. It can reload specific targets that you specify (supports tab autocomplete).
- added Core.hookReloader() function
Executing Core's commands now clears chat history to make everything more readable.
- added clearChat() function
4.9 - reloader update and legacy support
Updated built-in reloader to version 4.1.
- LB doesn't crash if a script fails to load
- added error messages printing
- added indicators about how many scripts, configs, fonts were reloaded
- reloader command doesn't get reloaded when scripts get reloaded
Fixed support for legacy ScriptAPI v1 scripts.
- also added auto script naming if not defined manually - from file name
4.10 - important fixes
getMethod now searches through all methods of a class not just declared ones.
- You as well as Reflector couldn't get any subclass, ... methods with this function. Reflector is therefore more capable now.
Reflector no longer returns a new Reflector instance when assigning it to a some variable or calling events with it.
- Previously it would be invalid for these interactions since you cannot set specific class types to Reflector instances.
Fixed Reflector creating new instance even when the object == false.
Fixed Reflector not being able to print JavaBeans instances.
Fixed Reflector not being able to return class methods.- Now you can use it to print(EnemiesConfig.loadConfig) -> returns Method as well as EnemiesConfig.loadConfig() -> invokes the method.
Fixed sendPacket throwing error when sending packet when net handler isn't yet loaded.
Added Math.sign: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/signFixed more reloader crashes.
- If you tried to reload a script that was removed from script folder the game would crash.
4.11 - a bit of everything
Completely reworked Dynamic Values backend.
- added support for dynamic list values
- fixed
onClickGuiOpen/Closed
andonShutdown
not getting called when a script was using dynamic values - you can now specify which values to show when
values: [ value.createList("Radio", ["Evropa2", "idk", "cc", "Custom"], "Evropa2", { "Custom": value.createText("URL", "idk"), "idk": [value.createText("loool", "xddd"), value.createInteger("int", 1, 2, 3)] }), value.createBoolean("Enabled2.0", false, { "true": value.createBoolean("true", true), "false": value.createBoolean("false", false) }), value.createBoolean("Enabled", false, [ value.createText("loool", "xddd") ]), ]
Added importFromScript(scriptName, propertyName)
- easy way to import properties (variables, functions) from other scripts
Updated Reloaded to version 4.4
- messages are now hoverable (they show more info about what was reloaded if you hover over them)
- added info about how long it had taken to reload
- added ability to load unloaded .js files from scripts folder (they autocomplete like any other script) (useful when a script fails to reload)
- fixed invalid autocompletions
Improved Array.flat()
- made it recursive
- it can now completely flatten multiple layers of arrays
Added Object.values(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values
Improved getValues(module)- added ability to get values of LB modules
Fixed autocomplete crashing if array wasn't returned.
Fixed clearChat() crashing after reload when the chat was clear already. -
This post is deleted!