Skip to content

Releases: UberMorgott/Hytale-Mod-NickNameChanger

NickNameChanger 0.0.18

Choose a tag to compare

@UberMorgott UberMorgott released this 23 Sep 11:42
  • Updated for Hytale 0.6.x, built against server 0.6.8.
  • Fixed nickname commands on 0.6.8. Use /nnc if 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.msgcolor permission.
  • 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

Choose a tag to compare

@UberMorgott UberMorgott released this 06 Mar 22:03

v0.0.17 — Native API Migration & Bug Fixes

Native API Migration:

  • Replace System.out.println() with native HytaleLogger API 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

Choose a tag to compare

@UberMorgott UberMorgott released this 06 Mar 20:51

Changes

  • Migrate plugin detection from Class.forName() to native PluginManager.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

Choose a tag to compare

@UberMorgott UberMorgott released this 06 Mar 20:10

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 nickColorMode from tab visibility — switching tabs no longer destroys gradient settings

Chat Handler Changes

  • Two void chat handlers: FIRST priority sets nickname, LATE priority restores original
  • Eager detection of MCF/EP in start() via detect() methods

Compatibility

  • MiniChatFormatter (MCF) compatibility module extracted to compat/ package
  • EssentialsPlus compatibility module added to compat/ package

v0.0.13

Choose a tag to compare

@UberMorgott UberMorgott released this 04 Mar 07:39

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() and updatePlayerList() now respect display config settings (matching setNickname() behavior)
  • Added null safety for worldUuid in player list updates

Compatibility

  • Added Essentials Core compatibility notes — disable chat.enabled in Essentials config to avoid formatter conflicts
  • Added EliteEssentials note — use /nickname alias if /nick is intercepted

v0.0.12

Choose a tag to compare

@UberMorgott UberMorgott released this 02 Mar 18:26

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 /nick during 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 /nickname command alias (avoids conflict with EliteEssentials /nick)
  • Update manifest ServerVersion from * to >=2025.01.01

v0.0.11

Choose a tag to compare

@UberMorgott UberMorgott released this 22 Feb 16:19

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

Choose a tag to compare

@UberMorgott UberMorgott released this 22 Feb 16:18

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

Choose a tag to compare

@UberMorgott UberMorgott released this 06 Feb 18:45

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 — modifies PlayerRef.username via reflection so all server systems (map markers, player list, LuckPerms sync) use the nickname natively

v0.0.8

Choose a tag to compare

@UberMorgott UberMorgott released this 06 Feb 16:53

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 markup
    • NicknameAPI.getDisplayName(uuid, default) — nickname or fallback
    • NicknameAPI.hasNickname(uuid) — check if set
    • NicknameAPI.getOriginalUsername(uuid) — pre-nickname username
  • LuckPerms enabled flag: integrations.luckperms.enabled config 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