Runeweaver Rosetta asset synchronization
runeweaver-rosetta-${minecraft}-${loader} is an optional companion artifact. It keeps Runeweaver’s core artifact independent of Rosetta while providing a small, explicit server-owned datapack asset API.
A consumer registers each channel during common initialization. The channel discovers matching datapack files and exposes their raw bytes to a client snapshot consumer:
AssetChannel.register(
RegistryCompat.getLocation("example_mod:names"),
"names", ".json",
64 * 1024, 512 * 1024, 256,
(channel, snapshot) -> NamesClient.replaceSnapshot(snapshot)
);
Resources are discovered from the server ResourceManager and sent as one complete raw-byte snapshot, cached per server. The snapshot is sent on player join and after every Rosetta datapack-reload callback. A reload with no matching resources sends an empty snapshot, so clients do not retain removed assets. The consumer owns format parsing; the channel only enforces the configured byte and count limits.
Implementation
repositories {
maven("https://raw.githubusercontent.com/Rasa-Novum/runeweaver/maven/")
maven("https://raw.githubusercontent.com/Rasa-Novum/Rosetta_Library/maven/")
}
dependencies {
implementation("com.rasanovum.runeweaver:runeweaver-rosetta-1.21.1-fabric:0.1.0")
}
Use the matching runeweaver-rosetta-${minecraft}-${loader} artifact for the consumer’s target. Its POM brings in the matching core Runeweaver and Rosetta target artifacts.