promotional bannermobile promotional banner

Mirage Sync

A fabirc minecraft mod for incremental dimension sync between main and mirror Minecraft servers via persistent TCP connection.

File Details

mirage-1.1.0.jar

  • R
  • Apr 11, 2026
  • 85.91 KB
  • 11
  • 1.21.11
  • Fabric

File Name

mirage-1.1.0.jar

Supported Versions

  • 1.21.11

Curse Maven Snippet

Fabric

modImplementation "curse.maven:mirage-sync-1505496:7908972"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Version: v1.1.0

New Features

1. Timed Syncing

  • New ScheduledSyncTask: automatically pulls data from main server at configured intervals
    • Sync interval (in minutes) configurable in settings
    • Dynamic task update via /mirage reload
    • Background thread execution, no impact on server performance
  • Config options: autoSyncEnabled / autoSyncIntervalMinutes

2. Chunk Based Syncing

  • New RegionFileUtil: direct read/write of .mca region files
    • readChunkData() - read specific chunk from .mca
    • writeChunkData() - write chunk to .mca
    • Supports automatic sector allocation and offset table updates
  • New single-chunk sync commands:
    • /mirage sync chunk <dimension> <chunkX> <chunkZ> - main server sync specified chunk
    • /mirage pull chunk <dimension> <chunkX> <chunkZ> - mirror server pull specified chunk
  • New batch sync commands:
    • /mirage sync all - sync all loaded dimensions
    • /mirage pull all - pull all loaded dimensions

3. Network Protocol Extension

  • New message types:
    • CHUNK_SYNC_REQ - single chunk sync request
    • CHUNK_SYNC_RESP - single chunk sync response
  • On-demand single chunk sync, replacing full dimension hash comparison

Improvements

  • Command subnodes support more flexible argument combinations
  • applyChunkSync() automatically clears region file cache after writing chunk data, ensuring server loads new chunk data correctly

Files Changed

File Change
Mirage.java New scheduled task management, single-chunk/all-dimension pull methods
MirageCommand.java New sync all, sync chunk, pull all, pull chunk commands
ScheduledSyncTask.java New - scheduled sync task implementation
RegionFileUtil.java New - .mca region file read/write utility
MessageType.java New CHUNK_SYNC_REQ/RESP
MessagePayloads.java New chunk sync payloads
ClientHandler.java Handle chunk sync responses
ServerHandler.java Handle chunk sync requests
MainServerTask.java Respond to chunk sync requests
MirrorApplyTask.java Apply chunk sync data
MirageConfig.java New timed sync config options

Stats: 11 files, +518 lines / -3 lines


版本: v1.1.0

新增功能

1. 定时同步 (Timed Syncing)

  • 新增 ScheduledSyncTask:自动定时从主服拉取数据
    • 支持在配置中设置同步间隔(分钟)
    • 可通过 /mirage reload 动态更新定时任务
    • 后台线程执行,不影响服务器性能
  • 配置项 autoSyncEnabled / autoSyncIntervalMinutes

2. 单区块同步 (Chunk Based Syncing)

  • 新增 RegionFileUtil:直接读写 .mca 区域文件
    • readChunkData() - 从 .mca 读取指定区块数据
    • writeChunkData() - 向 .mca 写入区块数据
    • 支持自动分配扇区和更新偏移表
  • 新增单区块同步命令:
    • /mirage sync chunk <dimension> <chunkX> <chunkZ> - 主服同步指定区块
    • /mirage pull chunk <dimension> <chunkX> <chunkZ> - 镜像服拉取指定区块
  • 新增批量同步命令:
    • /mirage sync all - 同步所有已加载维度
    • /mirage pull all - 拉取所有已加载维度

3. 网络协议扩展

  • 新增消息类型:
    • CHUNK_SYNC_REQ - 单区块同步请求
    • CHUNK_SYNC_RESP - 单区块同步响应
  • 支持按需同步单个区块,替代全维度哈希对比

改进

  • 命令子节点支持更灵活的参数组合
  • applyChunkSync() 在写入区块后自动清理区域文件缓存,确保服务器能正确加载新区块数据

文件变更

文件 变更
Mirage.java 新增定时任务管理、单区块/全维度拉取方法
MirageCommand.java 新增 sync allsync chunkpull allpull chunk 命令
ScheduledSyncTask.java 新增 - 定时同步任务实现
RegionFileUtil.java 新增 - .mca 区域文件读写工具
MessageType.java 新增 CHUNK_SYNC_REQ/RESP
MessagePayloads.java 新增区块同步相关 Payload
ClientHandler.java 处理区块同步响应
ServerHandler.java 处理区块同步请求
MainServerTask.java 响应区块同步请求
MirrorApplyTask.java 应用区块同步数据
MirageConfig.java 新增定时同步配置项

统计: 11 个文件,+518 行 / -3 行

Full Changelog: https://github.com/MRNOBODY-ZST/Mirage/compare/v1.0.0...v1.1.0

Full Changelog: https://github.com/MRNOBODY-ZST/Mirage/compare/v1.0.0...v1.1.0