f0b35e89ac193553b16044e2dd7b57e80c31bf13
NickCore
Enterprise Minecraft Nickname Plugin for Paper 1.21.11, Folia 1.21.11, and Velocity 3.5.0.
Features
- Nickname System — Approved names, random names, custom names (permission-gated)
- Rank System — Configurable visual ranks with MiniMessage prefixes/suffixes
- Skin System — Multi-tier cache (memory → DB → Mojang API), rate-limited
- GUI System — Paginated inventory menus with click cooldowns
- PlaceholderAPI — 14 placeholders served from in-memory cache
- Velocity Sync — Cross-server nickname/rank/skin synchronization
- Folia Support — Region/Entity/Global scheduler compliance
- Security — Homoglyph detection, impersonation prevention, input sanitization
- Database — SQLite/MySQL/MariaDB with HikariCP pooling and schema migration
- Audit Logging — Full history of all nickname changes
Architecture
nickcore/
├── nickcore-common/ # Shared models, DTOs, validation
├── nickcore-paper/ # Paper + Folia plugin (single JAR)
└── nickcore-velocity/ # Velocity proxy plugin
Building
./gradlew build
Artifacts:
nickcore-paper/build/libs/NickCore-Paper-1.0.0.jarnickcore-velocity/build/libs/NickCore-Velocity-1.0.0.jar
Requirements
- Java 25+
- Paper 1.21.11 or Folia 1.21.11
- Velocity 3.5.0 (optional, for multi-server)
Installation
- Place
NickCore-Paper-1.0.0.jarin your server'splugins/folder - (Optional) Place
NickCore-Velocity-1.0.0.jarin your Velocity proxy'splugins/folder - Start the server to generate configuration files
- Edit configuration files in
plugins/NickCore/ - Run
/nick reloadto apply changes
Commands
| Command | Permission | Description |
|---|---|---|
/nick |
nickcore.use |
Open the main GUI |
/nick <name> |
nickcore.name.custom |
Set custom nickname |
/nick random |
nickcore.name.random |
Generate random nickname |
/nick reset |
nickcore.reset |
Reset to real identity |
/nick rank [id] |
nickcore.rank.select |
Select visual rank |
/nick skin [name] |
nickcore.skin.select |
Change skin |
/nick gui |
nickcore.use |
Open GUI explicitly |
/nick reload |
nickcore.reload |
Reload configuration |
/nick info <player> |
nickcore.info |
View player nick info |
/nick force <player> <nick> |
nickcore.force |
Force nickname on player |
/nick clear <player> |
nickcore.clear |
Clear player's nickname |
Permissions
| Permission | Default | Description |
|---|---|---|
nickcore.use |
true |
Access /nick |
nickcore.name.custom |
op |
Enter custom nicknames |
nickcore.name.select |
true |
Select from approved list |
nickcore.name.random |
true |
Generate random nicknames |
nickcore.rank.select |
false |
Access rank selection |
nickcore.rank.<id> |
false |
Per-rank permissions |
nickcore.skin.select |
false |
Access skin selection |
nickcore.skin.keep |
true |
Keep current skin option |
nickcore.reset |
true |
Reset identity |
nickcore.admin |
op |
Admin features |
nickcore.reload |
op |
Reload configuration |
nickcore.bypass |
op |
Bypass restrictions |
nickcore.force |
op |
Force nicknames |
nickcore.info |
op |
View player info |
nickcore.clear |
op |
Clear nicknames |
PlaceholderAPI
| Placeholder | Description |
|---|---|
%nickcore_nick% |
Current nickname |
%nickcore_real_name% |
Real player name |
%nickcore_rank% |
Visual rank name |
%nickcore_rank_prefix% |
Rank prefix |
%nickcore_rank_suffix% |
Rank suffix |
%nickcore_skin% |
Applied skin name |
%nickcore_is_nicked% |
Whether player is nicked |
%nickcore_display_name% |
Effective display name |
%nickcore_original_name% |
Original player name |
Configuration Files
| File | Purpose |
|---|---|
config.yml |
General settings, chat format, security |
database.yml |
Database connection and pooling |
messages.yml |
Player-facing messages (MiniMessage) |
ranks.yml |
Rank definitions |
skins.yml |
Pre-configured skins |
names.yml |
Approved nickname pool |
Integrations
- PlaceholderAPI — Soft dependency, 14 placeholders
- LuckPerms — Permission-based rank filtering
- TAB — Tablist prefix/suffix updates
- Velocity — Cross-server synchronization
- EssentialsX — Compatible display names
- HuskChat — Compatible via PlaceholderAPI
Security
- Unicode homoglyph detection
- Invisible/zero-width character blocking
- Levenshtein-based impersonation prevention
- MiniMessage injection sanitization
- SQL injection prevention (prepared statements)
- Velocity packet validation with protocol versioning
Performance
- ConcurrentHashMap-based caches (lock-free reads)
- Pre-computed placeholder values (zero DB hits during resolution)
- Deduplicating skin fetcher (one request per skin)
- Rate-limited Mojang API access
- HikariCP connection pooling
- Virtual threads for database operations
- ViewerUnaware chat renderer (single render per message)
- Scoreboard team caching (no redundant updates)
License
All rights reserved.
Description
Languages
Java
100%