This commit is contained in:
2025-12-22 08:20:45 +00:00
parent da8eb566a8
commit a92f17aae6
20 changed files with 94 additions and 45 deletions

View File

@@ -5,13 +5,16 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
public class ConfigManager {
private final File file;
private Map<String, Object> data = new LinkedHashMap<>();
private final Yaml yaml;
@@ -28,10 +31,14 @@ public class ConfigManager {
// Load data from the file into memory
public void load() {
if (!file.exists()) return;
if (!file.exists()) {
return;
}
try (InputStream in = new FileInputStream(file)) {
Map<String, Object> loaded = yaml.load(in);
if (loaded != null) this.data = loaded;
if (loaded != null) {
this.data = loaded;
}
} catch (IOException e) {
e.printStackTrace();
}
@@ -67,11 +74,42 @@ public class ConfigManager {
return val != null ? val.toString() : null;
}
public List<String> getStringList(String path) {
Object val = get(path);
if (val instanceof List<?>) {
List<String> list = new ArrayList<>();
for (Object item : (List<?>) val) {
if (item != null) {
list.add(item.toString());
}
}
return list;
}
return new ArrayList<>(); // Return empty list instead of null to prevent NPEs
}
public int getInt(String path) {
Object val = get(path);
return val instanceof Number ? ((Number) val).intValue() : 0;
}
public double getDouble(String path) {
Object val = get(path);
if (val instanceof Number) {
return ((Number) val).doubleValue();
}
if (val instanceof String) {
try {
return Double.parseDouble((String) val);
} catch (NumberFormatException ignored) {
}
}
return 0.0;
}
// The Set method: Also supports dot notation
@SuppressWarnings("unchecked")
public void set(String path, Object value) {

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>All Classes and Interfaces (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>All Packages (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>API Help (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>Index (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -62,6 +62,8 @@ loadScripts(document, 'script');</script>
<dl class="index">
<dt><a href="net/triler/ConfigManager.html#get(java.lang.String)" class="member-name-link">get(String)</a> - Method in class net.triler.<a href="net/triler/ConfigManager.html" title="class in net.triler">ConfigManager</a></dt>
<dd>&nbsp;</dd>
<dt><a href="net/triler/ConfigManager.html#getDouble(java.lang.String)" class="member-name-link">getDouble(String)</a> - Method in class net.triler.<a href="net/triler/ConfigManager.html" title="class in net.triler">ConfigManager</a></dt>
<dd>&nbsp;</dd>
<dt><a href="net/triler/ConfigManager.html#getInt(java.lang.String)" class="member-name-link">getInt(String)</a> - Method in class net.triler.<a href="net/triler/ConfigManager.html" title="class in net.triler">ConfigManager</a></dt>
<dd>&nbsp;</dd>
<dt><a href="net/triler/ConfigManager.html#getString(java.lang.String)" class="member-name-link">getString(String)</a> - Method in class net.triler.<a href="net/triler/ConfigManager.html" title="class in net.triler">ConfigManager</a></dt>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>yml-manager 0.1 API</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

View File

@@ -1 +1 @@
memberSearchIndex = [{"p":"net.triler","c":"ConfigManager","l":"ConfigManager(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"net.triler","c":"ConfigManager","l":"get(String)","u":"get(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"getInt(String)","u":"getInt(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"getString(String)","u":"getString(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"load()"},{"p":"net.triler","c":"ConfigManager","l":"save()"},{"p":"net.triler","c":"ConfigManager","l":"set(String, Object)","u":"set(java.lang.String,java.lang.Object)"}];updateSearchResults();
memberSearchIndex = [{"p":"net.triler","c":"ConfigManager","l":"ConfigManager(File)","u":"%3Cinit%3E(java.io.File)"},{"p":"net.triler","c":"ConfigManager","l":"get(String)","u":"get(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"getDouble(String)","u":"getDouble(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"getInt(String)","u":"getInt(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"getString(String)","u":"getString(java.lang.String)"},{"p":"net.triler","c":"ConfigManager","l":"load()"},{"p":"net.triler","c":"ConfigManager","l":"save()"},{"p":"net.triler","c":"ConfigManager","l":"set(String, Object)","u":"set(java.lang.String,java.lang.Object)"}];updateSearchResults();

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>ConfigManager (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -122,22 +122,25 @@ loadScripts(document, 'script');</script>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#get(java.lang.String)" class="member-name-link">get</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getInt(java.lang.String)" class="member-name-link">getInt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDouble(java.lang.String)" class="member-name-link">getDouble</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getString(java.lang.String)" class="member-name-link">getString</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getInt(java.lang.String)" class="member-name-link">getInt</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#load()" class="member-name-link">load</a>()</code></div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getString(java.lang.String)" class="member-name-link">getString</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#save()" class="member-name-link">save</a>()</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#load()" class="member-name-link">load</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#set(java.lang.String,java.lang.Object)" class="member-name-link">set</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;value)</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#save()" class="member-name-link">save</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#set(java.lang.String,java.lang.Object)" class="member-name-link">set</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
@@ -200,6 +203,12 @@ loadScripts(document, 'script');</script>
</section>
</li>
<li>
<section class="detail" id="getDouble(java.lang.String)">
<h3>getDouble</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">double</span>&nbsp;<span class="element-name">getDouble</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</span></div>
</section>
</li>
<li>
<section class="detail" id="set(java.lang.String,java.lang.Object)">
<h3>set</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">set</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path,

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>Uses of Class net.triler.ConfigManager (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>net.triler (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>net.triler Class Hierarchy (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>Uses of Package net.triler (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>Class Hierarchy (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Wed Dec 17 19:08:13 UTC 2025 -->
<!-- Generated by javadoc (21) on Wed Dec 17 19:57:20 UTC 2025 -->
<title>Search (yml-manager 0.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

View File

@@ -28,22 +28,22 @@ net.triler
/config/.m2/repository/org/yaml/snakeyaml/2.3/snakeyaml-2.3.jar = 1725124922000
/config/workspace/yml-manager/src/main/java = 1765997171089
/config/workspace/yml-manager/target/generated-sources/annotations = 1765997340661
/config/workspace/yml-manager/target/apidocs/copy.svg = 1765998493924
/config/workspace/yml-manager/target/apidocs/help-doc.html = 1765998493919
/config/workspace/yml-manager/target/apidocs/link.svg = 1765998493925
/config/workspace/yml-manager/target/apidocs/allclasses-index.html = 1765998493881
/config/workspace/yml-manager/target/apidocs/overview-tree.html = 1765998493865
/config/workspace/yml-manager/target/apidocs/search.js = 1765998493926
/config/workspace/yml-manager/target/apidocs/tag-search-index.js = 1765998493888
/config/workspace/yml-manager/target/apidocs/index-all.html = 1765998493901
/config/workspace/yml-manager/target/apidocs/type-search-index.js = 1765998493887
/config/workspace/yml-manager/target/apidocs/member-search-index.js = 1765998493888
/config/workspace/yml-manager/target/apidocs/search.html = 1765998493904
/config/workspace/yml-manager/target/apidocs/index.html = 1765998493906
/config/workspace/yml-manager/target/apidocs/allpackages-index.html = 1765998493884
/config/workspace/yml-manager/target/apidocs/stylesheet.css = 1765998493922
/config/workspace/yml-manager/target/apidocs/search-page.js = 1765998493927
/config/workspace/yml-manager/target/apidocs/script.js = 1765998493923
/config/workspace/yml-manager/target/apidocs/module-search-index.js = 1765998493885
/config/workspace/yml-manager/target/apidocs/package-search-index.js = 1765998493887
/config/workspace/yml-manager/target/apidocs/element-list = 1765998493833
/config/workspace/yml-manager/target/apidocs/copy.svg = 1766001440352
/config/workspace/yml-manager/target/apidocs/help-doc.html = 1766001440347
/config/workspace/yml-manager/target/apidocs/link.svg = 1766001440352
/config/workspace/yml-manager/target/apidocs/allclasses-index.html = 1766001440319
/config/workspace/yml-manager/target/apidocs/overview-tree.html = 1766001440308
/config/workspace/yml-manager/target/apidocs/search.js = 1766001440355
/config/workspace/yml-manager/target/apidocs/tag-search-index.js = 1766001440326
/config/workspace/yml-manager/target/apidocs/index-all.html = 1766001440335
/config/workspace/yml-manager/target/apidocs/type-search-index.js = 1766001440325
/config/workspace/yml-manager/target/apidocs/member-search-index.js = 1766001440325
/config/workspace/yml-manager/target/apidocs/search.html = 1766001440338
/config/workspace/yml-manager/target/apidocs/index.html = 1766001440341
/config/workspace/yml-manager/target/apidocs/allpackages-index.html = 1766001440323
/config/workspace/yml-manager/target/apidocs/stylesheet.css = 1766001440351
/config/workspace/yml-manager/target/apidocs/search-page.js = 1766001440358
/config/workspace/yml-manager/target/apidocs/script.js = 1766001440352
/config/workspace/yml-manager/target/apidocs/module-search-index.js = 1766001440324
/config/workspace/yml-manager/target/apidocs/package-search-index.js = 1766001440324
/config/workspace/yml-manager/target/apidocs/element-list = 1766001440276

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.