"""Волна N+14: vfbuild29 — 3 EF в aef.java. Запуск: python3 tools/waves_n14.py""" import os, sys ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) JAVA = os.path.join(ROOT, "src/main/java") p = os.path.join(JAVA, "defpackage/aef.java") L = open(p, encoding="utf-8", errors="replace").read().splitlines() ok = True def edit(ln, old, new): global ok i = ln - 1 if i < len(L) and old in L[i]: L[i] = L[i].replace(old, new, 1) elif i < len(L) and new in L[i]: pass else: ok = False print(f"MISS {ln}: {old!r} got {(L[i] if i < len(L) else '').strip()!r}") def insert(ln, lines, guard_prefix, marker): global ok i = ln - 1 if marker in L[max(0, i - 6) : i + 1]: return if i < len(L) and L[i].strip().startswith(guard_prefix): L[i:i] = lines else: ok = False print(f"INS-MISS {ln}: guard {guard_prefix!r} got {L[i].strip()[:60]!r}") edit(186, "adx.ownedOnly(var1x).applyTo(var0);", "adx.ownedOnly(var1xf).applyTo(var0);") edit(179, "if (var2.player != null) {", "if (var2f.player != null) {") insert( 178, [ " final Minecraft var2f = var2;", " final aee var1xf = var1x;", ], "var2.execute(() -> {", "final Minecraft var2f", ) edit( 123, "Files.writeString(var2x, var1, StandardCharsets.UTF_8);", "Files.writeString(var2x, var1f, StandardCharsets.UTF_8);", ) insert( 115, [" final String var1f = var1;"], "IO.execute(", "final String var1f", ) open(p, "w", encoding="utf-8").write("\n".join(L) + "\n") print("OK" if ok else "PROBLEMS") sys.exit(0 if ok else 1)