Skip to content

Commit 9ee7417

Browse files
committed
testing annotations
1 parent 4a1072a commit 9ee7417

File tree

3 files changed

+48
-7
lines changed

3 files changed

+48
-7
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>me.kodysimpson</groupId>
88
<artifactId>SimpAPI</artifactId>
9-
<version>4.2.3</version>
9+
<version>4.2.4</version>
1010
<packaging>jar</packaging>
1111

1212
<name>SimpAPI</name>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package me.kodysimpson.simpapi.config;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
@Retention(RetentionPolicy.RUNTIME)
9+
@Target(ElementType.TYPE)
10+
public @interface Config {
11+
String fileName();
12+
ConfigManager.FileType fileType();
13+
}

src/main/java/me/kodysimpson/simpapi/config/ConfigManager.java

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package me.kodysimpson.simpapi.config;
22

33
import com.fasterxml.jackson.core.JsonFactory;
4+
import com.fasterxml.jackson.core.JsonGenerator;
5+
import com.fasterxml.jackson.core.JsonParser;
6+
import com.fasterxml.jackson.databind.DeserializationFeature;
47
import com.fasterxml.jackson.databind.ObjectMapper;
58
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
69
import org.bukkit.plugin.java.JavaPlugin;
@@ -15,18 +18,21 @@ public enum FileType{
1518
JSON, YAML
1619
}
1720

18-
public static <T> T loadConfig(JavaPlugin plugin, Class<T> configClass, String fileName, FileType fileType) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
21+
public static <T> T loadConfig(JavaPlugin plugin, Class<T> configClass, String fileName, ConfigManager.FileType fileType) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
1922

2023
T config = null;
2124
File messagesConfigFile = null;
2225
ObjectMapper mapper = null;
2326

24-
if (fileType == FileType.YAML){
27+
String fileNameA = configClass.getAnnotation(Config.class).fileName();
28+
System.out.println("Grabbed filename: " + fileNameA);
29+
30+
if (fileType == ConfigManager.FileType.YAML){
2531
messagesConfigFile = new File(plugin.getDataFolder(), fileName + ".yml");
26-
mapper = new ObjectMapper(new YAMLFactory());
27-
}else if(fileType == FileType.JSON){
32+
mapper = new ObjectMapper(new YAMLFactory()).configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true).configure(JsonParser.Feature.IGNORE_UNDEFINED, true).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
33+
}else if(fileType == ConfigManager.FileType.JSON){
2834
messagesConfigFile = new File(plugin.getDataFolder(), fileName + ".json");
29-
mapper = new ObjectMapper(new JsonFactory());
35+
mapper = new ObjectMapper(new JsonFactory()).configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true).configure(JsonParser.Feature.IGNORE_UNDEFINED, true).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
3036
}
3137

3238
if (!messagesConfigFile.exists()){
@@ -40,12 +46,34 @@ public static <T> T loadConfig(JavaPlugin plugin, Class<T> configClass, String f
4046
}else{
4147
//since it exists already, load the values into the object
4248
try {
43-
return mapper.readValue(messagesConfigFile, configClass);
49+
T t = mapper.readValue(messagesConfigFile, configClass);
50+
saveConfig(plugin, t, fileName, ConfigManager.FileType.YAML);
51+
return t;
4452
} catch (IOException e) {
4553
e.printStackTrace();
4654
}
4755
}
4856
return config;
4957
}
5058

59+
public static void saveConfig(JavaPlugin plugin, Object configObject, String fileName, ConfigManager.FileType fileType) {
60+
61+
File messagesConfigFile = null;
62+
ObjectMapper mapper = null;
63+
if (fileType == ConfigManager.FileType.YAML){
64+
messagesConfigFile = new File(plugin.getDataFolder(), fileName + ".yml");
65+
mapper = new ObjectMapper(new YAMLFactory()).configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true).configure(JsonParser.Feature.IGNORE_UNDEFINED, true).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
66+
}else if(fileType == ConfigManager.FileType.JSON){
67+
messagesConfigFile = new File(plugin.getDataFolder(), fileName + ".json");
68+
mapper = new ObjectMapper(new JsonFactory()).configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true).configure(JsonParser.Feature.IGNORE_UNDEFINED, true).configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
69+
}
70+
71+
try {
72+
mapper.writeValue(messagesConfigFile, configObject);
73+
} catch (IOException e) {
74+
e.printStackTrace();
75+
}
76+
77+
}
78+
5179
}

0 commit comments

Comments
 (0)