Fix PlayerLinksSendEvent not firing when no global links are configured#14026
Open
noctiro wants to merge 1 commit into
Open
Fix PlayerLinksSendEvent not firing when no global links are configured#14026noctiro wants to merge 1 commit into
noctiro wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
PlayerLinksSendEventis gated behind anisEmpty()check on the server's globalServerLinks. This means the event is never fired when no global links are configured, making it impossible for plugins to add per-player links from scratch without a workaround.Plugins that want to show player-specific links (e.g. localized links based on client language) are currently forced to pre-populate the global
ServerLinkswith dummy entries just to make the event trigger — even though those global entries are irrelevant and must then be cleared inside the event handler.Solution
Remove the
isEmpty()guard before the event, and move it to after the event has been processed. The event now always fires, and the packet is only sent if the resultingServerLinksis non-empty (either from global config or from plugin modifications).