Skip to content

fix: prevent settings being overwritten with defaults on server start#565

Merged
Nandi0813 merged 3 commits into
ZoneDevelopement:devfrom
FreeForFive:dev
May 26, 2026
Merged

fix: prevent settings being overwritten with defaults on server start#565
Nandi0813 merged 3 commits into
ZoneDevelopement:devfrom
FreeForFive:dev

Conversation

@lokspel
Copy link
Copy Markdown
Contributor

@lokspel lokspel commented May 26, 2026

YAML is always the source of truth. getData() reads from it, saveData() writes to it. The bug was that saveData() was writing incorrect data because loadStatsOnlyData() never loaded settings into memory.

Because it's a race condition between AutoSaveRunnable and the player's input:
Normally (there is no bug):

The server started → the player logged in after 5 seconds → ensureFullDataLoaded() loaded sidebar = true → autosave sees true after 5 minutes → saves true
Bug (sometimes):

The server has started → the player has NOT logged in for 5+ minutes → AutoSaveRunnable has started → saveData() sees sidebar = false (not loaded yet) → writes false in YAML

@lokspel lokspel closed this May 26, 2026
@lokspel lokspel reopened this May 26, 2026
@Nandi0813 Nandi0813 merged commit a286983 into ZoneDevelopement:dev May 26, 2026
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.

2 participants