Releases: UberMorgott/Hytale-Mod-NickNameChanger
Releases · UberMorgott/Hytale-Mod-NickNameChanger
Release list
NickNameChanger 0.0.18
- Updated for Hytale 0.6.x, built against server 0.6.8.
- Fixed nickname commands on 0.6.8. Use
/nncif another mod owns/nick. - Kept real usernames unchanged so other mods and server commands can find players by account name.
- Added nickname and message-color support for mini-chat-formatter 0.1.x, plus nickname sync for EssentialsPlus and EliteEssentials. EP's native sync accepts only A-Z, a-z, 0-9 and
_. EE message colors need HelpChat PlaceholderAPI and%nnc_msgcolor_legacy%before{message}. - Fixed LuckPerms prefix formatting and defaults for unset permissions.
- Added nickname character rules, real-name protection and a separate
nickname.msgcolorpermission. - Fixed tab-list, map and nameplate updates, plus editor Apply/Reset handling.
- Added optional PlaceholderAPI tokens and external placeholders in NNC chat. Added a HyperPerms nickname token; HyperPerms 2.10.0 itself is not compatible with server 0.6.8.
- Added automatic config migration with
config.json.pre-0.0.18.bak. Unreadable nickname files are no longer overwritten; failed saves are reported. - To upgrade, stop the world or server, replace the jar and delete the old jar. Keep the data folder.
- The name at the top of the inventory or character screen comes from the client account. No server mod can change it.
- Report bugs on GitHub Issues. I don't read CurseForge comments.
v0.0.17
v0.0.17 — Native API Migration & Bug Fixes
Native API Migration:
- Replace
System.out.println()with nativeHytaleLoggerAPI across all files - Migrate config system from manual Gson to native
withConfig()+BuilderCodec - Add Decorator pattern for chat formatter — no longer overwrites other plugins' formatters
Bug Fixes:
- Fix ColorPicker brightness slider defaulting to black when selecting presets
- Fix EssentialsPlus: bold/italic/underline tags no longer show as raw text in chat
- Fix EP tag conversion:
<b>/<i>/<u>properly handled
v0.0.16
Changes
- Migrate plugin detection from
Class.forName()to nativePluginManager.getPlugin(PluginIdentifier)API - Add EssentialsPlus and MiniChatFormatter to OptionalDependencies in manifest.json
- Fix LuckPerms identifier (LuckPerms:LuckPerms, not lucko:LuckPerms)
v0.0.15 - EssentialsPlus Integration
What's New in v0.0.15
EssentialsPlus Integration
- Auto-detect EssentialsPlus (EP) and inject EP-compatible color tags
- Nickname gradient/color now renders through EP's
ColoredTextParser - Message color (
msgcolor) works with EP via event content wrapping - Added
convertToEPFormat()utility for TinyMessage → EP tag conversion
Bug Fixes
- Mutual reset fix: Apply now preserves nick and msgcolor independently (changing one no longer resets the other)
- Reset button fix: Now properly resets both nick and msgcolor
- UI tab switch fix: Separate
nickColorModefrom tab visibility — switching tabs no longer destroys gradient settings
Chat Handler Changes
- Two void chat handlers:
FIRSTpriority sets nickname,LATEpriority restores original - Eager detection of MCF/EP in
start()viadetect()methods
Compatibility
- MiniChatFormatter (MCF) compatibility module extracted to
compat/package - EssentialsPlus compatibility module added to
compat/package
v0.0.13
Bug Fixes
- Fixed crash on
/nick reset— race condition where entity reference could become invalid between command execution and world thread processing - Fixed message colors (
/nick msgcolor) not applying when player has no nickname set resetNameplate()andupdatePlayerList()now respect display config settings (matchingsetNickname()behavior)- Added null safety for
worldUuidin player list updates
Compatibility
- Added Essentials Core compatibility notes — disable
chat.enabledin Essentials config to avoid formatter conflicts - Added EliteEssentials note — use
/nicknamealias if/nickis intercepted
v0.0.12
v0.0.12 — Crash fixes, LuckPerms compatibility, security hardening
Critical
- Fix nameplate cleared to empty after
/nick reset(Hytale ECS compatibility) - Atomic file writes for nickname storage — no more data corruption on crash
Crash Fixes
- Fix client crash ("Crash - Cus...") when executing
/nickduring player disconnect/world unload - Fix NPE in PlayerListener when player data not ready
- Fix NPE in Settings page when applying to players across worlds
- Handle corrupted JSON files gracefully (no more plugin crash on bad data)
- Fix reflection error handling in PlayerRefUtil
LuckPerms Compatibility
- Non-blocking cache lookup for chat (no more WorldThread freeze on DB query)
- Strip formatting tags before writing display-name to LP metadata (fixes conflicts with other plugins)
- Don't override chat formatter when player has no nickname and no LP prefix/suffix (fixes EtherealPerms, HyRankUp compatibility)
Security
- Escape
<>in chat messages before gradient tag embedding (prevents formatting injection)
Other
- Add
/nicknamecommand alias (avoids conflict with EliteEssentials/nick) - Update manifest ServerVersion from
*to>=2025.01.01
v0.0.11
Fixed
- Thread crash when saving admin settings with players in different worlds (
IllegalStateException: Assert not in thread!)applyToAllPlayers()now schedules store operations on each player's own world thread
Changed
- Recompiled against latest Hytale release channel (Feb 22, 2026)
v0.0.10
Fixed
- Thread crash when saving admin settings with players in different worlds (
IllegalStateException: Assert not in thread!)applyToAllPlayers()now schedules store operations on each player's own world thread
Changed
- Recompiled against latest Hytale release channel (Feb 22, 2026)
v0.0.9
Fixed
- Tab list with LuckPerms — Other players now correctly see nicknames in the player list when LuckPerms is installed
- Map/minimap — Nicknames now display on the world map for all players
Technical
- Added
PlayerRefUtil— modifiesPlayerRef.usernamevia reflection so all server systems (map markers, player list, LuckPerms sync) use the nickname natively
v0.0.8
v0.0.8 — Bug Fixes, Config Options & API
Bug Fixes
- Gradient nametag fix: Gradient nicknames no longer cause the nametag to disappear for other players
- EtherealPerms compatibility: Chat formatting from other plugins (EtherealPerms, etc.) is now preserved when the player has no nickname set
- UI Reset button: Reset in the nickname editor now properly clears the nickname from storage, nameplate, and tab list
- Thread safety: Fixed race conditions in nickname storage and LuckPerms hook
- Hex prefix parsing: Short hex format
<#XXXXXX>from LuckPerms prefixes is now parsed correctly (from v0.0.7-hotfix)
New Features
- Display config options: Server admins can control where nicknames appear via
config.json:display.showInChat— show nickname in chat (default: true)display.showOnNameplate— show nickname above player head (default: true)display.showInTabList— show nickname in player list/map (default: true)
- Public API: Other plugins can now query nickname data via
NicknameAPI:NicknameAPI.getNickname(uuid)— raw nickname with markupNicknameAPI.getDisplayName(uuid, default)— nickname or fallbackNicknameAPI.hasNickname(uuid)— check if setNicknameAPI.getOriginalUsername(uuid)— pre-nickname username
- LuckPerms enabled flag:
integrations.luckperms.enabledconfig option now respected
Improvements
- Deduplicated internal code (stripTags, dead code removal)
- Null-safe config loading (safe upgrade from older versions)
Full changelog: v0.0.7...v0.0.8