From 3ed6f9ac99433bf2ae98e386b4ccb1358369fd74 Mon Sep 17 00:00:00 2001 From: James Mortemore Date: Tue, 10 Feb 2026 17:02:54 +0000 Subject: [PATCH] fix: console uuid generation --- .../banmanager/common/configs/Config.java | 3 +- .../common/configs/ConfigReloadTest.java | 36 +++++++++++++++++++ .../sponge/api/events/IpRangeUnbanEvent.java | 4 --- .../sponge/api/events/IpUnbanEvent.java | 4 --- .../sponge/api/events/IpUnmutedEvent.java | 4 --- .../sponge/api/events/NameUnbanEvent.java | 4 --- .../sponge/api/events/PlayerUnbanEvent.java | 4 --- .../sponge/api/events/PlayerUnmuteEvent.java | 4 --- 8 files changed, 38 insertions(+), 25 deletions(-) diff --git a/common/src/main/java/me/confuser/banmanager/common/configs/Config.java b/common/src/main/java/me/confuser/banmanager/common/configs/Config.java index ef9cf9f8f..c8e62fc85 100644 --- a/common/src/main/java/me/confuser/banmanager/common/configs/Config.java +++ b/common/src/main/java/me/confuser/banmanager/common/configs/Config.java @@ -63,8 +63,9 @@ public boolean load() { return false; } - afterLoad(); + // Allow configs to persist migrations/defaults during afterLoad(). safeToSave = true; + afterLoad(); return true; } catch (Exception e) { e.printStackTrace(); diff --git a/common/src/test/java/me/confuser/banmanager/common/configs/ConfigReloadTest.java b/common/src/test/java/me/confuser/banmanager/common/configs/ConfigReloadTest.java index 9585a3c7e..a517027d7 100644 --- a/common/src/test/java/me/confuser/banmanager/common/configs/ConfigReloadTest.java +++ b/common/src/test/java/me/confuser/banmanager/common/configs/ConfigReloadTest.java @@ -245,6 +245,22 @@ public void saveOverwritesFileAfterSuccessfulReload() throws IOException { assertTrue("File should contain modified value", fileContent.contains("modifiedValue")); } + @Test + public void saveInAfterLoadPersistsChanges() throws IOException { + File configFile = new File(temporaryFolder.getRoot(), "self-save.yml"); + try (FileWriter writer = new FileWriter(configFile)) { + writer.write("key: originalValue\n"); + } + + CommonLogger logger = new TestLogger(); + SelfSavingTestConfig config = new SelfSavingTestConfig(temporaryFolder.getRoot(), configFile, logger); + + assertTrue("Load should succeed for valid YAML", config.load()); + + String fileContent = new String(Files.readAllBytes(configFile.toPath())); + assertTrue("afterLoad() save should persist updated value", fileContent.contains("updatedInAfterLoad")); + } + /** * Test config that tracks save behavior */ @@ -263,4 +279,24 @@ public void onSave() { // No-op } } + + /** + * Test config that mutates and saves during afterLoad. + */ + private static class SelfSavingTestConfig extends Config { + public SelfSavingTestConfig(File dataFolder, File file, CommonLogger logger) { + super(dataFolder, file, logger); + } + + @Override + public void afterLoad() { + conf.set("key", "updatedInAfterLoad"); + save(); + } + + @Override + public void onSave() { + // No-op + } + } } diff --git a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpRangeUnbanEvent.java b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpRangeUnbanEvent.java index 0d52c05c0..c942940a9 100644 --- a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpRangeUnbanEvent.java +++ b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpRangeUnbanEvent.java @@ -25,7 +25,3 @@ public IpRangeUnbanEvent(IpRangeBanData ban, PlayerData actor, String reason, bo this.reason = reason; } } - - - - diff --git a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpUnbanEvent.java b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpUnbanEvent.java index 2c7647650..20a47e58d 100644 --- a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpUnbanEvent.java +++ b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpUnbanEvent.java @@ -25,7 +25,3 @@ public IpUnbanEvent(IpBanData ban, PlayerData actor, String reason, boolean sile this.reason = reason; } } - - - - diff --git a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpUnmutedEvent.java b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpUnmutedEvent.java index 85f41f614..3adc3bd83 100644 --- a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpUnmutedEvent.java +++ b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/IpUnmutedEvent.java @@ -25,7 +25,3 @@ public IpUnmutedEvent(IpMuteData mute, PlayerData actor, String reason, boolean this.reason = reason; } } - - - - diff --git a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/NameUnbanEvent.java b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/NameUnbanEvent.java index ff3af21dc..e4be64f54 100644 --- a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/NameUnbanEvent.java +++ b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/NameUnbanEvent.java @@ -25,7 +25,3 @@ public NameUnbanEvent(NameBanData ban, PlayerData actor, String reason, boolean this.reason = reason; } } - - - - diff --git a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/PlayerUnbanEvent.java b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/PlayerUnbanEvent.java index b85bd75f9..508bbf517 100644 --- a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/PlayerUnbanEvent.java +++ b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/PlayerUnbanEvent.java @@ -26,7 +26,3 @@ public PlayerUnbanEvent(PlayerBanData ban, PlayerData actor, String reason, bool this.reason = reason; } } - - - - diff --git a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/PlayerUnmuteEvent.java b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/PlayerUnmuteEvent.java index 24a08a99f..f543230e8 100644 --- a/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/PlayerUnmuteEvent.java +++ b/sponge/src/main/java/me/confuser/banmanager/sponge/api/events/PlayerUnmuteEvent.java @@ -26,7 +26,3 @@ public PlayerUnmuteEvent(PlayerMuteData mute, PlayerData actor, String reason, b this.reason = reason; } } - - - -