+ Added config system

This commit is contained in:
Matthew Cech
2019-06-27 01:17:28 -07:00
parent b34e9795dc
commit 4315351832
3 changed files with 25 additions and 6 deletions
+1
View File
@@ -0,0 +1 @@
"Type","Key","Value"
1 Type Key Value
+16 -4
View File
@@ -1,6 +1,7 @@
package core; package core;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Vector; import java.util.Vector;
import utils.io.FileMonitor; import utils.io.FileMonitor;
@@ -25,9 +26,9 @@ public class Config
sections.add(new LocStrings()); sections.add(new LocStrings());
sections.add(new CommandEnabler()); sections.add(new CommandEnabler());
// Being monitoring configs and mark this as the instance now that it's made // Build the config file, then start monitoring it.
buildConfigFile(filepath);
monitoredConfigFile = new FileMonitor(filepath); monitoredConfigFile = new FileMonitor(filepath);
build(filepath);
instance = this; instance = this;
} }
@@ -39,16 +40,27 @@ public class Config
} }
} }
public void build(String path) public void buildConfigFile(String path)
{ {
configCSV = new ConfigCSV(sections, path); configCSV = new ConfigCSV(sections, path);
Map<String, List<ConfigItem>> groupedSections = ConfigCSV.groupByColumn(configCSV.getItems(), 0);
if(groupedSections != null)
{
for(IConfigSection section : sections)
{
List<ConfigItem> items = groupedSections.getOrDefault(section.getSectionTitle(), new Vector<ConfigItem>());
section.consume(items);
}
}
configCSV.writeFile(); configCSV.writeFile();
} }
public void upkeep() public void upkeep()
{ {
monitoredConfigFile.update((monitoredFile) -> { monitoredConfigFile.update((monitoredFile) -> {
build(monitoredFile.path.toString()); buildConfigFile(monitoredFile.path.toString());
}); });
} }
} }
+8 -2
View File
@@ -6,7 +6,6 @@ import java.io.Reader;
import java.io.Writer; import java.io.Writer;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -91,7 +90,14 @@ public class ConfigCSV
// Get a copy of the internal items // Get a copy of the internal items
public List<ConfigItem> getItems() public List<ConfigItem> getItems()
{ {
return Arrays.asList((ConfigItem[])fileContents.toArray()); List<ConfigItem> out = new Vector<ConfigItem>();
for(ConfigItem item : fileContents)
{
out.add(new ConfigItem(item.type, item.key, item.value));
}
return out;
} }
// Set the internal items // Set the internal items