An asset management system to enable servers and clients to exchange resources such as sounds, textures, sprites and maybe even .schematic files and the like.
This would consist of s system to expose files stored in the server.
Probably some kind of ServerAssets class - that has a collection of Asset class objects - each with an AssetType for example. Methods would allow client mods to then fetch a list of available assets and retrieve them.
Assets to be transferred to the client by events such as player login - or possibly via an on demand system sending over when client use occurs, would need to account the delay of sending the file - Asset object having some kind of status field for whether its transferred over to client yet?
Asset objects could then be used by the client to apply textures to blocks, Mobs, sprites for items, sounds for whatever sound API is wriiten in future... and pure data assets for mods to decode on their own (such as schematics).
MD5 hash exchange could be implemented when assets are used to confirm their integrity when the client uses them - ensuring the client uses the files the server requires without modifying (substituting clear textures or .schematic files with diamond block id's in for eg.)
Maintaining asset integrity and making them mostly tamper proof.
Ensuring only required assets are exchanged to reduce logon-lag.
Affects Version/s: n/a