Перейти к содержимому
Mineforgian

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

Built with Java 21 Supported Spigot Supported Paper Available on Modrinth

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

  1. Download the latest release.
  2. Place the JAR into your server's plugins/ folder.
  3. Restart the server.
  4. Configure config.yml.
  5. Set up your LuckPerms meta values.
  6. 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 getPlayerMeta extraction. 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 the from network key.
  • Bulletproof Fallback System: Replaced the unsafe none network 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.

Комментарии

Загружаем…