Data Sync Lib

Annotation-driven automatic data sync and persistence framework for Minecraft mod development.
Back to Files

datasynclib-forge-1.20.1-26.8.3.jar

File namedatasynclib-forge-1.20.1-26.8.3.jar
Uploader
nutant233nutant233
Uploaded
Aug 16, 2026
Downloads
49
Size
561.8 KB
Mod Loaders
Forge
File ID
8661832
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:data-sync-lib-1620790:8661832")

Learn more about Curse Maven

What's new

Version 26.8.3

Improvements

• Added collection/list/set/map combination utilities to CombinedCodec

• Optimized the internal codec access chain via toDataCodec / toStreamCodec (return the wrapped codec directly instead of re-wrapping), improving serialization and comparison performance

Version 26.8.2

New Features

• CombinedCodec composition utilities: new factory methods for composing DataSyncCodec from existing CombinedCodecs — collection, list, set (reference), and map (key/value pairs)

Version 26.8.1

New Features

• @AdditionalHolder(childManager = true): new child-manager mode. The annotated sub-object is no longer flattened into the parent manager; it now gets a dedicated FieldDataManager (wrapped in a ChildFieldDataHolder) and is handled as a single field through ChildManagerAccess (equivalent to FieldDataHolderAccess, but for arbitrary sub-objects). Nested child managers are supported.

• Generic hierarchy resolution: ReflectUtil now resolves full generic type arguments along superclasses/interfaces (getResolvedSuperType, getResolvedGenericArguments, resolveSuperTypeBindings). E.g. A<T> extends HashMap<String,T> with a field A<Integer> now yields [String, Integer].

• Registry global codec auto-registration: Registry gained an optional value runtime type (Class<V>); on freeze() it automatically registers its streamCodec() + dataCodec() into the global DataSyncCodec, so fields of the registered value type serialize without manual registration.

Changes

• FieldDefinitionStorage.scanFields distinguishes flat @AdditionalHolder from childManager = true (no flattening; a single child-manager field definition is created)

• DataComponentRegistry is unaffected (uses the classic constructor → no auto global registration)

• Dev-mode self-tests (DataSyncSelfTests) + test entity (TestEntity) added to exercise disk/network round-trips, default/null skipping, child-manager, generic resolution, and registry global codec registration

This mod has no related projects