diff --git a/api/src/main/java/net/momirealms/customfishing/api/mechanic/config/ConfigManager.java b/api/src/main/java/net/momirealms/customfishing/api/mechanic/config/ConfigManager.java index 8e59af31..fe581b39 100644 --- a/api/src/main/java/net/momirealms/customfishing/api/mechanic/config/ConfigManager.java +++ b/api/src/main/java/net/momirealms/customfishing/api/mechanic/config/ConfigManager.java @@ -19,10 +19,13 @@ package net.momirealms.customfishing.api.mechanic.config; import dev.dejvokep.boostedyaml.YamlDocument; import dev.dejvokep.boostedyaml.dvs.versioning.BasicVersioning; +import dev.dejvokep.boostedyaml.libs.org.snakeyaml.engine.v2.common.ScalarStyle; +import dev.dejvokep.boostedyaml.libs.org.snakeyaml.engine.v2.nodes.Tag; import dev.dejvokep.boostedyaml.settings.dumper.DumperSettings; import dev.dejvokep.boostedyaml.settings.general.GeneralSettings; import dev.dejvokep.boostedyaml.settings.loader.LoaderSettings; import dev.dejvokep.boostedyaml.settings.updater.UpdaterSettings; +import dev.dejvokep.boostedyaml.utils.format.NodeRole; import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; import net.momirealms.customfishing.api.mechanic.config.function.*; import net.momirealms.customfishing.api.mechanic.context.Context; @@ -344,7 +347,15 @@ public abstract class ConfigManager implements ConfigLoader, Reloadable { .builder() .setAutoUpdate(true) .build(), - DumperSettings.DEFAULT, + DumperSettings.builder() + .setScalarFormatter((tag, value, role, def) -> { + if (role == NodeRole.KEY) { + return ScalarStyle.PLAIN; + } else { + return tag == Tag.STR ? ScalarStyle.DOUBLE_QUOTED : ScalarStyle.PLAIN; + } + }) + .build(), UpdaterSettings .builder() .setVersioning(new BasicVersioning("config-version")) diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java index 3df9c550..f6a66ceb 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java @@ -21,10 +21,13 @@ import com.saicone.rtag.RtagItem; import dev.dejvokep.boostedyaml.YamlDocument; import dev.dejvokep.boostedyaml.block.implementation.Section; import dev.dejvokep.boostedyaml.dvs.versioning.BasicVersioning; +import dev.dejvokep.boostedyaml.libs.org.snakeyaml.engine.v2.common.ScalarStyle; +import dev.dejvokep.boostedyaml.libs.org.snakeyaml.engine.v2.nodes.Tag; import dev.dejvokep.boostedyaml.settings.dumper.DumperSettings; import dev.dejvokep.boostedyaml.settings.general.GeneralSettings; import dev.dejvokep.boostedyaml.settings.loader.LoaderSettings; import dev.dejvokep.boostedyaml.settings.updater.UpdaterSettings; +import dev.dejvokep.boostedyaml.utils.format.NodeRole; import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; import net.momirealms.customfishing.api.mechanic.MechanicType; import net.momirealms.customfishing.api.mechanic.action.Action; @@ -113,7 +116,15 @@ public class BukkitConfigManager extends ConfigManager { .builder() .setAutoUpdate(true) .build(), - DumperSettings.DEFAULT, + DumperSettings.builder() + .setScalarFormatter((tag, value, role, def) -> { + if (role == NodeRole.KEY) { + return ScalarStyle.PLAIN; + } else { + return tag == Tag.STR ? ScalarStyle.DOUBLE_QUOTED : ScalarStyle.PLAIN; + } + }) + .build(), UpdaterSettings .builder() .setVersioning(new BasicVersioning("config-version")) @@ -138,6 +149,20 @@ public class BukkitConfigManager extends ConfigManager { } this.loadSettings(); this.loadConfigs(); + this.loadGlobalEffects(); + } + + private void loadGlobalEffects() { + YamlDocument config = getMainConfig(); + globalEffects = new ArrayList<>(); + Section globalEffectSection = config.getSection("mechanics.global-effects"); + if (globalEffectSection != null) { + for (Map.Entry entry : globalEffectSection.getStringRouteMappedValues(false).entrySet()) { + if (entry.getValue() instanceof Section innerSection) { + globalEffects.add(parseEffect(innerSection)); + } + } + } } private void loadSettings() { @@ -206,16 +231,6 @@ public class BukkitConfigManager extends ConfigManager { OffsetUtils.load(config.getSection("other-settings.offset-characters")); - globalEffects = new ArrayList<>(); - Section globalEffectSection = config.getSection("mechanics.global-effects"); - if (globalEffectSection != null) { - for (Map.Entry entry : globalEffectSection.getStringRouteMappedValues(false).entrySet()) { - if (entry.getValue() instanceof Section innerSection) { - globalEffects.add(parseEffect(innerSection)); - } - } - } - EventManager.GLOBAL_ACTIONS.clear(); EventManager.GLOBAL_TIMES_ACTION.clear(); Section globalEvents = config.getSection("mechanics.global-events"); diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/loot/BukkitLootManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/loot/BukkitLootManager.java index e1c14b6e..561c8b1d 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/loot/BukkitLootManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/loot/BukkitLootManager.java @@ -140,9 +140,10 @@ public class BukkitLootManager implements LootManager { modifyWeightMap(lootWeightMap, context, conditionalElement); } for (Pair, Double, Double>> pair : effect.weightOperations()) { - double previous = lootWeightMap.getOrDefault(pair.left(), 0d); - if (previous > 0) + Double previous = lootWeightMap.get(pair.left()); + if (previous != null) { lootWeightMap.put(pair.left(), pair.right().apply(context, previous)); + } } for (Pair, Double, Double>> pair : effect.weightOperationsIgnored()) { double previous = lootWeightMap.getOrDefault(pair.left(), 0d); @@ -159,8 +160,8 @@ public class BukkitLootManager implements LootManager { modifyWeightMap(lootWeightMap, context, conditionalElement); } for (Pair, Double, Double>> pair : effect.weightOperations()) { - double previous = lootWeightMap.getOrDefault(pair.left(), 0d); - if (previous > 0) { + Double previous = lootWeightMap.get(pair.left()); + if (previous != null) { lootWeightMap.put(pair.left(), pair.right().apply(context, previous)); } } diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/storage/BukkitStorageManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/storage/BukkitStorageManager.java index 5bf08ddc..64d9cf34 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/storage/BukkitStorageManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/storage/BukkitStorageManager.java @@ -46,6 +46,8 @@ import org.bukkit.event.player.PlayerQuitEvent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.File; +import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Collection; import java.util.HashSet; @@ -77,6 +79,11 @@ public class BukkitStorageManager implements StorageManager, Listener { @Override public void reload() { YamlDocument config = plugin.getConfigManager().loadConfig("database.yml"); + try { + config.save(new File(plugin.getBoostrap().getDataFolder(), "database.yml")); + } catch (IOException e) { + throw new RuntimeException(e); + } this.serverID = config.getString("unique-server-id", "default"); // Check if storage type has changed and reinitialize if necessary diff --git a/gradle.properties b/gradle.properties index dccd1e88..1fd53977 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=2.2.1 +project_version=2.2.2 config_version=34 project_group=net.momirealms