- Field data inspection system has been completely rewritten
The base abstract class that holds a field data tree is `FieldDataHolder`, which is generic over the node type.
If you don't need custom functionality in nodes (for example, in packet dumping), you can use `DefaultFieldDataHolder`.
The source of field info is now represented by a `FieldDataSource`, which is async and meant to be easy to implement.
gadget provides the `LocalFieldDataSource` for local Java objects and `RemoteFieldDataSource` is used internally for field data screen.
The network format has also been changed to also support sending errors back to the client.
- Packet dumping has been completely rewritten
Packet parsing is now done based on a system of `UnwrappedPacket`s, which have methods for gathering search text and writing to owo-ui/plain text.
Some helper interfaces (`FieldsUnwrappedPacket` for field dumped objects and `LinesUnwrappedPacket`) are provided to help with implementing custom packets.
`DumpedPacket` can have arbitrary context data (which is now used for search and rendered component data), and all events now take an `ErrorSink` parameter, which accepts non-fatal errors.
Most dumping code is now in `io.wispforest.gadget.dump.{read|write}`, and most client-side packet renderers are now common code
`PacketDumpReader` and `PacketDumpWriter` have been added as nice objects for reading and writing packet dumps
- Field dumps and packet dumps can now be exported to a user-readable format
Packet and field dumps can be exported to plain text, and field dumps can also be exported to JSON
An example of a plain text packet dump is <https://gist.github.com/BasiqueEvangelist/b516f7acf6e6c826ac252301e57a3750>
Additionally, the new packet dump and field data holder interfaces support writing these dumps
- Added bytes field object
Used to represent byte arrays and byte buffers. Displayed as a hexdump instead of a list of byte values.
- Complex field objects now track recursion
- `SynchronizeRecipesS2CPacket` is now represented as a gadget fake packet that doesn't break whenever a recipe is missing
- Dump stats screen improvements:
A progress toast is now used to track loading progress.
Additionally, a back button added to sidebar.
- Added experimental owo-ui error check option
Right now, this just replaces `Component#remove` with a more fault-tolerant version
- Quiltflower code now uses new HTTP client to get versions
Should be much faster than old implementation
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }