Skip to content

Commit

Permalink
Add fallback defaults to config options reader
Browse files Browse the repository at this point in the history
  • Loading branch information
TechnicJelle committed Mar 6, 2024
1 parent ac5154f commit 7b17636
Showing 1 changed file with 34 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.bukkit.plugin.java.JavaPlugin;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class PaperConfig implements Config {
Expand All @@ -30,11 +31,39 @@ public void loadFromPlugin(JavaPlugin plugin) {
plugin.reloadConfig();

//Load config values into variables
markerSetName = plugin.getConfig().getString("MarkerSetName");
toggleable = plugin.getConfig().getBoolean("Toggleable");
defaultHidden = plugin.getConfig().getBoolean("DefaultHidden");
expireTimeInHours = plugin.getConfig().getLong("ExpireTimeInHours");
hiddenGameModes = Config.parseGameModes(plugin.getConfig().getStringList("HiddenGameModes"));
markerSetName = plugin.getConfig().getString("MarkerSetName", "Offline Players");
toggleable = plugin.getConfig().getBoolean("Toggleable", true);
defaultHidden = plugin.getConfig().getBoolean("DefaultHidden", false);
expireTimeInHours = plugin.getConfig().getLong("ExpireTimeInHours", 0);
hiddenGameModes = Config.parseGameModes(getStringList(plugin, "HiddenGameModes", List.of("spectator")));
}

//Copied/Adapted from org.bukkit.configuration.MemorySection.java
@SuppressWarnings("SameParameterValue")
private List<String> getStringList(JavaPlugin plugin, String path, List<String> def) {
List<?> list = plugin.getConfig().getList(path, def);

if (list == null) {
return new ArrayList<>(0);
}

List<String> result = new ArrayList<>();

for (Object object : list) {
if ((object instanceof String) || (isPrimitiveWrapper(object))) {
result.add(String.valueOf(object));
}
}

return result;
}

//Copied/Adapted from org.bukkit.configuration.MemorySection.java
private boolean isPrimitiveWrapper(Object input) {
return input instanceof Integer || input instanceof Boolean ||
input instanceof Character || input instanceof Byte ||
input instanceof Short || input instanceof Double ||
input instanceof Long || input instanceof Float;
}

@Override
Expand Down

0 comments on commit 7b17636

Please sign in to comment.