v26.1-Alpha.8 — Dynamic hook API
Pre-release
Pre-release
·
3 commits
to v26.1
since this release
BCDebugJavaAgent v26.1-Alpha.8
Pre-Release — Alpha builds are functional but unstable. Do not run in production environments.
Highlights
Dynamic hook API — plant an observation point into a RUNNING game with
one request:
POST /hooks/add?class=aqu&method=a&desc=(Ljava/util/function/BooleanSupplier;)V&level=INFO
-> {"hook":"aqu#a(...)V","retransformed":1,"failed":0}
GET /hooks/list -> ["aqu#a(...)V", ...]
POST /hooks/clear -> {"removed":1}
- Hooks authored directly in RUNTIME names (no mapping translation — the
operator speaks the runtime's language, e.g. obfuscated names obtained via
/classes); generic callback logs invocations with argument count at the
requested level. - Registration retransform-classes the already-loaded target; the existing
injection tracker guarantees no double injection. - Cleared hooks leave injected bytecode that safely no-ops (registry miss).
- All three operations audited; available on both control-plane frontends.
Validation
Live on MC 1.21.1 dedicated server (obfuscated jar):
ADD-aqu: retransformed=1, failed=0
INFO RuntimeHook aqu#a args=1 ← firing at 20 TPS on the hot class
LIST / CLEAR: lifecycle complete
(An idle-method target — brigadier canRead on a Done-idle server —
correctly produced no fires; execution, not injection, was the limiter.)
56 unit tests green (runtime hook lifecycle + cleared-dispatch no-op).
Build Information
| Item | Value |
|---|---|
| Artifact | bcdebug-javaagent-v26.1-Alpha.8.jar (bytecode 52 — JDK 8+) |
| Commit | 031923d (SSH-signed, Verified) |
| Tag | v26.1-Alpha.8 (SSH-signed, Verified) |
安装说明(中文)
- 下载
bcdebug-javaagent-v26.1-Alpha.8.jar。 - 运行中植入观测点:
POST /hooks/add?class=<运行时名>&method=<名>&desc=<描述符>&level=INFO。 /hooks/list查看;/hooks/clear一键清除(旧调用点自动空转)。- Alpha 版本不稳定,请勿用于生产环境。
MIT License — Copyright (c) 2026 BlockConnect