{"repo":"kuohsuanlo/ChunkGuardAgent","free":true,"listed":false,"github":"https://github.com/kuohsuanlo/ChunkGuardAgent","clone":"git clone https://github.com/kuohsuanlo/ChunkGuardAgent.git","description":"Refuse to save a load-failed blank chunk over good disk data — a -javaagent write barrier that stops OOM chunk corruption on Paper.","language":"Java","stars":26,"topics":["bytecode-instrumentation","data-integrity","folia","javaagent","minecraft","minecraft-server","paper"],"license":null,"category":"game-templates","readme_excerpt":"ChunkGuardAgent 一個 Java agent： 在 chunk 存檔的最後一刻攔截,如果發現要寫入的是「載入失敗的空白產物」、 而硬碟上還是好資料,就 SKIP 這次寫入 —— 好資料因此存活。專治高壓/OOM 下「4KB 空殼蓋掉好 chunk」的真毀損。判斷用 內容來歷(chunk status)不是檔案大小 ,零誤殺。 crafted by 廢土貓大 LogoCat · 廢土 · mcfallout.net - 目標:Paper / Folia,MC 26.2(1.21.11);設計上最大程度不綁版本(見〔跨版本〕) - 下載: dist/ChunkGuardAgent-26.2-5.jar (預編譯;版本說明與 checksum 見 RELEASES.md ) - 安裝: -javaagent:ChunkGuardAgent.jar ,重啟生效 - 實測:一台大型外掛環境的 Paper 26.2 測試伺服器—— 檢視 10,073 次真實存檔、 0 誤殺 (skipped=0)、0 反射錯誤、1,988 次非-full chunk 正確放行 ChunkGuardAgent 會吃多少記憶體？ 常駐成本：幾乎為零。 幾 MB 的 Metaspace（agent 類別＋內嵌的 ASM，一次性、不佔 heap）、幾十 bytes 的計數器、兩條沉睡的 daemon thread。heap 上沒有任何常駐資料結構——它沒有快取、沒有名單、無狀態。 每次存檔的動態成本，分三種情況： 1. 絕大多數存檔（full 快速通道）：反射讀一個 status 字串就返回，臨時分配約幾十 bytes。實測 21,022 次存檔全走這條，無感。 2. 非-full 存檔＋記憶體充足：會解壓硬碟上那格來比對——暫時吃「該 chunk 解壓後的大小」，用完即成垃圾。日常這種情況是探索時的 worldgen 推進存檔，硬碟上是小的半成品（幾十 幾百 KB），成本小。大解壓只發生在「毀損正在發生」的瞬間（非-full 要蓋大型 full chunk 時），一次性、也正是它該花力氣的時刻。 3. 非-full 存檔＋記憶體吃緊（free 只有當「要寫入的是非-full」而「硬碟上現存的是 full」時,才 SKIP。 full 不可能合法地退回 empty,所以這條規則 不會誤殺一次正常的 terrain chunk 存檔 —— 實測 10,073 次 存檔,誤殺 0 次。 ⚠️ 但「零誤殺」曾經只對 terrain chunk 成立,26.2-4 以前有一個嚴重缺陷 : RegionFileStorage 這個攔截點 同時被實體(entities)與 POI 儲存共用 ( EntityStorage → SimpleRegionStorage → RegionFileStorage ),而實體/POI 的根標籤 本來就沒有 Status 欄位 。舊版 statusOf() 在讀不到 Status 時回傳空字串而非 null,於是每一筆實體/POI 存檔都被當成「非-full 的 terrain chunk」, 在低記憶體時被丟棄。正式環境代價:13 台分流命中、單台最高 1,598 次,且 全機隊 100% 的攔截 都是這個誤判 。 26.2-5 已修 (見 RELEASES.md 與下方〔已修缺陷〕),請務必升級。 --- 二、技術版 攔截點(單一 chokepoint) instrument net.minecraft.world.level.chunk","default_branch":null,"files":null,"tree":[],"storefront":"/r/kuohsuanlo","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/kuohsuanlo/ChunkGuardAgent/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}