- Updated to 1.21
- Support for the old dump format (which for a long time hasn't been used) has been removed
- NBT locking has been removed
- The NBT inspector has been adapted to fit item stack components
Straight-forward port to 1.20.3/1.20.4.
- Fix UTF-8 encoding (Kas-tle, #35)
- Remove translations from file dialogs (mfw tinyfiledialogs)
- NBT locking is now disabled by default
- NBT tags can now be copied in the NBT inspector (#37)
- Added support for dumping server queries (Benonardo, #38)
- Some minor remapping issues should be fixed
Mostly a port to 1.20.2. Big thank you to Kas-tle for helping with porting!
As the 1.20.2 networking changes hit gadget pretty hard, this version has been initially released as beta.
Expect bugs!
- Tab now works in the NBT inspector
- Added loud chat logging
Run/gadget chat-log enable logger-name
to forward all messages from that logger to the in-game chat! - Basic item NBT locking support
Item stack NBT will be locked while running methods that shouldn't mutate it
Changing item stack NBT while locked will cause a crash - (Block)entity client data can now always be viewed on the client, even if the server doesn't have gadget installed
- Searching in the field inspector screen should work again
- Compatibility with Krypton should hopefully be fixed
- Dumped packets now show the time at which they were sent relative to the start of the dump
- Packets can now be visually collapsed in the dump screen
- Stacks with non-null empty NBT now have a special tooltip
- Add tag button no longer appears in NBT inspector when client doesn't have enough permissions
- Ported to 1.20.1.
- Added support for flushing dump file on JVM exit and after packet write (#21)
- Dump reader now fails soft on IOException
-
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 useDefaultFieldDataHolder
. The source of field info is now represented by aFieldDataSource
, which is async and meant to be easy to implement. gadget provides theLocalFieldDataSource
for local Java objects andRemoteFieldDataSource
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 andLinesUnwrappedPacket
) 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 anErrorSink
parameter, which accepts non-fatal errors.
Most dumping code is now inio.wispforest.gadget.dump.{read|write}
, and most client-side packet renderers are now common code
PacketDumpReader
andPacketDumpWriter
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 replacesComponent#remove
with a more fault-tolerant version -
Quiltflower code now uses new HTTP client to get versions
Should be much faster than old implementation
Hotfix narrator mixins after Mojang hotpatched TTS
Hotfix narrator mixins after Mojang replaced the TTS library
Updated to 1.19.4.
Also includes a small rewrite of packet dumping that makes bundle packets work and write errors not crash the game.
- Fix crashes on servers without gadget
no this wasn't intended - Fix some issues with Polymer
- Fix scrolling in the server list screen
Updated to 1.19.3
- Added the Class Inspector!
This allows you to look at and save mixin'd classes at runtime, with everything remapped to your mappings of choice. - Fixed Mojang Mappings exploding immediately
- Fixed Item Inspector being triggerable on air and creative menu items (#14)
- Search fields in field inspection screens don't crash after empty search results
- The gadget button is now properly positioned in multiplayer
- You can now use Ctrl+F to focus the search field
- Long oωo-ui updates now log total mutations and component inflations
- The Entity Inspector screen now has a search field for fast field finding
- The Item NBT Inspector now inits the stack's NBT if it didn't have any
- Updating NBT compound tags in a Field Inspector doesn't reload the entire tag anymore
- Custom hidden fields are now supported
The fields that were hidden by default before are now specified in the config.
Right-click on a field and pressHide field
to hide it. - Java standard library fields are now inspectable
Some unneeded fields might now be shown, but you can always hide them. - Packets with invalid data don't crash the dump reader anymore, and now visually display their errors
- Maps of any key type are now supported
- Some unneeded plus buttons in NBT inspectors are now hidden
- gadget now uses a custom raycast method that allows inspecting all entities, including items
- oωo text fields not working in production is now mitigated
- Some pointless dev env startup errors are now silenced
- Added the Resource Inspector
You can now view resources and server data in game, allowing you to easily view all mod data and virtual resource packs.
- Packet dumps are now saved in the .gdump format
Packet timestamps are now saved, and dumps are now gzip compressed - The Dump Viewer has been reworked
Dumps are navigable by time, with the time slider choosing which time to show - The "Don't Show Frequent Packets" option has been replaced by "Drop Chunk Data"
- Debug Keys in Screens are now processed after the screen (#7)
- Added the MatrixStack debugger
This logs MatrixStack pushes/pops after an error, allowing easier debugging of MatrixStack errors - Added the UI Inspector!
Press Ctrl+Shift and mouse over a UI component to show its class, position and size This works with Vanilla and REI GUIs. - The Gadget screen now shows the sizes of dump files
- The View Dump screen is now initted on a separate thread, which should make it easier to see progress
- Progress toasts can now show file loading progress
- The View Dump screen has been optimized a bit, with more coming soonâ„¢
- The Field Inspector now supports maps with enum keys
- All Inspectors: field and class names are now remapped at runtime to the mappings of your choice (Mojmap, Yarn or QM)
- Packet Dumper: unsupported packets are now shown as a hex dump
- Added NBT Inspector: view and edit item stacks' NBT data