1.21.1-neoforge-JEI Structures-3.0-JEI 19.39.0+
Curse Maven Snippet
What's new
3.0 (1.21.1 NeoForge)
Major rework of the structure capture commands (/jei_structures debug_capture...) for modpack authors. On the same seed with 29 vanilla overworld structures, a full capture went from about 85 s to about 38 s, with identical loot and mob results.
Performance
- Structure locating now computes the structure start directly on the locate thread instead of waiting for a chunk to load, so locating no longer competes with capture chunk generation.
- Chunk readiness is polled asynchronously, and the player is teleported only after the chunks are ready.
- The cooldown between structures has been removed, more structures are prefetched, and the mob wait time is shorter.
- During capture, lighting, ordinary biome features (trees, ores, lakes, etc.) and chunk-generation animal spawns are skipped. Structure pieces are still placed. Chunks generated this way are not saved until the server restarts.
- Client synchronization during capture is suppressed (silent teleport).
- The game tick is frozen during capture and restored afterwards, so block entities, fluids and mobs no longer trigger chunk loads.
Fixes
- Fixed main-thread stalls caused by the player standing in released chunks and by block entities such as vaults near spawn.
- Fixed a deadlock when a mod queries its own chunk from a worldgen thread during structure generation (seen with AbyssalCraft + C2ME).
- Fixed lock contention in StructureCheck between locate threads and the main thread.
- A locate timeout is retried once before the structure is marked as failed.
- On a chunk load timeout, the structure is moved to the end of the queue. On a second timeout it is skipped and recorded as failed, instead of blocking the server with a synchronous load.
- Fixed ticket leaks for skipped queue entries.
- Loot that belongs to vanilla dungeon features inside a structure's bounding box is no longer attributed to the structure.
Changes
- Capture commands now show a red warning on the first use in each world. Run the command again to confirm. Capture should be done in a separate world.
- New
debugCaptureconfig options:locateThreads,locateTimeoutSeconds,prefetchStructures,skipLighting,skipChunkSaving,skipFeatures,skipChunkGenerationMobs, andchunkLoadTimeoutSeconds(default 20) replacingchunkLoadsPerTick. - Added
[JEI_DEBUG]timing and stall diagnostics to the log.
3.0(1.21.1 NeoForge)
面向整合包作者的结构采集指令(/jei_structures debug_capture...)大幅重做。同种子下采集原版主世界 29 个结构,耗时从约 85 秒降到约 38 秒,采集到的战利品和生物结果不变。
性能
- 结构定位改为在定位线程中直接计算结构起点,不再等待区块加载,不会再和采集区块的生成互相抢占资源。
- 改为异步检查区块是否就绪,区块就绪后才传送玩家。
- 取消结构之间的冷却,增加预加载的结构数量,缩短等待生物的时间。
- 采集期间跳过光照计算、普通地物(树、矿石、湖等)和区块生成时刷出的动物,结构本身照常放置。这样生成的区块在服务端重启前不会保存。
- 采集期间屏蔽客户端同步(静默传送)。
- 采集期间冻结游戏刻,结束后恢复,方块实体、流体和生物不会再触发区块加载。
修复
- 修复玩家停留在已释放的区块、出生点附近的宝库等方块实体导致主线程卡顿的问题。
- 修复模组在结构生成时从生成线程查询自身区块导致的死锁(AbyssalCraft 与 C2ME 同时安装时出现)。
- 修复 StructureCheck 在定位线程和主线程之间的锁竞争。
- 定位超时后会重试一次,仍然超时才把该结构记为失败。
- 区块加载超时后,先把该结构移到队尾;第二次超时则跳过并记为失败,不再在主线程同步加载、卡住服务端。
- 修复跳过的队列项没有释放区块票据的问题。
- 结构包围盒内原版地牢等地物的战利品,不再算到结构头上。
变更
- 采集指令在每个存档第一次使用时会显示红色警告,再次输入才开始采集。请在单独的存档中进行采集。
debugCapture新增配置:locateThreads、locateTimeoutSeconds、prefetchStructures、skipLighting、skipChunkSaving、skipFeatures、skipChunkGenerationMobs,以及取代chunkLoadsPerTick的chunkLoadTimeoutSeconds(默认 20)。- 日志新增
[JEI_DEBUG]耗时与卡顿诊断信息。
This mod has no additional files

