Skip to content

Commit

Permalink
Don't update the Velocity config if not necessary
Browse files Browse the repository at this point in the history
  • Loading branch information
DerEchtePilz committed Sep 23, 2024
1 parent d2fa1d0 commit 4bb5e0b
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public CommandAPIMain(ProxyServer server, Logger logger, @DataDirectory Path dat
.path(configFile)
.build();

new VelocityConfigurationAdapter(null, null).saveDefaultConfig(configFile.getParent().toFile(), configFile.toFile(), null);
new VelocityConfigurationAdapter(null, null, null).saveDefaultConfig(configFile.getParent().toFile(), configFile.toFile(), null);

// If the config doesn't exist, load it from the resources

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Logger;

public record VelocityConfigurationAdapter(YamlConfigurationLoader loader, CommentedConfigurationNode config) implements ConfigurationAdapter<ConfigurationNode> {
public record VelocityConfigurationAdapter(YamlConfigurationLoader loader, CommentedConfigurationNode config, DefaultVelocityConfig defaultVelocityConfig) implements ConfigurationAdapter<ConfigurationNode> {

@Override
public void setValue(String key, Object value) {
Expand All @@ -43,7 +45,11 @@ public Object getValue(String key) {

@Override
public String[] getComment(String key) {
return new String[0];
CommentedConfigOption<?> option = defaultVelocityConfig.getAllOptions().get(key);
CommentedSection section = defaultVelocityConfig.getAllSections().get(key);
return option != null
? option.comment()
: section.comment();
}

@Override
Expand Down Expand Up @@ -89,7 +95,7 @@ public ConfigurationAdapter<ConfigurationNode> complete() {

@Override
public ConfigurationAdapter<ConfigurationNode> createNew() {
return new VelocityConfigurationAdapter(loader, loader.createNode());
return new VelocityConfigurationAdapter(loader, loader.createNode(), DefaultVelocityConfig.createDefault());
}

@Override
Expand All @@ -98,12 +104,13 @@ public void saveDefaultConfig(File directory, File configFile, Logger logger) {
.nodeStyle(NodeStyle.BLOCK)
.file(configFile)
.build();
ConfigGenerator configGenerator = ConfigGenerator.createNew(DefaultVelocityConfig.createDefault());
DefaultVelocityConfig defaultConfig = DefaultVelocityConfig.createDefault();
ConfigGenerator configGenerator = ConfigGenerator.createNew(defaultConfig);
if (!directory.exists()) {
directory.mkdirs();

try {
ConfigurationAdapter<ConfigurationNode> velocityConfigurationAdapter = new VelocityConfigurationAdapter(configLoader, configLoader.createNode());
ConfigurationAdapter<ConfigurationNode> velocityConfigurationAdapter = new VelocityConfigurationAdapter(configLoader, configLoader.createNode(), defaultConfig);
configGenerator.populateDefaultConfig(velocityConfigurationAdapter);
configLoader.save(velocityConfigurationAdapter.config());
} catch (IOException e) {
Expand All @@ -113,7 +120,7 @@ public void saveDefaultConfig(File directory, File configFile, Logger logger) {
try {
// If the config does exist, update it if necessary
CommentedConfigurationNode existingYamlConfig = configLoader.load();
ConfigurationAdapter<ConfigurationNode> existingConfig = new VelocityConfigurationAdapter(configLoader, existingYamlConfig);
ConfigurationAdapter<ConfigurationNode> existingConfig = new VelocityConfigurationAdapter(configLoader, existingYamlConfig, defaultConfig);
ConfigurationAdapter<ConfigurationNode> updatedConfig = configGenerator.generateWithNewValues(existingConfig);
if (updatedConfig != null) {
configLoader.save(updatedConfig.config());
Expand Down

0 comments on commit 4bb5e0b

Please sign in to comment.