package fi.flexplex.connect; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; public final class FlexConnect extends JavaPlugin { private String token = ""; public String getToken() { return this.token; } @Override public void onEnable() { // Plugin own configs this.saveDefaultConfig(); this.token = this.getConfig().getString("token"); if (this.token.equals("default")) { this.getLogger().warning("Token for FlexPlex server network has not been set into plugins config file. Please request token from FlexPlex staff members if you don't already have one!"); } boolean configsModified = false; // Check online mode if (this.getServer().getOnlineMode()) { final Properties properties = new Properties(); try { properties.load(new FileInputStream("server.properties")); properties.setProperty("online-mode", "false"); properties.store(new FileOutputStream("server.properties"), null); } catch (final IOException e) { e.printStackTrace(); } this.getLogger().warning("Automatic changes has been made to server.properties file."); configsModified = true; } // 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; } if (!paperConfig.getBoolean("settings.velocity-support.enabled")) { 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 (paperConfigModified) { try { paperConfig.save("paper.yml"); } catch (final IOException e) { e.printStackTrace(); } this.getLogger().warning("Automatic changes has been made to paper.yml config file."); configsModified = true; } // Actions if configs were modified if (configsModified) { this.getLogger().warning("Changes has been made to config files. Server will now shutdown automatically."); this.getServer().shutdown(); return; } // Register listener this.getServer().getPluginManager().registerEvents(new FlexConnectListener(this), this); } }