This is the biggest release yet. The most prominent features are:
- Displaying item stack data itself
- Copying data of any item stack
- JSON formatting
and more.
Note: Your current configs will be reset when upgrading to this release.
Additions
Formatting
- Added JSON formatting
Copying
- Added the ability to copy data of any item stack
- This includes:
- Component values
- Item stack data
- Which is exactly the same as using
/data get
on the item stack
- Which is exactly the same as using
- Give command
- Yielding the exact item represented by the item stack
Tooltips
- The item stack data itself can now be displayed instead of individual components
- Added more controls for navigating individual components:
UP
,LEFT
for the previous componentDOWN
,RIGHT
for the next componentHOME
,END
for either the first or last componentALT
,SHIFT + ALT
is unchanged
Configs
- Added a bunch of new configs
- This includes:
- Purpose: What will be displayed
- Components (default)
- Item Stack
- Components: Which components will be displayed
- All (default)
- Default
- Changes
- Formatting: What formatting to use
- SNBT (default)
- JSON
- Object
- Colored Formatting: Whether formatted data will be colored
- On (default)
- Off
- Copy: What will be copied when pressing
CTRL + C
- Component Value (default)
- Item Stack
- Give Command
- Disabled
- Prepend Slash: Whether to add a
/
in front of the copied give command- On (default)
- Off
- Include Count: Whether to include the item stack count in the copied give command
- On
- Off (default)
- Success Notification: Whether to notify about successful copy actions
- On (default)
- Off
- Purpose: What will be displayed
Keybindings
- Added keybindings for cycling various enum configs
- These are unbound by default
Notifications
- Added toast notifications for several events
- This includes:
- Copying anything (can be disabled)
- Cycling enum configs with keybindings
Changes
Formatting
- Renamed "Class" formatter to "Object" formatter
- Internal (non-encoded) components will now be formatted as
{}
when using SNBT formatting - Object formatting now also supports colored formatting
Tooltips
- Removed components will now be listed at the bottom of the section instead of the top
- Removed components can now also be selected, displaying the value that would've been there
- When a formatting error occurs with Object formatting, it will no longer fallback to using zero indentation
Configs
- Reworked the config screen
- Configs that don't apply with other configs currently set will now be grayed out
- Changed the way configs are de-/serialized
- Configs within the config file will now follow a hierarchical order
- Enum configs are now snake case
- Integer config values that are, for some reason, out of range will now be reset to their default value instead of clamping it
- Renamed some old configs
- "Indent Size" becomes "Indentation"
- "Mode" becomes "Formatting"
- The "Changed Components" config was being removed in favor of the "Components" enum config
Bug fixes
- Data was previously not being displayed when the item stack had the
minecraft:hide_tooltip
component - Object formatter didn't indent on
()
which was causing slight misalignments for certain components - Pressing
J
(or any other bound key) very rapidly didn't open the config screen
This is a minor patch that adds 1.21 support.
Additions
- Components that have been removed using the new
!
prefix will now be displayed as such whenComponent Changes
is enabled.- They will be listed at the top of the section, indicated by a strikethrough formatting.
Changes
- The config
Colored SNBT
is now enabled by default.
This is a major release introducing configs and a new SNBT representation for component values, which is the same as used for /data get
.
Additions
- Added SNBT mode:
- Component values can now be displayed using an SNBT representation.
- This behavior is the same as
/data get
.
- New configs:
- Mode:
- Can be
SNBT
orClass
. - Defaults to
SNBT
. - Specifies the representation of component values.
- Can be
- Display:
- Can be
Never
,Hold
orAlways
. - Defaults to
Hold
. - Specifies when components will be displayed.
- Can be
- Indent Size:
- Defaults to
4
. - The amount of spaces used for indentation when formatting.
- A value of zero means no formatting will occur.
- Defaults to
- Colored SNBT:
- Defaults to
false
. - Determines whether component values in SNBT mode should be colored.
- Defaults to
- Component Changes:
- Defaults to
false
. - Only non-default (changed) components will be displayed.
- Defaults to
- Component Values:
- Defaults to
true
. - Determines if component values should be displayed alongside component types.
- Defaults to
- Advanced Tooltips:
- Defaults to
false
. - Determines whether the debug option
Advanced tooltips
must be enabled to display components.
- Defaults to
- Mode:
- Configs can be accessed by pressing
J
on the keyboard or navigating through ModMenu.- This keybind can be changed in the regular keybind settings of Minecraft.
- Configs are stored in a
componentviewer-config.json
file inside the config directory.
Changes
- SNBT mode is now the default mode instead of Class mode.
Bug fixes
- Fixed an issue where the keyword
pattern
in Class mode is not treated as a beginning string. - Fixed an issue where component type indentation was one space too large if only one component exists.
- NBTComponents like
minecraft:custom_data
,minecraft:entity_data
, etc. are now correctly formatted in Class mode.
This is a minor patch that made some changes to the component value formatter under the hood.
Additions
- Added indent caching.
- Added a fallback to non-formatted component values if formatting goes wrong.
Bug fixes
- Fixed most issues related to formatting of
minecraft:item_name
,minecraft:custom_name
andminecraft:lore
components.- Characters like
[
,]
,"
,'
,,
and;
will no longer break the formatting.
- Characters like
Known issues
- Certain character combinations with
{
or}
as item names or item lores might still cause formatting issues.- This issue is not resolvable with the current implementation of how "Component Viewer" gathers component value information.