Version 1.5 – UUID Validation Fixes & Smarter Filtering
Highlights:
-
Improved detection logic for attribute modifier UUIDs
-
Prevents false positives from vanilla attribute names
-
Adds new configuration option to control global UUID deduplication
Fixes & Improvements:
-
Fixed: Vanilla attribute names like minecraft:armor.boots or base_attack_damage were incorrectly flagged as invalid UUIDs.
-
The plugin now skips UUID parsing unless the modifier name looks like a real UUID (36 characters, 4 dashes).
-
Improved: Safer handling of non-UUID-like names. These are no longer treated as errors and won’t be removed unless truly broken.
-
Cleaned up logging for skipped UUID parsing — now clearly says when something was intentionally ignored due to being a vanilla name.
New Config Option:
ignoreDuplicateUUIDsAcrossAttributes
:Allows modifiers to share UUIDs across different attributes, preventing false-positive removal of legit modifiers (e.g., damage and toughness sharing a UUID).
ignoreDuplicateUUIDsAcrossAttributes: true
v1.4.1 - Logging Tweaks & Sanity Preservation
-
Added log-invalid-uuid-names config optionYou can now suppress log spam from UUID-like modifier names (e.g. "armor.boots") that previously cluttered the console with lines like:Skipped bad UUID: armor.helmet.
-
These logs are still detected and cleaned — they just no longer scream about it unless you want them to.
-
Minor config cleanup and prep for quieter deployment environments.
NullAttributeRemover v1.4
Removed
- Entire UUID-fixing mechanism — no more
attemptFixInvalidUUIDs
setting or code paths. - Config option:
attemptFixInvalidUUIDs
- Any logic invoking
UUID.nameUUIDFromBytes(...)
or generating replacement modifiers. - Deferred fix queues, replacement-runner code blocks.
- All references to replacing invalid UUID entries with newly generated ones.
Changed
-
Simplified
cleanAttributes()
method:- Now strictly removes invalid modifiers (blank name, null UUID, invalid amounts, duplicate UUIDs).
- Removed attempts to patch or "fix" invalid UUID values.
-
Validation logic now:
- Issues warnings for UUID-like names when
logUUIDLikeNames
is enabled, but does not treat them as removal criteria. - Removes modifiers whose name equals their UUID (likely injected debug values).
- Issues warnings for UUID-like names when
-
Removed all code paths using
deferredFixes
,fixQueue
, or replacement fallback logic.
Log Behavior Updates
-
Core clean-up logs:
- Only logs removal events (e.g. “Removed X invalid modifiers”).
-
Warnings for invalid UUID strings are still configurable via
debugLogs
. -
No more log entries indicating “Fixed X modifiers” — only removal summaries.
🔧 v1.2 Changelog (since v1.1)
- Added
/nar scan [player]
and/nar debug <player>
commands - Replaced timer with event-based scanning (world change, teleport, etc.)
- Added
config.yml
for logging and silent mode options - Improved console log formatting with colors
- Fixed duplicate UUID detection across multiple attributes
- Fixed blank name checks (now catches whitespace-only names too)
- Added detection for NaN, Infinity, null UUIDs, invalid operations, UUID-like names, and zero-amount junk modifiers