Skip to content

Commit d6a338b

Browse files
authored
Merge pull request #13 from TypicalModMaker/master
fix: 1.18+ servers
2 parents 7f11bc9 + 48190f5 commit d6a338b

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

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

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package pl.mikigal.config;
22

3+
import org.bukkit.Bukkit;
34
import org.bukkit.configuration.InvalidConfigurationException;
45
import org.bukkit.configuration.file.YamlConfiguration;
56
import org.yaml.snakeyaml.DumperOptions;
@@ -11,6 +12,7 @@
1112
import pl.mikigal.config.style.CommentStyle;
1213
import pl.mikigal.config.style.NameStyle;
1314
import pl.mikigal.config.util.ConversionUtils;
15+
import pl.mikigal.config.util.ReflectionUtils;
1416
import pl.mikigal.config.util.TypeUtils;
1517

1618
import java.io.*;
@@ -41,6 +43,12 @@ public class BukkitConfiguration extends YamlConfiguration {
4143
private final Map<String, Object> cache;
4244
private final Map<String, String> comments;
4345

46+
/**
47+
*
48+
* Reflection Path
49+
*/
50+
private final String dumperFieldName = ReflectionUtils.isVeryNewVersion() ? "yamlDumperOptions" : "yamlOptions";
51+
4452
public BukkitConfiguration(File directory, File file, NameStyle nameStyle, CommentStyle commentStyle,
4553
boolean automaticColorStrings, String configComment) {
4654
this.directory = directory;
@@ -214,7 +222,7 @@ private void copyDefaultConfig() {
214222
*/
215223
private void overrideMaxLineWidth() {
216224
try {
217-
Field yamlOptionsField = YamlConfiguration.class.getDeclaredField("yamlOptions");
225+
Field yamlOptionsField = YamlConfiguration.class.getDeclaredField(dumperFieldName);
218226
yamlOptionsField.setAccessible(true);
219227
DumperOptions yamlOptions = (DumperOptions) yamlOptionsField.get(this);
220228
yamlOptions.setWidth(Integer.MAX_VALUE);

src/main/java/pl/mikigal/config/util/ReflectionUtils.java

+9
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,13 @@ public static boolean isNewVersion() {
105105
int version = Integer.parseInt(Bukkit.getBukkitVersion().split("\\.")[1].split("-")[0]);
106106
return version >= 12;
107107
}
108+
109+
/**
110+
* Check bukkit versions
111+
* @return false for Minecraft 1.18 or older, true for 1.18 or newer
112+
*/
113+
public static boolean isVeryNewVersion() {
114+
int version = Integer.parseInt(Bukkit.getBukkitVersion().split("\\.")[1].split("-")[0]);
115+
return version >= 18;
116+
}
108117
}

0 commit comments

Comments
 (0)