handleResourcePackStatus

public static void handleResourcePackStatus(PlayerResourcePackStatusEvent event)

Self-heal a failed pack delivery by reacting to the client's own status report. Some clients (notably heavily-modded ones) can still drop the pack even after the deferred join send. RSPM kept no delivery state before, so the only recovery was a manual /rspm reload; here we re-push our pack a bounded number of times before giving up — no operator action, no rejoin needed.

Cross-platform: driven by the stock Bukkit PlayerResourcePackStatusEvent. The status is matched by enum name rather than constant so referencing 1.20.3+-only states (DISCARDED, INVALID_URL) can't throw NoSuchFieldError on older servers, and getID() is only called when supportsMultipleResourcePacks (i.e. when the method exists).