Skip to content

3.5.0#38

Merged
EarthCow merged 98 commits intomasterfrom
dev
Mar 19, 2026
Merged

3.5.0#38
EarthCow merged 98 commits intomasterfrom
dev

Conversation

@EarthCow
Copy link
Contributor

@EarthCow EarthCow commented Mar 3, 2026

No description provided.

@EarthCow
Copy link
Contributor Author

EarthCow commented Mar 8, 2026

Workflow is failing because JitPack is down.

@EarthCow EarthCow linked an issue Mar 8, 2026 that may be closed by this pull request
@EarthCow EarthCow marked this pull request as ready for review March 18, 2026 22:19
networkjoinmessages.toggle.others and /njointoggle [player] argument
@EarthCow
Copy link
Contributor Author

Development Rundown

  • Removes local SayanVanish dependency
  • Adds local Velocity proxy dependency (LimboAPI)
  • Validates BungeeServer and VelocityServer constructor parameters bungeeServer and velocity are not null on instantiation
    • Consequently removes the related null check from #getPlayersConnected
  • Moves MessageType out of util into the root common package
  • Splits MessageHandler:
    • MessageHandler - dispatches formatted messages to the correct recipients
    • MessageFormatter - handles formatting of message templates by resolving player-count and server-name placeholders
      • Additionally handles replacements in Discord config message templates
    • ReceiverResolver - handles resolving which players should receive a broadcast message for a given event
  • Splits Storage:
    • Storage - deleted
    • PluginConfig - holds all configuration values internally
    • PlayerStateStore - holds all player states
  • Creates SilenceChecker - handles checking of silence via silent state and vanish state
  • Creates LeaveJoinBufferManager - manages the leave-join reconnect buffer
  • Creates PlayerDataSnapshot record - carries a snapshot of a player's name and preference state
  • Creates PlayerJoinTracker and PlayerDataStore storage interfaces - defines the contracts for first-join and player-data backends respectively
  • Creates StorageType enum
  • New bStats charts: first_join_storage_type, player_data_storage_type, ignore_join_default, ignore_swap_default, ignore_leave_default
  • Creates DiscordWebhookBuilder - creates Discord webhooks parsing placeholders from configuration messages
    • Creates a JSON skeleton of a message type first and only updates placeholder within that payload until restart/reload (much more efficient)
  • Delegates managing cached leave messages to a dedicated LeaveMessageCache
  • Moves existing storage backends to the new storage package
  • Creates StorageInitializer - initializes the storage backends and starts any needed migration automatically
  • Creates StorageMigrator - handles the actual storage migration process
  • Creates ActiveStorageBackends - for returning and closing both the first join tracker and player data store
  • Splits Formatter:
    • Formatter - component serialization and deserialization
    • LegacyColorTranslator - legacy color code translation
    • PlaceholderResolver - interacts with third-party plugins for placeholder resolution and handles built in placeholders
  • Adds/updates related tests
  • Adds version variables to gradle build

@EarthCow EarthCow merged commit 5e4f1ee into master Mar 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature Request: Console Support for /njointoggle

1 participant