Skip to content

PAPIProxyBridge expansion not registering with PlaceholderAPI on Purpur 1.21.1 #234

Description

@Chummbis20

Bug Report

Description

PAPIProxyBridge (Bukkit side) fails to register its placeholder expansion with
PlaceholderAPI on Purpur 1.21.1. The plugin loads and enables successfully, but
PlaceholderAPI reports 0 hooks registered and all placeholders return their literal
string (e.g. %papiproxybridge_server_online_smp1%) instead of a value.

Environment

  • Server software: Purpur 1.21.1
  • PAPIProxyBridge version: 1.8.4 (Bukkit) + 1.8.4 (Velocity)
  • PlaceholderAPI version: tested on both 2.12.2 and 2.11.6 — same result on both
  • Proxy: Velocity 3.5.0
  • Java version: (add yours here — check with java -version)

What happens

PAPIProxyBridge enables before PlaceholderAPI finishes its expansion registration
phase. By the time PAPI runs "Placeholder expansion registration initializing...",
PAPIProxyBridge has already attempted to register and the registration is lost.

Server startup log showing the load order

[15:11:25] [PlaceholderAPI] Enabling PlaceholderAPI v2.11.6
[15:11:27] [PAPIProxyBridge] Enabling PAPIProxyBridge v1.8.4
[15:11:27] [PAPIProxyBridge] Loaded messenger PLUGIN_MESSAGE
[15:11:27] [PAPIProxyBridge] PAPIProxyBridge (Purpur unspecified) has been enabled!
[15:11:28] [PlaceholderAPI] Placeholder expansion registration initializing...
[15:11:28] 0 placeholder hook(s) registered!

Steps to reproduce

  1. Install Purpur 1.21.1
  2. Install PlaceholderAPI 2.11.6 or 2.12.2
  3. Install PAPIProxyBridge 1.8.4 (Bukkit)
  4. Install PAPIProxyBridge 1.8.4 on Velocity proxy
  5. Start the server and connect through the proxy
  6. Run /papi list — shows no expansions
  7. Run /papi parse me %papiproxybridge_server_online_% — returns literal placeholder

Expected behavior

The papiproxybridge expansion appears in /papi list and placeholders resolve correctly.

Additional notes

The issue appears to be that Purpur's plugin loader fires PlaceholderAPI's expansion
registration event after all plugins have finished enabling, meaning PAPIProxyBridge's
self-registration during onEnable() is wiped out. This does not appear to affect
standard Spigot/Paper in the same way.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions