NoSlotChanger 0.1.zip for Nextgen 0.28

CookieChinese
Posts
-
who can write the script? noSlotChanger in the client LB for Nextgen -
[Script] Mediator 0.2.1 (Update)Mediator (v0.2)
Author : mumy255
This is a JavaScript script designed for managing and transmitting data between different modules or components. Its core functionality is to store data in the form of key-value pairs and use a listener mechanism to respond to data changes.
Download:
Mediator 0.2.1 and Document.zip (for nextgen 0.27)
Mediator 0.2 and Document.zip (for nextgen 0.26)
Mediator 0.1 and Document.zip (for nextgen 0.26)
Getting the
Mediator
Module InstanceCode Example
var mediator; script.on("enable", () => { mediator = Client.getModuleManager().get("Mediator"); });
Step-by-Step Explanation
-
script.on("enable", callback)
:script.on("enable", ...)
is an event listener that triggers when the script is enabled. The callback function is executed once the script is enabled.- Inside this callback, the operation to fetch the
Mediator
module instance is performed.
-
Client.getModuleManager()
:Client.getModuleManager()
is an API that retrieves the client module manager. It is responsible for managing all loaded and enabled modules.
-
.get("Mediator")
:get("Mediator")
is used to fetch the instance of the module namedMediator
from the module manager."Mediator"
is the unique identifier for this module.- If the
Mediator
module is loaded and enabled, theget()
method will return the module's instance. If the module is not enabled or loaded, it may returnnull
.
-
Saving the Module Instance:
- The retrieved module instance is saved to the
mediator
variable, which can be used for subsequent operations.
- The retrieved module instance is saved to the
Notes
- The
mediator
will only be correctly assigned after the script is enabled, so the fetching operation should be inside thescript.on("enable", ...)
callback. - If the module doesn't exist or wasn't loaded correctly,
mediator
will benull
.
Extended Example
var mediator; script.on("enable", () => { mediator = Client.getModuleManager().get("Mediator"); if (mediator) { Client.displayChatMessage("Mediator module is now available."); } else { Client.displayChatMessage("Failed to get Mediator module."); } });
In this example, the code checks if
mediator
was successfully fetched, and displays a message based on the result.
Methods
putData(key: string, value: any | null): boolean
Adds data to the data store and notifies relevant listeners when the data changes.
Parameters:
Property Description Type key The key of the data item string
value The value of the data item, can be null
to clear the dataany/null
Return Value:
Returns a boolean indicating whether the operation was successful.Example:
const success = dataStore.putData("user", { name: "John", age: 30 }); Client.displayChatMessage(success); // true
getData(key: string): any | null
Retrieves the data for the specified key.
Parameters:
Property Description Type key The key of the data item string
Return Value:
Returns the data for the specified key, ornull
if the data does not exist.Example:
const user = dataStore.getData("user"); Client.displayChatMessage(user); // { name: "John", age: 30 }
clearData(key: string): boolean
Clears the data for the specified key.
Parameters:
Property Description Type key The key of the data item string
Return Value:
Returns a boolean indicating whether the operation was successful.Example:
const success = dataStore.clearData("user"); Client.displayChatMessage(success); // true
hasData(key: string): boolean
Checks if data exists for the specified key.
Parameters:
Property Description Type key The key of the data item string
Return Value:
Returns a boolean indicating whether data exists for the specified key.Example:
const hasData = dataStore.hasData("user"); Client.displayChatMessage(hasData); // true
registerListener(jsObject: { key: string; name: string }, callback: Listener): boolean
Registers a listener to monitor changes in data for the specified key.
Parameters:
Property Description Type jsObject An object containing key
(data item's key) andname
(listener name){ key: string; name: string }
callback The callback function for the listener, which accepts value
andstate
(PRE
orPOST
) as parameters(value: any/null, state: string) => void
Return Value:
Returns a boolean indicating whether the listener was successfully registered.Example:
const listener: Listener = (value, state) => { Client.displayChatMessage(`Data changed: ${value}, State: ${state}`); }; mediator.registerListener({ key: "user", name: "userListener" }, listener);
unregisterListener(key: string, name: string): boolean
Unregisters a listener to stop monitoring data changes for the specified key.
Parameters:
Property Description Type key The key of the data item string
name The name of the listener string
Return Value:
Returns a boolean indicating whether the listener was successfully unregistered.Example:
const success = mediator.unregisterListener("user", "userListener"); Client.displayChatMessage(success); // true
Example Usage
// Add data to the data store mediator.putData("user", { name: "John", age: 30 }); // Retrieve the data const user = mediator.getData("user"); console.log(user); // Output: { name: "John", age: 30 } // Check if the data exists const hasData = mediator.hasData("user"); console.log(hasData); // Output: true // Register a listener const listener: Listener = (value, state) => { Client.displayChatMessage(`Data changed: ${value}, State: ${state}`); }; mediator.registerListener({ key: "user", name: "userListener" }, listener); // Update the data and trigger the listener mediator.putData("user", { name: "Jane", age: 25 }); // The state will be "POST" // Unregister the listener mediator.unregisterListener("user", "userListener"); // Clear the data mediator.clearData("user");
-
-
A Simple Benchmark Performance Test for LiquidBounce's ScriptAPI@EclipsesDev (by mumy)
The test results show a performance difference of less than 1% compared to b98, and the remapper is working correctly.
(legacy b100 git-99f4b13) -
A Simple Benchmark Performance Test for LiquidBounce's ScriptAPI@EclipsesDev (by-mumy)
I tested using the b98 release, and its remapper is working properly, allowing the use of MCP names.//@ts-ignore blocks.push(mc.theWorld.getBlockState(blockPos.set(x, y, z)));
And the results:
Test Case Fibonacci Sieve of Eratosthenes World Scanner Standard Script 152ms 60056ms 1482ms Due to the theoretically small performance difference in hybrid scripts, testing is no longer conducted.
-
A Simple Benchmark Performance Test for LiquidBounce's ScriptAPI@commandblock2 (by-mumy)
Yes, the remapper for Legacy b99 is broken, but it only affects the function name mapping, while the field names remain unaffected. This issue has led to the use of srg function names instead of mcp function names in the Legacy scripts. -
LiquidBounce ScriptAPI 简易基准性能测试作者:mumy
前言
LiquidBounce自从b57时把ScriptAPI的语言更换到JavaScript后提供了强大的扩展性,但社区中并未对其性能进行过较为具体的评估。
最近我才意识到了这个情况,所以我打算尝试做个简易的Benchmark以评估其性能。测试
我计划将脚本分为两类:标准脚本和混合脚本(例如
mumyPacketDebugger
)。
测试将包括斐波那契数、埃氏质数筛选和世界(方块)扫描。
对于 Nextgen 版本,我分别使用 ZuluJDK 与 GraalVM 进行测试。最终结果将取决于运行时间稳定后的最短耗时。
脚本
legacy b99 和 nextgen 0.24 的 Benchmark.zip
测试平台
- 操作系统:Windows 10 22H2
- CPU:Intel i9-14900HX(锁频 5.0GHz)
- 内存:DDR5 16GB + 16GB 5600MHz
测试环境
- Legacy
- 版本:b99
- JDK:ZuluJDK 8
- Minecraft:Forge 1.8.9 + OptiFine M5
- Nextgen
- 版本:0.24
- JDK:ZuluJDK 21 / GraalVM 21
- Minecraft:Fabric 1.21.4 + Sodium 0.6.6
测试结果
Legacy
测试项目 斐波那契数 埃氏质数筛 世界扫描 标准脚本 149ms 61482ms 1539ms 混合脚本 59ms 1147ms 311ms Nextgen
测试项目 斐波那契数 埃氏质数筛 世界扫描 标准脚本 + ZuluJDK 9890ms 9629ms 9368ms 标准脚本 + GraalVM 144ms 1277ms 1952ms 混合脚本 + ZuluJDK 67ms 1023ms 195ms 混合脚本 + GraalVM 52ms 982ms 177ms 结论
虽然有一些特殊版本的 LiquidBounce 我并未测试,但大多数都是过时版本,参考价值有限(例如 Legacy-b73 1.12.2 或 Nextgen 0.17,后者尚未支持 GraalJS JIT)。
对于 Legacy 版本,自 b57 以来一直使用 Nashorn 作为脚本引擎,理论上每个版本的性能差异不大。
对于 Nextgen 版本,如果没有使用 GraalVM 启动 LiquidBounce,在运行标准脚本时可能会出现卡顿现象。推荐使用 LiquidLauncher 来解决这个问题。
-
A Simple Benchmark Performance Test for LiquidBounce's ScriptAPIAuthor: mumy
Introduction
Since LiquidBounce switched its ScriptAPI language to JavaScript from version b57, it has provided powerful extensibility. However, the community has not conducted a specific performance evaluation on it. Recently, I realized this gap and decided to perform a simple benchmark to assess its performance.
Test
I plan to divide the scripts into two categories: Standard Scripts and Hybrid Scripts (e.g.,
mumyPacketDebugger
). The tests will include Fibonacci numbers, the Sieve of Eratosthenes, and block scanning in the world. For the Nextgen version, tests will be conducted using ZuluJDK and GraalVM.The final result will be based on the shortest time taken after the runtime stabilizes.
Script
Benchmark for legacy b99 and nextgen 0.24.zip
Platform
- OS: Windows 10 22H2
- CPU: Intel i9-14900HX (locked at 5.0GHz)
- RAM: DDR5 16GB + 16GB 5600MHz
Environment
- Legacy
- Version: b99
- JDK: ZuluJDK 8
- Minecraft: Forge 1.8.9 + OptiFine M5
- Nextgen
- Version: 0.24
- JDK: ZuluJDK 21 / GraalVM 21
- Minecraft: Fabric 1.21.4 + Sodium 0.6.6
Results
Legacy
Test Case Fibonacci Sieve of Eratosthenes World Scanner Standard Script 149ms 61482ms 1539ms Hybrid Script 59ms 1147ms 311ms Nextgen
Test Case Fibonacci Sieve of Eratosthenes World Scanner Standard Script + ZuluJDK 9890ms 9629ms 9368ms Standard Script + GraalVM 144ms 1277ms 1952ms Hybrid Script + ZuluJDK 67ms 1023ms 195ms Hybrid Script + GraalVM 52ms 982ms 177ms Conclusion
There are some special versions of LiquidBounce that I haven't tested, but most of them are outdated and have limited reference value (e.g., Legacy-b73 1.12.2 or Nextgen 0.17, which didn't yet support GraalJS JIT).
For the Legacy version, since Nashorn has been used as the Script engine since b57, theoretically, there are no significant performance differences across versions.
For Nextgen, if you don't use GraalVM to launch LiquidBounce, you may experience lag when running standard scripts. I recommend using LiquidLauncher to solve this issue.
-
[Script] ClickGUISyncerAuthor : mumy
- Description
Used to fix the synchronization issue in ClickGUI after the introduction of Cache.
Issue: https://github.com/CCBlueX/LiquidBounce/issues/5228
- Download
ClickGUISyncer 0.1.zip (Compatible with Nextgen 0.21-0.23 (may be fixed in 0.24))
- Description
-
[Script] GCore 0.1 (End support)Warning!
This script is no longer
supported.
Please do not continue using it.
Authors
Godden & mumy255
Screenshots
Description
This script includes various conceptual CrystalPVP features, suitable for Vanilla servers running version 1.9 and above.
(Supports only Nextgen 0.2.0-0.4.1 and Minecraft 1.20.4)
Download
Q&A
Q: Why has this script been discontinued and no longer developed?
A: This script was only used to test certain conceptual features and was never intended for long-term use.Q: Why does it only support MC 1.20.4 and nextgen 0.4.1?
A: It's purely because the developer was too lazy to make it work for other versions.Q: Why is there an issue with the download link?
A: Because it was disrupted by some form of coercive force on this side.Q: Why does the script have different versions?
A: Not sure, GCore only has a standard version and a Lite version.
The standard version has no version number (default is 0.1), and the Lite version stopped earlier. -
[Script] BlocksMCCriticals for NextgenAuthor : mumy
E-mail : [email protected]-
Screenshots
-
Description
Since Nextgen currently lacks the BlocksMC mode in Criticals, it has been ported from Legacy for use.
#2733 -
Download
BlocksMCCriticals.zip (Nextgen 0.2.0+)
-
-
[Script] mumyPacketDebugger 0.3 (Update)0.3 update
-
[Script] mumyStrongholdFinder 0.1Author : mumy
E-mail : [email protected]-
Screenshots
-
Description
Allows you to use Eye of Ender to locate Stronghold, compatible with nextgen. -
Download
mumyStrongholdFinder 0.1.zip (Nextgen 0.2.0+)
-
-
[Script] mumyPacketDebugger 0.3 (Update)@kawaiinekololis (By mumy)
However, this poses a problem in China, as our Minecraft launchers here generally do not use the official one from Mojang, but rather third-party launchers like PCL or HMCL. Regarding LiquidLauncher, it's essentially not used here due to network reasons. Therefore, to enhance JavaScript performance without using LiquidLauncher, is it necessary to manually install GraalJDK? -
[Script] mumyPacketDebugger 0.3 (Update)@kawaiinekololis
(By mumy)
This was something I thought of when I was writing a script and realized that JavaScript's performance couldn't satisfy the demand (in b73 1.12.2). This approach brings additional benefits, such as type inference and checking (which are not supported by JavaScript and there are no available TypeScript type declarations), and stable execution efficiency (the script is only responsible for loading and unloading). However, it cannot be denied that this could lead to uncertainties in compatibility with future versions of LiquidBounce, but this was a decision made after considering the pros and cons (high execution efficiency). -
[Script] mumyPacketDebugger 0.3 (Update)Author : mumy
E-mail : [email protected]- Screenshots
- Description
The first available PacketDebugger on Nextgen, allowing you to monitor or cancel network packets.
- Download
mumyPacketDebugger 0.1.js (Nextgen 0.1.5+)
mumyPacketDebugger 0.2.zip (Nextgen 0.1.8+)
mumyPacketDebugger 0.3.zip (Nextgen 0.2.0+)
- Screenshots
-
Nextgen 0.1.5 git-5170bcc has rendering errorsIt is guessed that the precision loss issues are caused by the use of the Float type.
-
Yes, we're backOur team fell apart a long time ago, and now our updated JS will be updated by me and Mumy, and we will be upgrading a lot of JS to APIv2, so you can keep an eye on it
-
关于1.12.2水影的实例- 1.12.2的水影没有适用的API文档
- 由于使用的重混淆表依旧是1.8.9的因此会把在1.12.2与1.8.9中相同Searge名称的成员(例:field_71441_e)或方法映射成1.8.9对应的MCP名称(例:theWorld)
- 1.12.2的水影有跨版本功能(现已废弃,但仅是让1.8.9无法启动),一些API改成了内置的跨版本系统提供的API(例如onPacket事件里的getPacket()是IPacket,实现类是PacketImpl,使用getWrapped()获取原生数据包)
要使用1.12.2的类请先把配置目录下的重混淆表(mcp-stable_22.srg)替换成1.12.2内容的重混淆表(这里放个已经替换的:mcp-stable_22.zip ),重混淆表替换完成后可以使用 1.12.2-Forge 的MCP作为文档
(by-mumy) -
Anticheat memes -
BackGround LiquidBounce Girl3.0(AI Drawn)(By Cookie)@kawaiinekololis It's just that the clothes and eyes don't look very similar (I didn't expect you to play Genshin Impact too)