package net.brysonsteck.Resurrection; import net.brysonsteck.Resurrection.commands.*; import net.brysonsteck.Resurrection.player.PlayerListener; import net.brysonsteck.Resurrection.startup.CheckForUpdate; import net.brysonsteck.Resurrection.startup.ParseSettings; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.event.Listener; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; import java.io.IOException; public class Resurrection extends JavaPlugin implements Listener { //spigot things @Override public void onDisable() { super.onDisable(); System.out.println("[Resurrection] Resurrection has completed shutdown."); } @Override public void onEnable() { super.onEnable(); System.out.println("[Resurrection] ---------------------------------------------------------"); System.out.println("[Resurrection] Resurrection is starting!"); PluginDescriptionFile pluginInfo = getDescription(); getServer().getPluginManager().registerEvents(this, this); if (pluginInfo.getVersion().contains("beta")) { // beta message System.out.println("[Resurrection] ---------------------------------------------------------"); System.out.println("[Resurrection] WARNING!!!!"); System.out.println("[Resurrection] You are running a beta version of Resurrection!"); System.out.println("[Resurrection] "); System.out.println("[Resurrection] This means that this plugin is early in development and"); System.out.println("[Resurrection] not completely finished, and as a result you may"); System.out.println("[Resurrection] experience unexpected doodads. Make sure that the plugin"); System.out.println("[Resurrection] is up-to-date for more features and bug fixes. The plugin"); System.out.println("[Resurrection] will now check for updates."); System.out.println("[Resurrection] ---------------------------------------------------------"); } else { System.out.println("[Resurrection] ---------------------------------------------------------"); } // check for updates System.out.println("[Resurrection] Checking for updates..."); CheckForUpdate check = new CheckForUpdate(); boolean outdated = false; if (check.isSuccess()) { String newestVersion = check.getVersion(); String newestVersionURL = check.getVersionURL(); if (pluginInfo.getVersion().equals(newestVersion)) { System.out.println("[Resurrection] " + newestVersion + " is the latest version of Resurrection."); } else { System.out.println("[Resurrection] A new version of Resurrection is available! (current: " + pluginInfo.getVersion() + ", newest: " + newestVersion + ")"); System.out.println("[Resurrection] You can download the latest release on GitHub here \\/"); System.out.println("[Resurrection] " + newestVersionURL); outdated = true; } } System.out.println("[Resurrection] ---------------------------------------------------------"); System.out.println("[Resurrection] Locating player data and settings files..."); // check if playerData.resurrection exists File playerFile = new File("plugins/playerData.resurrection"); File settingsFile = new File("plugins/settings.resurrection"); boolean fileFail = false; if (!playerFile.exists()) { System.out.println("[Resurrection] Player data file does not exist. Creating now in the \"plugins\" directory..."); try { playerFile.createNewFile(); System.out.println("[Resurrection] Player data file created successfully."); } catch (IOException e) { System.out.println("[Resurrection] An error has occurred creating the player data file!"); e.printStackTrace(); System.out.println("[Resurrection] This file is crucial to Resurrection. Since the file could not be created, the plugin will now stop."); Bukkit.getPluginManager().disablePlugin(this); fileFail = true; } } else { System.out.println("[Resurrection] The player data file has been found!"); } if (!settingsFile.exists()) { System.out.println("[Resurrection] Settings file does not exist. Creating now in the \"plugins\" directory..."); new ParseSettings(); System.out.println("[Resurrection] Settings file created successfully."); } else { System.out.println("[Resurrection] The settings file has also been found!"); } ParseSettings parseSettings = new ParseSettings(); System.out.println("[Resurrection] ---------------------------------------------------------"); if (parseSettings.isSettingsComplete() && !fileFail) { boolean DEBUG = false; if (Boolean.parseBoolean(parseSettings.getSetting("debug"))) { DEBUG = true; Bukkit.broadcastMessage(ChatColor.YELLOW +""+ ChatColor.BOLD + "[Res. DEBUG]: Resurrection's debug mode has been enabled in the settings file."); Bukkit.broadcastMessage(ChatColor.YELLOW +""+ ChatColor.BOLD + "[Res. DEBUG]: All debug messages will be broadcasted (sent to everyone) prefaced with the tag \"[Res. DEBUG]\" and sent in bold yellow text."); Bukkit.broadcastMessage(ChatColor.YELLOW +""+ ChatColor.BOLD + "[Res. DEBUG]: Several messages may be sent at a time. Therefore, debug mode should be disabled for anything other than, well, debugging."); System.out.println("[Resurrection] ---------------------------------------------------------"); } System.out.println("[Resurrection] Registering listeners and adding commands..."); // register listener this.getServer().getPluginManager().registerEvents(new PlayerListener(parseSettings), this); if (DEBUG) { Bukkit.broadcastMessage(ChatColor.YELLOW +""+ ChatColor.BOLD + "[Res. DEBUG]: Player listener registered."); } // register commands this.getCommand("about").setExecutor(new CommandAbout(parseSettings.getSetting("debug"), pluginInfo.getVersion(), outdated)); if (DEBUG) { Bukkit.broadcastMessage(ChatColor.YELLOW +""+ ChatColor.BOLD + "[Res. DEBUG]: `/about` registered."); } this.getCommand("bug").setExecutor(new CommandBug(parseSettings.getSetting("debug"))); if (DEBUG) { Bukkit.broadcastMessage(ChatColor.YELLOW +""+ ChatColor.BOLD + "[Res. DEBUG]: `/bug` registered."); } this.getCommand("resurrect").setExecutor(new CommandResurrect(parseSettings.getSetting("debug"))); if (DEBUG) { Bukkit.broadcastMessage(ChatColor.YELLOW +""+ ChatColor.BOLD + "[Res. DEBUG]: `/resurrect` registered."); } this.getCommand("howlong").setExecutor(new CommandHowLong(parseSettings.getSetting("debug"))); if (DEBUG) { Bukkit.broadcastMessage(ChatColor.YELLOW +""+ ChatColor.BOLD + "[Res. DEBUG]: `/howlong` registered."); } this.getCommand("source").setExecutor(new CommandSource(parseSettings.getSetting("debug"))); if (DEBUG) { Bukkit.broadcastMessage(ChatColor.YELLOW +""+ ChatColor.BOLD + "[Res. DEBUG]: `/source` registered."); } System.out.println("[Resurrection] ---------------------------------------------------------"); System.out.println("[Resurrection] Successfully Started!"); System.out.println("[Resurrection] ---------------------------------------------------------"); } } public static void main(String[] args) { // String test = "fals"; // // if (!test.toLowerCase().contains("true") && !test.toLowerCase().contains("false")) { // System.out.println("fail"); // } // DO THIS // PlayerData playerData = new PlayerData(); // System.out.println("--- Reading Player data file ---"); // playerData.readData(); // System.out.println(playerData.getPlayers()); // System.out.println(playerData.getRawData()); // System.out.println("--- Oh look! A new player joined. Adding them. ---"); // String rawData = playerData.getRawData(); // rawData = rawData + ";bryzinga,false,0"; // playerData.saveData(rawData); // System.out.println(playerData.getPlayers()); // System.out.println(playerData.getRawData()); // System.out.println("--- A player has died! Update the data file! ---"); // rawData = playerData.getRawData(); // String[] rawPlayers = rawData.split(";"); // String[] rawSinglePlayer = new String[3]; // int index = 0; // for (String players : rawPlayers) { // if (players.startsWith("bryzinga")) { // String[] playerSplit = players.split(","); // playerSplit[1] = "true"; // playerSplit[2] = "12345"; // // rawPlayers[index] = String.join(",", playerSplit); // break; // // } // index++; // } // rawData = String.join(";", rawPlayers); // playerData.saveData(rawData); // System.out.println(rawData); // String[] array = ";bryzinga,false,0".split(";"); // System.out.println(array.length); // TimeCheck timeCheck = new TimeCheck((System.currentTimeMillis() + 86212345) - System.currentTimeMillis()); // System.out.println(timeCheck.formatTime()); // System.out.println(System.currentTimeMillis()); } }