Opal 提供了 GraalVM JavaScript 引擎,这是一个完整的 JS 运行时,运行在 Minecraft 客户端内部。您可以在游戏运行期间编写脚本,与 Opal 的内部 API 进行交互。这既不是宏录制器,也不是按键绑定系统。它是一个真正的编程环境,可以访问客户端的事件系统、模块配置和游戏状态.
Key takeaways
- 一个完整的 GraalVM JavaScript 运行时,而不是一个宏记录器。
- 响应游戏事件,更改模块设置,并绘制你自己的 HUD。
- 脚本在运行时加载,无需重启,并以沙盒模式运行在 Opal 的 API 中。
- 大多数其他客户端仅限于基本的宏.
为什么选择 GraalVM?
GraalVM 是 Oracle 提供的多语言运行时。我们选择它的原因很具体:
- 速度:JIT 编译保持脚本足够快,可以在每个时钟周期运行。
- JavaScript:大多数人已经熟悉它,因此学习曲线很短。
- 线程安全:JS 到 Java 的绑定能够正确处理并发,而不是让您在其中绊倒。
- 熟悉模式:标准的 JavaScript API 表现方式符合您的预期
你能建造的东西
定制自动化
响应游戏内事件:
// Auto-respond to certain chat messages
on('chat', (event) => {
if (event.message.includes('1v1?')) {
sendChat('/duel accept');
}
});动态模块配置
根据游戏状态更改模块设置:
// Increase reach when health is low
on('tick', () => {
const health = player.getHealth();
if (health < 8) {
modules.get('Reach').setSetting('distance', 3.3);
} else {
modules.get('Reach').setSetting('distance', 3.1);
}
});自定义 HUD 元素
绘制您自己的覆盖层:
// Display a combo counter on screen
let combo = 0;
on('attackEntity', () => { combo++; });
on('damage', () => { combo = 0; });
on('render2d', (ctx) => {
ctx.drawText(`Combo: ${combo}`, 10, 10, 0xFFFFFF);
});服务器特定配置
加入不同的服务器时,自动切换配置:
on('serverJoin', (event) => {
if (event.ip.includes('pvp.example.com')) {
loadConfig('server-bypass');
} else {
loadConfig('ghost-default');
}
});开始
1
打开脚本目录
在您的 Opal 配置文件夹中找到脚本目录
2
创建 .js 文件
随便起个名字就行。这是你的剧本
3
反对 API 编写
请参考仪表盘文档中的 API 参考:事件、模块访问、播放器状态和渲染
4
保存并播放
脚本在运行时加载,无需重启
脚本运行在沙箱中
脚本在 GraalVM 中执行,可以调用 Opal 的 API,但无法访问您的文件系统、网络或其他应用程序。您的脚本保持本地,您的机器仍然是您的。
社群脚本
脚本社群正在发展壮大。Discord 频道分享了脚本和人员,可以帮助你编写自己的脚本。常见的脚本包括用于迷你游戏的自动游戏脚本、数据追踪器、连击检测器以及服务器特定的配置切换器。
常见问题解答
GraalVM,Oracle 的企业级 JavaScript 运行时,具有线程安全的游戏绑定。
不可以。它们仅限于 Opal 的 API 沙箱环境。
不需要。直接将文件放入,运行时即可加载。
找到一个你可以掌控的客户,$8.99
Lifetime license · instant delivery · no subscription