promotional bannermobile promotional banner

🏷️ Prefix | Chat Prefix & Tablist Plugin

The lightweight Minecraft chat prefix, rank, and tablist management plugin.

File Details

Prefix-2.0.0.jar

  • R
  • Apr 24, 2026
  • 58.97 KB
  • 40
  • 26.1.2+24

File Name

Prefix-2.0.0.jar

Supported Versions

  • 26.1.2
  • 26.1.1
  • 26.1
  • 1.21.5-Snapshot
  • 1.21.11
  • 1.21.10
  • 1.21.9
  • 1.21.8
  • 1.21.7
  • 1.21.6
  • 1.21.5
  • 1.21.4
  • 1.21.3
  • 1.21.2
  • 1.21.1
  • 1.21
  • 1.20.3-Snapshot
  • 1.20.5-Snapshot
  • 1.20.6
  • 1.20.5
  • 1.20.4
  • 1.20.3
  • 1.20.2
  • 1.20.1
  • 1.20

🚀 Prefix v2.0.0 | MODERN FOUNDATION

The biggest update in Prefix history. Completely modernized architecture, all critical bugs fixed, SOLID principles applied throughout.

🚀 PLATFORM UPGRADE:

  • Java 17 — modern language features, pattern matching, records
  • Spigot/Paper 1.20+ — compiled against the latest stable API
  • Gradle build modernization — toolchain, UTF-8 encoding, release targeting
  • Removed legacy BungeeCord chat JAR (now Maven dependency)
  • Removed legacy 15-character limits on prefixes and team names
  • Fixed deprecated HoverEvent constructor — uses modern Content-based API
    • ⚡ Impact: Future-proof foundation that will support Minecraft updates for years

🔴 CRITICAL FIXES (5):

  • Fixed: Chat no longer crashes when a player mentions another player's name
    • ⚡ Impact: Eliminates server-wide ConcurrentModificationException crashes
  • Fixed: /prefix chat and /prefix tab commands now correctly include the last word of the prefix
    • ⚡ Impact: "/prefix chat admin &4[Admin]" now works as expected — no more empty prefixes
  • Fixed: Players can no longer crash the server by typing %s or %d in chat
    • ⚡ Impact: Closes a critical exploit that could be used to crash any server running Prefix
  • Fixed: Tablist no longer throws NullPointerException during class loading
    • ⚡ Impact: Reliable tablist display from the moment the plugin loads
  • Fixed: Module initialization no longer enters an inconsistent state on failure
    • ⚡ Impact: Clean error handling during plugin startup

🟡 BUG FIXES (14):

  • Fixed: Group creation no longer has contradictory success/failure logic
  • Fixed: Configuration reload no longer loads the file twice
  • Fixed: Command handler is now thread-safe for concurrent players
  • Fixed: Permission strings standardized across plugin.yml, code, and help messages
  • Fixed: All exceptions now log full stack traces for easier debugging
  • Fixed: Logger now shows [Prefix] tag in console output
  • Fixed: Group null-check now correctly uses Result pattern
  • Fixed: Group assignment validates group exists before saving
  • Fixed: Color code commands no longer crash on single-character input
  • Fixed: Group name field is now immutable — prevents silent config desync
  • Fixed: Tablist character limits updated from legacy 15 to modern 64+ characters
  • Fixed: Tab weight system now supports any integer, not just 0-9
  • Fixed: Resource leak in configuration reload closed
  • Fixed: Tablist getGroup() double call eliminated

🔧 SOLID ARCHITECTURE REFACTORING:

  • SubCommand interface — all 10 subcommands now implement execute() pattern
    • → Cleaner than constructor-based execution, testable, extensible
  • PGroup factory methods — loadOrCreate() and create() replace I/O-heavy constructors
    • → Constructor is now side-effect-free (no file reads/writes)
  • Dependency Injection — Data passed via constructors throughout the codebase
    • → No more static PrefixModule.getData() calls in model/event classes
  • HelpMessage data-driven — 128 lines of duplicated code → 40 lines with HelpEntry record
  • Chat event handler split into buildFormat() + handleMentions() (SRP)
    • ⚡ Impact: Clean, maintainable, testable codebase ready for rapid feature development

🔧 CLEAN CONSOLE LOGGING:

  • Logger.sendMessage() — players get colored messages, console gets clean [INFO] logs
  • Logger.sendWarning() — config issues logged at [WARNING] level
  • Logger.sendError() — real errors logged at [SEVERE] level
  • All color codes automatically stripped from console output
    • ⚡ Impact: Professional, readable server logs without formatting artifacts

🔧 CODE QUALITY:

  • Result.java methods renamed to Java camelCase conventions
  • Language.getLanguage() is now static — cleaner API
  • Removed unnecessary type casts in configuration access
  • Removed unused HTTP-style status enum values
  • Removed unused MinecraftVersion utility class (dead code)
  • Removed unused Data.plugin reference
  • Arrays.copyOfRange replaces manual System.arraycopy
  • isEmpty() replaces equals("") throughout codebase
  • ITask Javadoc corrected (ticks, not milliseconds)
  • Module.java CommandMap reflection with proper exception handling
  • /prefix info now shows version, build number, and clickable website link
  • build.gradle modernized — removed unnecessary manifest block, added UTF-8 encoding

⚠️ BREAKING CHANGES:

  • Requires Java 17 or higher (was Java 8)
  • Requires Minecraft 1.20 or higher (was 1.13)
  • Looking for older versions? Use Prefix v1.3.1 for pre-1.20 support

📋 Config: Existing config files are fully compatible — no changes needed


🔄 Compatibility: Spigot/Paper 1.20+ | Java 17