
CrossNetworkPrefixer
Dynamically alter player prefixes and TAB weights based on who is looking at whom.
- Загрузки
- 19
- Подписчики
- 0
- Обновлён
- 15 июня 2026 г.
- Лицензия
- All-Rights-Reserved
Опубликован 11 июня 2026 г.
🌐 CrossNetworkPrefixer
A powerful, high-performance Spigot plugin designed for multi-proxy networks and partnered Minecraft servers. CrossNetworkPrefixer allows you to dynamically alter player prefixes and TAB-list sorting weights based on who is looking at whom. Perfect for server networks that share chat or TAB lists across different proxy clusters (via Velocity or BungeeCord) but want to maintain clear, localized staff hierarchy and visibility.
✨ Features (Release v1.0)
👀 Viewer-Dependent Context
Display completely different prefixes and sorting weights depending on the viewing player's origin network.
📋 Smart Hierarchy Sorting
Dynamically adjust TAB weights to ensure local staff members are always sorted at the very top of their respective network's TAB list.
🔗 LuckPerms Meta Integration
Seamlessly integrates with the LuckPerms Meta-Data API to instantly determine a player's origin network and real group inheritance.
🧩 PlaceholderAPI & Relational Support
Fully implements standard and relational placeholders for complete compatibility with advanced TAB and Chat formatters.
🛡️ OP Status Bypass Protection
Evaluates group inheritance directly from LuckPerms API layers, preventing standard Minecraft Operator (/op) permissions from breaking group sorting order.
🔧 Placeholders
The plugin registers the crossnetworkprefixer identifier.
| Placeholder | Description |
|---|---|
%crossnetworkprefixer_prefix% |
Returns the formatted prefix for the player themselves. |
%crossnetworkprefixer_weight% |
Returns the weight value for sorting. |
%rel_crossnetworkprefixer_rel_prefix% |
Recommended for TAB/Chat. Shows the target's prefix adjusted to the viewer's network profile. |
%rel_crossnetworkprefixer_rel_weight% |
Relational sorting weight based on the viewer's network profile. |
⚙️ Configuration
Click to view example config.yml
# =========================================================================
# CROSSNETWORKPREFIXER CONFIGURATION
# =========================================================================
# The LuckPerms meta-key used to identify which network/server the player is from.
# Example: If a player has the meta "from=network_one", the plugin loads that profile.
meta-key: "from"
# Default network profile used if a player doesn't have the meta key
# or if their network profile is not defined below.
# Set to "none" to completely disable prefixes for unknown networks.
fallback-network: "none"
# =========================================================================
# Network Profiles (Configure your networks here)
# =========================================================================
networks:
# -------------------------------------------------------------------------
# EXAMPLE PROFILE A: network_one
# -------------------------------------------------------------------------
network_one:
priority:
- "admin_network_one"
- "mod_network_one"
- "admin_network_two"
- "vip"
- "default"
admin_network_one:
prefix: "&4&lADMIN &8» &c"
weight: "1000"
mod_network_one:
prefix: "&c&lMOD &8» &c"
weight: "900"
admin_network_two:
prefix: "&d&lPARTNER &8» &d"
weight: "500"
vip:
prefix: "&a&lVIP &r"
weight: "100"
default:
prefix: "&7"
weight: "1"
# -------------------------------------------------------------------------
# EXAMPLE PROFILE B: network_two
# -------------------------------------------------------------------------
network_two:
priority:
- "admin_network_two"
- "admin_network_one"
- "vip"
- "default"
admin_network_two:
prefix: "&2&lADMIN &8» &a"
weight: "1000"
admin_network_one:
prefix: "&5&lPARTNER &8» &d"
weight: "500"
vip:
prefix: "&a&lVIP &r"
weight: "100"
default:
prefix: "&7"
weight: "1"
🌍 Real-World Example
Let's assume Admin One controls Network One and Admin Two controls Network Two.
With a normal chat plugin, both players might simply appear as:
[ADMIN] Admin One
[ADMIN] Admin Two
This provides no distinction between local and partner staff.
When a player from Network One opens the TAB list
Admin One appears as &4&lADMIN
Weight: 1000
Sorted at the very top
Admin Two appears as &d&lPARTNER
Weight: 500
Sorted below local staff
When a player from Network Two opens the TAB list
Admin Two appears as &2&lADMIN
Weight: 1000
Sorted at the very top
Admin One appears as &5&lPARTNER
Weight: 500
Sorted below local staff
This ensures staff members maintain localized ranking authority and prominent visibility on their home instances while partner-network staff are clearly identified as guests.
⚡ Why Use CrossNetworkPrefixer?
✅ Perfect for partnered Minecraft networks
✅ Lightweight and optimized
✅ No external database required
✅ LuckPerms-powered architecture
✅ Viewer-dependent prefixes
✅ Viewer-dependent TAB sorting
✅ PlaceholderAPI compatible
✅ Supports complex network structures
📥 Installation
- Download the latest release.
- Place the JAR into your server's
plugins/folder. - Restart the server.
- Configure
config.yml. - Set up your LuckPerms meta values.
- Use the placeholders in TAB, chat plugins, scoreboards, or wherever needed.
🛠️ Support & Development
CrossNetworkPrefixer is actively maintained and optimized.
Feature suggestions, bug reports, and contributions are always welcome.
Thank you for using CrossNetworkPrefixer ❤️
Ченджлог
1.1Релиз26.1, 26.1.1, 26.1.2 · 15 июня 2026 г.
🛠️ CrossNetworkPrefixer v1.1 / Bugfix Release
This update focuses on fixing crucial issues with placeholder parsing, LuckPerms metadata synchronization delays, and preventing broken layouts in chat/TAB formatters.
🐛 Fixed Bugs
- Fixed Empty/Null Placeholder Returns: Resolved a critical bug where the relational placeholders returned completely empty values (
"") or"N/A"due to timing and strict server context limitations inside the LuckPerms database layer. - Fixed Relational Placeholder Syntax: Corrected internal routing logic for Relational Placeholders. The correct syntax for TAB and Chat plugins is now strictly
%rel_crossnetworkprefixer_rel_prefix%and%rel_crossnetworkprefixer_rel_weight%.
⚡ Improvements & Optimizations
- Aggressive Metadata Fallback Logic: Optimized
getPlayerMetaextraction. If the fast metadata cache is empty (common immediately after cross-proxy server switches via Velocity/BungeeCord), the plugin now dynamically falls back to raw permission-node scanning to extract thefromnetwork key. - Bulletproof Fallback System: Replaced the unsafe
nonenetwork breakdown. If a player has no network metadata assigned, the system now automatically falls back to the default network profile instead of breaking the TAB-list rendering. - Color Code Translation: Fixed raw color formatting by adding proper legacy color code translation (
&) and HEX formatting for all parsed configuration paths.
Recommended Action: Replace your current CrossNetworkPrefixer.jar with this updated version and make sure to update your TAB configuration to use the correct %rel_crossnetworkprefixer_rel_prefix% placeholder!
1.0.0Релиз26.1, 26.1.1, 26.1.2 · 11 июня 2026 г.
🎉 CrossNetworkPrefixer 1.0.0 — Initial Release!
We are excited to present the very first official release of CrossNetworkPrefixer! This plugin completely redefines how prefixes and tablist sorting operate on cross-linked server networks.
🚀 Key Features included in this build:
- Viewer-Dependent Layouts – Dynamically evaluate prefixes and weights based on the viewing player's origin network.
- Smart Tablist Sorting – Local network staff will always be sorted at the very top of their home network's tablist.
- Full LuckPerms Integration – Direct API interaction ensuring accurate group inheritance evaluation.
- In-Memory Caching – High performance with near-zero CPU overhead, built for high-population servers.
- PlaceholderAPI Support – Native support for standard and relational (
%rel_...%) placeholders.
🔧 Configuration
The plugin automatically generates a clean, well-commented config.yml on its first startup. Please refer to our main project description page for an in-depth setup tutorial and real-world implementation examples.
Комментарии
Загружаем…