diff --git a/src/main/java/fi/flexplex/connect/FlexConnect.java b/src/main/java/fi/flexplex/connect/FlexConnect.java index 887cfdc..c058b68 100644 --- a/src/main/java/fi/flexplex/connect/FlexConnect.java +++ b/src/main/java/fi/flexplex/connect/FlexConnect.java @@ -55,21 +55,53 @@ public final class FlexConnect extends JavaPlugin { // Check paper config boolean paperConfigModified = false; final YamlConfiguration paperConfig = this.getServer().spigot().getPaperConfig(); - if (!paperConfig.getBoolean("settings.velocity-support.enabled")) { - paperConfig.set("settings.velocity-support.enabled", true); - paperConfigModified = true; + + // Legacy paper configs (1.18 or older) + if (paperConfig.contains("settings.velocity-support.enabled")) { + if (!paperConfig.getBoolean("settings.velocity-support.enabled")) { + paperConfig.set("settings.velocity-support.enabled", true); + paperConfigModified = true; + } } - if (!paperConfig.getBoolean("settings.velocity-support.enabled")) { - paperConfig.set("settings.velocity-support.online-mode", true); - paperConfigModified = true; + if (paperConfig.contains("settings.velocity-support.online-mode")) { + if (!paperConfig.getBoolean("settings.velocity-support.online-mode")) { + paperConfig.set("settings.velocity-support.online-mode", true); + paperConfigModified = true; + } } - if (!paperConfig.getString("settings.velocity-support.secret").equals("flexplex")) { - paperConfig.set("settings.velocity-support.secret", "flexplex"); - paperConfigModified = true; + if (paperConfig.contains("settings.velocity-support.secret")) { + if (!paperConfig.getString("settings.velocity-support.secret").equals("flexplex")) { + paperConfig.set("settings.velocity-support.secret", "flexplex"); + paperConfigModified = true; + } } - if (paperConfig.getBoolean("settings.unsupported-settings.perform-username-validation")) { - paperConfig.set("settings.unsupported-settings.perform-username-validation", false); - paperConfigModified = true; + + // Current paper configurations 1.19+ + if (paperConfig.contains("proxies.velocity.enabled")) { + if (!paperConfig.getBoolean("proxies.velocity.enabled")) { + paperConfig.set("proxies.velocity.enabled", true); + paperConfigModified = true; + } + } + if (paperConfig.contains("proxies.velocity.online-mode")) { + if (!paperConfig.getBoolean("proxies.velocity.online-mode")) { + paperConfig.set("proxies.velocity.online-mode", true); + paperConfigModified = true; + } + } + if (paperConfig.contains("proxies.velocity.secret")) { + if (!paperConfig.getString("proxies.velocity.secret").equals("flexplex")) { + paperConfig.set("proxies.velocity.secret", "flexplex"); + paperConfigModified = true; + } + } + + // In both configurations + if (paperConfig.contains("settings.unsupported-settings.perform-username-validation")) { + if (paperConfig.getBoolean("settings.unsupported-settings.perform-username-validation")) { + paperConfig.set("settings.unsupported-settings.perform-username-validation", false); + paperConfigModified = true; + } } if (paperConfigModified) {