Commit Graph
17 Commits
Author SHA1 Message Date
modzuozhi 350920eaed Add teunwhitelist command to remove modded TE from parallel whitelist
- New /dimensionalripper teunwhitelist <regname> removes a modded block
  entity from the parallel whitelist, restoring its default forced-serial
  processing; reports whether it was actually present
- SerDesFilter.unwhitelistModded now returns boolean (removal success)
- README: document whitelist/teunwhitelist commands and clarify the
  built-in blacklist is hardcoded, not command-editable
2026-09-12 20:13:28 +08:00
modzuozhi 44e6fa2537 README: clarify conservative-serial TE list (hopper/dropper/dispenser/beehive etc.) to match implementation 2026-09-12 01:19:31 +08:00
modzuozhi 75ed486fec Update README: rewrite feature list as optimization scope (dimensions/entities/chunks/BE/items, all server-side) 2026-09-12 00:50:56 +08:00
modzuozhi 849ce7171c Add built artifacts: dimensionalripper-1.1.2.jar and sources jar
Bump mod_version to 1.1.2. Includes ESC-pause freeze fix, TE whitelist command, shard drop counters and POI lock optimization.
2026-09-12 00:47:23 +08:00
modzuozhi 801deb701a Fix singleplayer disconnect on ESC pause: freeze dimension loops
- New client mixin MixinMinecraftPauseDetector: on each Minecraft.runTick, detect integrated-server pause and freeze/unfreeze all dimension loops via DimThreadCore.setPaused, so no worker writes LevelChunk while the main thread is saving/pausing. Fixes reproducible disconnect (packet decode IndexOutOfBounds on ClientboundLevelChunkWithLight) ~0.5s after opening the pause menu.

- LevelTickLoop: add pause()/resume() (cancel next tick, stop self-rescheduling, re-schedule on resume) plus a paused guard at run() entry. Resilient to RejectedExecutionException when the master pool is already shut down.

- ServerManager.setPaused: pause all loops, then wait up to 5s for the in-flight tick to fully settle before returning.

- Keep existing work: TE whitelist command (/dimensionalripper tewhitelist), shard drop counters (entity/TE/chunk-env), POI lock optimization.
2026-09-12 00:44:23 +08:00
modzuozhi 3b9320d1e0 Update README: document sharding command and new optimizations 2026-09-09 22:22:43 +08:00
modzuozhi 3c4710490c Add entity sharding (ShardGate) and POI lock optimization
- ShardGate: shard entity ticking into per-shard CAS gates so slow shards
  skip a tick instead of blocking the whole barrier
- EntityTickParallel: collect entities by stable id into shards, submit via
  ShardGate, count missed shards
- FineGrainScheduler: add submitShard path with gate release and barrier
  counting
- SectionStorageMixin: replace global exclusive synchronized map with
  ConcurrentLong2ObjectMap to remove the POI read lock bottleneck
  (~19k villagers: TPS 9 -> 20)
- MasterCommand: add 'fine sharded on|off' toggle and status display
- Add environment setup/launch scripts
2026-09-09 22:13:02 +08:00
xxdd001 1607a87213 Add built artifacts: dimensionalripper-1.1.1.jar and sources jar (includes save-hang fix) 2026-09-07 19:24:09 +08:00
xxdd001 3dc6f4141f Fix intermittent 'Saving world' freeze on shutdown
killAllLoops() only cancelled the next scheduled tick without waiting for
in-flight dimension ticks to finish. The main thread then ran saveAllChunks
concurrently with worker threads (level.tick -> processUnloads) mutating the
non-thread-safe ChunkMap.toDrop, corrupting the fastutil map and hanging the
save forever.

Add ServerManager.stopLoopsAndWaitIdle() that kills all loops and spins until
each loop isTicking()==false (30s watchdog), and call it first in
MinecraftServerDimMixin.stopServer before killAllLoops(), so dimension ticks
fully finish before the main thread starts saving.
2026-09-07 19:17:54 +08:00
xxdd001 da3246878b Add built artifacts: dimensionalripper-1.0.0.jar and sources jar 2026-08-27 18:32:26 +08:00
xxdd001 675b74205d Fix chunk entity map concurrency: use concurrent Int2ObjectMap for ChunkMap.entityMap 2026-08-26 23:42:58 +08:00
xxdd001 837a6497e4 Add incompatibility warning for multithreading/cross-dimension mods 2026-08-26 21:19:56 +08:00
xxdd001 ce6532b644 Unify license to MIT 2026-08-26 21:16:34 +08:00
xxdd001 d14a892217 Add AI-generated disclosure to README 2026-08-26 21:13:13 +08:00
xxdd001 d4f1914c24 Add README with features and usage 2026-08-26 21:06:33 +08:00
xxdd001 453e715f3b Initial commit: Dimensional Ripper mod source (NeoForge 1.21.1) 2026-08-26 21:04:16 +08:00
xxdd001 df32c72cc9 Initial commit 2026-08-26 21:02:33 +08:00