Releases
2.8.3
Compare
Sorry, something went wrong.
No results found
Added
MysticNameTags Integration - First-class soft dependency with reflection-based detection
Event-driven cache invalidation on permission/group changes via HyperPerms EventBus
Calls TagManager.clearCanUseCache() and MysticNameTagsAPI.refreshNameplate() on changes so tags update without relog
Group-level permission changes invalidate all online players who may inherit from the affected group
LuckPerms conflict detection with warning log
Local CachedTagData with 5-second TTL for API method results
Public API: getActiveTagDisplay, getActiveTagId, getAvailableTagCount, hasTagPermission, refreshPlayerTags, etc.
Configurable via config.json mysticnametags section (enabled, refresh toggles, tag permission prefix)
Auto-migration adds config section to existing configs
PlaceholderAPI Expansion - 5 new MysticNameTags placeholders
%hyperperms_tag% - Active tag ID
%hyperperms_tag_display% - Active tag display text (colored)
%hyperperms_tag_count% - Number of available tags
%hyperperms_tags% - All available tag IDs (comma-separated)
%hyperperms_has_tag_<name>% - Check tag permission (true/false)
Temporary Permissions Developer API - Full public API for managing timed permissions programmatically
New TemporaryPermissionInfo record DTO with getRemaining() and isExpired() methods
PermissionHolder interface: 12 new methods for setting, querying, and modifying temporary permissions
setPermission(perm, value, Duration/Instant) - Set permissions with expiry
isTemporaryPermission(perm) / getPermissionExpiry(perm) / getPermissionRemaining(perm) - Query expiry state
setPermissionExpiry(perm, Instant) / adjustPermissionExpiry(perm, Duration) - Modify or remove expiry
getTemporaryPermissions() - Enumerate all active temporary permissions
addGroup(name, Duration/Instant) - Temporary group membership via interface
HyperPermsAPI top-level convenience methods: setTemporaryPermission(), getTemporaryPermissions(), isTemporaryPermission(), getPermissionRemaining()
All methods are backward-compatible default methods — no breaking changes
Permission Enumeration API - getResolvedPermissions(UUID) on HyperPermsAPI
Returns all granted permission strings for a user including inherited permissions from group hierarchy
Enables plugins to scan permissions by prefix without depending on the native provider chain
Fixed
EssentialsPlus Compatibility - Fixed provider ordering causing parameterized permission queries to fail silently
Hytale's native provider was first in the chain and couldn't resolve HyperPerms virtual groups
ensureFirstProvider() now reorders the provider chain so HyperPerms is always first
Fixes essentialsplus.sethome.limit.[n], essentialsplus.home.reduce.cooldown.*, and similar queries
Compilation Warnings - Resolved all 63 compiler warnings for a completely clean build
Fixed 56 dangling-doc-comments warnings in migration record types
Fixed 4 unchecked/rawtypes warnings in AsyncPermissionCheckBuilder
Fixed 3 text-blocks trailing whitespace warnings in SQLiteAnalyticsStorage
You can’t perform that action at this time.