From e38f4480a3b6933b843ce410f57d4ed4330baf5f Mon Sep 17 00:00:00 2001 From: Leo dev Date: Tue, 17 Jun 2025 11:54:50 -0500 Subject: [PATCH] config save bug fix --- .../saturnclient/config/ConfigManager.java | 75 ++++++++----------- 1 file changed, 30 insertions(+), 45 deletions(-) diff --git a/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java b/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java index 9a49376..3c269c7 100644 --- a/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java +++ b/src/main/java/org/saturnclient/saturnclient/config/ConfigManager.java @@ -137,25 +137,17 @@ public class ConfigManager { Map> nestedProperties = p.getNamespaceValue(); loadProperties(nestedConfig, nestedProperties); } else { - // Handle regular properties - switch (p.getType()) { - case BOOLEAN: - ((Property) p).value = c.getAsBoolean(); - break; - case INTEGER: - ((Property) p).value = c.getAsInt(); - break; - case FLOAT: - ((Property) p).value = c.getAsFloat(); - break; - case STRING: - ((Property) p).value = c.getAsString(); - break; - case HEX: - ((Property) p).value = c.getAsInt(); - break; - default: - break; + if (p.value instanceof Integer) { + ((Property) p).value = c.getAsInt(); + } else if (p.value instanceof String) { + ((Property) p).value = c.getAsString(); + } else if (p.value instanceof Float) { + ((Property) p).value = c.getAsFloat(); + } else if (p.value instanceof Boolean) { + ((Property) p).value = c.getAsBoolean(); + } else { + SaturnClient.LOGGER.warn( + "Unknown property type for: " + propertyName); } } } else { @@ -201,36 +193,29 @@ public class ConfigManager { for (String propertyName : propertyMap.keySet()) { Property property = propertyMap.get(propertyName); JsonElement propertyValue = null; - - if (property.getType() == Property.PropertyType.NAMESPACE) { - // Handle nested namespace - JsonObject nestedConfig = new JsonObject(); - Map> nestedProperties = (Map>) property.value; - saveProperties(nestedConfig, nestedProperties); - propertyValue = nestedConfig; - } else { - // Convert the property value based on its type - switch (property.getType()) { - case BOOLEAN: - propertyValue = new JsonPrimitive((Boolean) property.value); - break; - case INTEGER: + // Convert the property value based on its type + switch (property.getType()) { + case NAMESPACE: + // Handle nested namespace + JsonObject nestedConfig = new JsonObject(); + Map> nestedProperties = (Map>) property.value; + saveProperties(nestedConfig, nestedProperties); + propertyValue = nestedConfig; + break; + default: + if (property.value instanceof Integer) { propertyValue = new JsonPrimitive((Integer) property.value); - break; - case FLOAT: - propertyValue = new JsonPrimitive((Float) property.value); - break; - case STRING: + } else if (property.value instanceof String) { propertyValue = new JsonPrimitive((String) property.value); - break; - case HEX: - propertyValue = new JsonPrimitive((Integer) property.value); - break; - default: + } else if (property.value instanceof Float) { + propertyValue = new JsonPrimitive((Float) property.value); + } else if (property.value instanceof Boolean) { + propertyValue = new JsonPrimitive((Boolean) property.value); + } else { SaturnClient.LOGGER.warn( "Unknown property type for: " + propertyName); - break; - } + } + break; } if (propertyValue != null) {