diff --git a/build.gradle b/build.gradle index eab25be..dede520 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { } group = 'xyz.hynse' -version = "2.1" +version = "2.2" repositories { mavenCentral() @@ -37,7 +37,7 @@ processResources { def props = [version: version] inputs.properties props filteringCharset 'UTF-8' - filesMatching(['plugin.yml', 'paper-plugin.yml']) { + filesMatching('plugin.yml') { expand props } } diff --git a/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java b/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java index b66955b..5b0807b 100644 --- a/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java +++ b/src/main/java/xyz/hynse/foliaflow/FoliaFlow.java @@ -1,12 +1,19 @@ package xyz.hynse.foliaflow; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; import xyz.hynse.foliaflow.command.ReloadCommand; +import xyz.hynse.foliaflow.util.SchedulerUtil; import xyz.hynse.foliaflow.watcher.PortalWatcher; -public class FoliaFlow extends JavaPlugin { +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +public class FoliaFlow extends JavaPlugin { + private boolean isFirstEnable = true; public static FoliaFlow instance; public static double horizontalCoefficient; public static double verticalCoefficient; @@ -17,9 +24,40 @@ public class FoliaFlow extends JavaPlugin { public void onEnable() { instance = this; register(); + if (isFirstEnable) { + isFirstEnable = false; + copyDefaultConfig(); + setInitialConfigValues(); + } reload(); } + private void copyDefaultConfig() { + File configFile = new File(getDataFolder(), "config.yml"); + if (!configFile.exists()) { + saveResource("config.yml", false); + } + } + + private void setInitialConfigValues() { + File configFile = new File(getDataFolder(), "config.yml"); + YamlConfiguration config = YamlConfiguration.loadConfiguration(configFile); + InputStream defaultConfigStream = getResource("config.yml"); + YamlConfiguration defaultConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defaultConfigStream)); + config.options().copyDefaults(true); + config.setDefaults(defaultConfig); + boolean isFolia = SchedulerUtil.isFolia(); + if (!config.contains("horizontal_coefficient")) { + double horizontalCoefficient = isFolia ? 1.499 : 1.3; + config.set("horizontal_coefficient", horizontalCoefficient); + } + try { + config.save(configFile); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void reload() { saveDefaultConfig(); reloadConfig(); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 2d26684..fbe661d 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -3,7 +3,10 @@ # If you find values that seems more vanilla please create a PR # https://github.com/Hynse/FoliaFlow +# Optimize value for horizontal_coefficient +# - Folia (1.499) +# - Paper (1.3) +horizontal_coefficient: 1.499 vertical_coefficient: -1.7 -horizontal_coefficient: 1.46 spawn_height: 0.08 -folia_offset: 0.08 +folia_offset: 0.5