Skip to content

CrackedPolishedBlackstoneBricksMC/toybox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Toybox

Minecraft tooling a la carte. Use what you need.

NOTE: Heavy work in progress. Not tested. Maybe don't use it yet.

Also an excuse to try out mill.

  • Test with ./mill __.test. Work with a specific module with, say, ./mill toybox-string.test.
  • Create jars with ./mill __.jar. They go in out/<module name>/jar.dest/.
  • Create fatjars with ./mill __.assembly; artifacts go in out/<subproject name>/assembly.dest/.

TODO

  • better MCP api
    • don't tie the format parsers to their representation
    • possibly a new module containing definitions for class/field/method/package mappings, and MCP is just a module depending on it?
    • that way i can reuse those definitions in other mapping formats
  • more tests lol

There is also fabric mappingio, which has a cool visitor api and supports a lot of formats but is geared towrads modern MCP obviously, so it doesn't support package mappings or fields.csv/methods.csv

Repackaging transformations feel like class-remapping, but they're slightly different. For example we need to express "move all classes without a package into this package", e.g..

Tour

northstar

Sandboxing. (This is intended to be a Mill library after all.)

toybox-checksum

Small utilities for working with MessageFormat objects and formatting hashes as hex strings. Might get removed/merged into other stuff, we'll see

toybox-download

Somewhat advanced file downloader, can download to disk or in-memory, supports etag caching, deleting files on error, swappable download backends etc

toybox-gdiff

A simple implementation of the Generic Diff algorithm described by W3C NOTE-GDIFF. This format is used by Minecraft Forge binpatches. Does not have the capability to create diffs; only applies them.

toybox-manifest-index

Representation of Mojang's version_manifest_v2.json file on piston-meta.

toybox-mcp

Utilities for MCP format mappings

toybox-string

Deduplication utilities for strings, used throughout the mapping parsers to reduce memory usage

toybox-version-manifest

Parser for per-version manifests like 1.20.1.json on piston-meta.

Name

Yes, the name is ripping off landley/toybox.

License

Currently unlicensed. This will change.

Code is a mishmash of original stuff, old stuff from Voldeloom that I wrote, and old stuff from Voldeloom that I borrowed from other places like the original Loom. That will need to get sorted out first, i'll need to include relevant licenses in each jar...

About

Minecraft tooling à la carte

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published