Skip to content

Commit a144c13

Browse files
committed
Adding the possibility to initialize a config with a custom directory
1 parent 335dc11 commit a144c13

File tree

6 files changed

+18
-13
lines changed

6 files changed

+18
-13
lines changed

README.MD

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ maven {
2121
url = 'https://repo.mikigal.pl/releases'
2222
}
2323
24-
compile group: 'pl.mikigal', name: 'ConfigAPI', version: '1.2.2'
24+
compile group: 'pl.mikigal', name: 'ConfigAPI', version: '1.2.3'
2525
```
2626

2727
#### Maven
@@ -34,7 +34,7 @@ compile group: 'pl.mikigal', name: 'ConfigAPI', version: '1.2.2'
3434
<dependency>
3535
<groupId>pl.mikigal</groupId>
3636
<artifactId>ConfigAPI</artifactId>
37-
<version>1.2.2</version>
37+
<version>1.2.3</version>
3838
<scope>compile</scope>
3939
</dependency>
4040
```

gradlew

100755100644
File mode changed.

src/main/java/pl/mikigal/config/BukkitConfiguration.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public class BukkitConfiguration extends YamlConfiguration {
3030
/**
3131
* Properties of config
3232
*/
33+
private final File directory;
3334
private final File file;
3435
private final NameStyle nameStyle;
3536
private final CommentStyle commentStyle;
@@ -42,7 +43,9 @@ public class BukkitConfiguration extends YamlConfiguration {
4243
private final Map<String, Object> cache;
4344
private final Map<String, String> comments;
4445

45-
public BukkitConfiguration(File file, NameStyle nameStyle, CommentStyle commentStyle, boolean automaticColorStrings, String configComment) {
46+
public BukkitConfiguration(File directory, File file, NameStyle nameStyle, CommentStyle commentStyle,
47+
boolean automaticColorStrings, String configComment) {
48+
this.directory = directory;
4649
this.file = file;
4750
this.nameStyle = nameStyle;
4851
this.commentStyle = commentStyle;
@@ -176,8 +179,8 @@ public void save() {
176179
*/
177180
private void copyDefaultConfig() {
178181
try {
179-
if (!ConfigAPI.getPlugin().getDataFolder().exists()) {
180-
ConfigAPI.getPlugin().getDataFolder().mkdir();
182+
if (!directory.exists()) {
183+
directory.mkdir();
181184
}
182185

183186
if (this.file.exists()) {

src/main/java/pl/mikigal/config/ConfigAPI.java

+10-8
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ public class ConfigAPI {
4343
* @param nameStyle Style of config's fields names
4444
* @param commentStyle Style of config's comments
4545
* @param automaticColorStrings Automatic translate '&' based colors
46-
* @param dir The config's directory.
46+
* @param directory The config's directory.
4747
* @param plugin Instance of your plugin
4848
* @see NameStyle
4949
* @see CommentStyle
5050
* @return Instance of {@param clazz} ready to use methods
5151
*/
5252
public static <T extends Config> T init(Class<T> clazz, NameStyle nameStyle, CommentStyle commentStyle,
53-
boolean automaticColorStrings, File dir, JavaPlugin plugin){
53+
boolean automaticColorStrings, File directory, JavaPlugin plugin){
5454

5555
ConfigAPI.plugin = plugin;
5656
ConfigName configName = clazz.getAnnotation(ConfigName.class);
@@ -62,9 +62,10 @@ public static <T extends Config> T init(Class<T> clazz, NameStyle nameStyle, Com
6262
String configComment = configCommentAnnotation == null ? null : configCommentAnnotation.value();
6363

6464
String name = configName.value() + (configName.value().endsWith(".yml") ? "" : ".yml");
65-
File file = new File(dir, name);
65+
File file = new File(directory, name);
6666

67-
BukkitConfiguration rawConfiguration = new BukkitConfiguration(file, nameStyle, commentStyle, automaticColorStrings, configComment);
67+
BukkitConfiguration rawConfiguration = new BukkitConfiguration(directory, file, nameStyle, commentStyle,
68+
automaticColorStrings, configComment);
6869
rawConfigurations.put(name, rawConfiguration);
6970

7071
T configuration = (T) Proxy.newProxyInstance(clazz.getClassLoader(), new Class[]{clazz},
@@ -100,19 +101,20 @@ public static <T extends Config> T init(Class<T> clazz, NameStyle nameStyle, Com
100101
* @return Instance of {@param clazz} ready to use methods
101102
*/
102103
public static <T extends Config> T init(Class<T> clazz, JavaPlugin plugin) {
103-
return init(clazz, NameStyle.CAMEL_CASE, CommentStyle.ABOVE_CONTENT, true, plugin);
104+
return init(clazz, NameStyle.CAMEL_CASE, CommentStyle.ABOVE_CONTENT,
105+
true, plugin.getDataFolder(), plugin);
104106
}
105107

106108
/**
107109
* Initializes instance of Config with default values
108110
* (CAMEL_CASE as NameStyle, ABOVE_CONTENT as CommentStyle, enabled automatic translation of '&' based colors)
109111
* @param clazz Class of your Config interface
110-
* @param dir The config's directory.
112+
* @param directory The config's directory.
111113
* @param plugin Instance of your plugin
112114
* @return Instance of {@param clazz} ready to use methods
113115
*/
114-
public static <T extends Config> T init(Class<T> clazz, File dir, JavaPlugin plugin) {
115-
return init(clazz, NameStyle.CAMEL_CASE, CommentStyle.ABOVE_CONTENT, true, dir, plugin);
116+
public static <T extends Config> T init(Class<T> clazz, File directory, JavaPlugin plugin) {
117+
return init(clazz, NameStyle.CAMEL_CASE, CommentStyle.ABOVE_CONTENT, true, directory, plugin);
116118
}
117119

118120
/**

src/main/java/pl/mikigal/config/serializer/universal/UniversalCollectionSerializer.java

100755100644
File mode changed.

src/main/java/pl/mikigal/config/serializer/universal/UniversalMapSerializer.java

100755100644
File mode changed.

0 commit comments

Comments
 (0)