61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
"""Волна 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 '<oob>').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)
|