diff --git a/core/src/main/java/com/volmit/iris/Iris.java b/core/src/main/java/com/volmit/iris/Iris.java index 981085014..35c28a556 100644 --- a/core/src/main/java/com/volmit/iris/Iris.java +++ b/core/src/main/java/com/volmit/iris/Iris.java @@ -770,7 +770,6 @@ public class Iris extends VolmitPlugin implements Listener { }; String[] splash = unstablemode ? splashunstable : splashstable; // Choose the appropriate splash array based on unstablemode - OperatingSystemMXBean osBean = ManagementFactory.getOperatingSystemMXBean(); String osArch = osBean.getArch(); String osName = osBean.getName(); @@ -778,17 +777,30 @@ public class Iris extends VolmitPlugin implements Listener { if (!passedserversoftware) { Iris.info("Server type & version: " + C.RED + Bukkit.getVersion()); } else { Iris.info("Server type & version: " + Bukkit.getVersion()); } - + if (!instance.getServer().getVersion().contains("Purpur")) { + if (instance.getServer().getVersion().contains("Spigot") && instance.getServer().getVersion().contains("Bukkit")) { + Iris.info(C.RED + " Iris requires paper or above to function properly.."); + } else { + Iris.info(C.YELLOW + "Purpur is recommended to use with iris."); + } + } Iris.info("Server OS: " + osName + " (" + osArch + ")"); if(unstablemode) Iris.info("Server Cpu: " + C.DARK_RED + getCPUModel()); - - if(getCPUModel().contains("Intel")) Iris.info("Server Cpu: " + C.BLUE + getCPUModel());else { - if (getCPUModel().contains("Ryzen")) Iris.info("Server Cpu: " + C.RED + getCPUModel()); else { - Iris.info("Server Cpu: " + C.DARK_GRAY + getCPUModel()); + try { + if (getCPUModel().contains("Intel")) { + Iris.info("Server Cpu: " + C.BLUE + getCPUModel()); } + if (getCPUModel().contains("Ryzen")) { + Iris.info("Server Cpu: " + C.RED + getCPUModel()); + } + if (!getCPUModel().contains("Ryzen") && !getCPUModel().contains("Intel")) { + Iris.info("Server Cpu: " + C.GRAY + getCPUModel()); + } + + } catch (Exception e){ + Iris.info("Server Cpu: " + C.DARK_RED + "Failed"); } - if(!getCPUModel().contains("Intel") && !getCPUModel().contains("Ryzen")) Iris.info("Server Cpu: " + C.DARK_GRAY + getCPUModel()); Iris.info("Process Threads: " + getCPUThreads()); Iris.info("Process Memory: " + getHardware.getProcessMemory() + " MB"); diff --git a/core/src/main/java/com/volmit/iris/core/safeguard/IrisSafeguard.java b/core/src/main/java/com/volmit/iris/core/safeguard/IrisSafeguard.java index a7d945dfc..f037d97cf 100644 --- a/core/src/main/java/com/volmit/iris/core/safeguard/IrisSafeguard.java +++ b/core/src/main/java/com/volmit/iris/core/safeguard/IrisSafeguard.java @@ -6,6 +6,7 @@ import com.volmit.iris.util.format.C; public class IrisSafeguard { public static boolean unstablemode = false; + public static boolean stablemode = false; public static void IrisSafeguardSystem() { Iris.info("Enabled Iris SafeGuard"); ServerBootSFG.BootCheck(); diff --git a/core/src/main/java/com/volmit/iris/core/safeguard/ServerBootSFG.java b/core/src/main/java/com/volmit/iris/core/safeguard/ServerBootSFG.java index e9cc61975..2e8f14786 100644 --- a/core/src/main/java/com/volmit/iris/core/safeguard/ServerBootSFG.java +++ b/core/src/main/java/com/volmit/iris/core/safeguard/ServerBootSFG.java @@ -1,27 +1,26 @@ package com.volmit.iris.core.safeguard; import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.v1X.NMSBinding1X; -import com.volmit.iris.util.SFG.WorldHandlerSFG; import org.bukkit.Bukkit; -import org.bukkit.World; import org.bukkit.plugin.Plugin; -import java.io.File; import java.util.*; import static com.volmit.iris.Iris.instance; +import static com.volmit.iris.core.safeguard.IrisSafeguard.stablemode; import static com.volmit.iris.core.safeguard.IrisSafeguard.unstablemode; -import static com.volmit.iris.core.tools.IrisToolbelt.access; public class ServerBootSFG { public static final Map incompatiblePlugins = new HashMap<>(); public static boolean unsuportedversion = false; protected static boolean safeguardPassed; public static boolean passedserversoftware = true; - protected static byte count; + protected static int count; + protected static byte severityLow; + protected static byte severityMedium; + protected static byte severityHigh; public static String allIncompatiblePlugins; public static void BootCheck() { @@ -40,7 +39,7 @@ public class ServerBootSFG { pluginName = plugin.getName(); Boolean flag = incompatiblePlugins.get(pluginName); if (flag != null && !flag) { - count++; + severityHigh++; incompatiblePlugins.put(pluginName, true); } } @@ -60,17 +59,22 @@ public class ServerBootSFG { { passedserversoftware = false; joiner.add("Server Software"); - count++; + severityHigh++; } if (INMS.get() instanceof NMSBinding1X) { unsuportedversion = true; joiner.add("Unsupported Minecraft Version"); - count++; + severityHigh++; } allIncompatiblePlugins = joiner.toString(); - safeguardPassed = (count == 0); + safeguardPassed = (severityHigh == 0 && severityMedium == 0 && severityLow == 0); + count = severityHigh + severityMedium + severityLow; + if(safeguardPassed){ + stablemode = true; + Iris.safeguard("Stable mode has been activated."); + } if(!safeguardPassed){ unstablemode = true; Iris.safeguard("Unstable mode has been activated."); diff --git a/core/src/main/java/com/volmit/iris/core/safeguard/UnstableModeSFG.java b/core/src/main/java/com/volmit/iris/core/safeguard/UnstableModeSFG.java new file mode 100644 index 000000000..3d3f5c190 --- /dev/null +++ b/core/src/main/java/com/volmit/iris/core/safeguard/UnstableModeSFG.java @@ -0,0 +1,56 @@ +package com.volmit.iris.core.safeguard; + +import com.volmit.iris.Iris; +import com.volmit.iris.core.IrisSettings; +import com.volmit.iris.util.format.C; + +public class UnstableModeSFG { + public static void selectMode(){ + if (IrisSafeguard.unstablemode) { + Iris.safeguard(C.DARK_RED + "Iris is running in Unstable Mode"); + unstable(); + } else { + stable(); + } + } + public static void stable(){ + Iris.safeguard(C.BLUE + "Iris is running Stable"); + } + + public static void unstable() { + + UtilsSFG.printIncompatibleWarnings(); + + if (IrisSafeguard.unstablemode) { + Iris.info(""); + Iris.info(C.DARK_GRAY + "--==<" + C.RED + " IMPORTANT " + C.DARK_GRAY + ">==--"); + Iris.info(C.RED + "Iris is running in unstable mode which may cause the following issues:"); + Iris.info(C.DARK_RED + "Server Issues"); + Iris.info(C.RED + "- Server won't boot"); + Iris.info(C.RED + "- Data Loss"); + Iris.info(C.RED + "- Unexpected behavior."); + Iris.info(C.RED + "- And More..."); + Iris.info(C.DARK_RED + "World Issues"); + Iris.info(C.RED + "- Worlds can't load due to corruption."); + Iris.info(C.RED + "- Worlds may slowly corrupt until they can't load."); + Iris.info(C.RED + "- World data loss."); + Iris.info(C.RED + "- And More..."); + Iris.info(C.DARK_RED + "ATTENTION: " + C.RED + "While running Iris in unstable mode, you won't be eligible for support."); + Iris.info(C.DARK_RED + "CAUSE: " + C.RED + UtilsSFG.MSGIncompatibleWarnings()); + + if (IrisSettings.get().getGeneral().bootUnstable) { + Iris.info(C.DARK_RED + "Boot Unstable is set to true, continuing with the startup process."); + } else { + Iris.info(C.DARK_RED + "Go to plugins/iris/settings.json and set ignoreUnstable to true if you wish to proceed."); + while (true) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // Handle interruption + } + } + } + Iris.info(""); + } + } +} diff --git a/core/src/main/java/com/volmit/iris/core/safeguard/UtilsSFG.java b/core/src/main/java/com/volmit/iris/core/safeguard/UtilsSFG.java index caf34bf86..b026f8f02 100644 --- a/core/src/main/java/com/volmit/iris/core/safeguard/UtilsSFG.java +++ b/core/src/main/java/com/volmit/iris/core/safeguard/UtilsSFG.java @@ -1,29 +1,13 @@ package com.volmit.iris.core.safeguard; import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; import com.volmit.iris.util.format.C; public class UtilsSFG { public static void splash(){ - UtilsSFG.unstableMode(); - UtilsSFG.supportedServerSoftware(); - UtilsSFG.printIncompatibleWarnings(); - UtilsSFG.unstablePrompt(); - } - public static void unstableMode(){ - if (IrisSafeguard.unstablemode) { - Iris.safeguard(C.DARK_RED + "Iris is running in Unstable Mode"); - } else { - Iris.safeguard(C.BLUE + "Iris is running Stable"); - } - } - public static void supportedServerSoftware(){ - if (!ServerBootSFG.passedserversoftware) { - Iris.safeguard(C.DARK_RED + "Server is running unsupported server software"); - Iris.safeguard(C.RED + "Supported: Purpur, Pufferfish, Paper, Spigot, Bukkit"); - } + UnstableModeSFG.selectMode(); } + public static void printIncompatibleWarnings(){ // String SupportedIrisVersion = getDescription().getVersion(); //todo Automatic version @@ -31,7 +15,6 @@ public class UtilsSFG { Iris.safeguard(C.BLUE + "0 Conflicts found"); } else { Iris.safeguard(C.DARK_RED + "" + ServerBootSFG.count + " Conflicts found"); - IrisSafeguard.unstablemode = true; if (ServerBootSFG.incompatiblePlugins.get("Multiverse-Core")) { Iris.safeguard(C.RED + "Multiverse"); @@ -62,41 +45,4 @@ public class UtilsSFG { public static String MSGIncompatibleWarnings() { return ServerBootSFG.allIncompatiblePlugins; } - - - public static void unstablePrompt() { - if (IrisSafeguard.unstablemode) { - Iris.info(""); - Iris.info(C.DARK_GRAY + "--==<" + C.RED + " IMPORTANT " + C.DARK_GRAY + ">==--"); - Iris.info(C.RED + "Iris is running in unstable mode what may cause the following issues."); - Iris.info(C.DARK_RED + "Server Issues"); - Iris.info(C.RED + "- Server wont boot"); - Iris.info(C.RED + "- Data Loss"); - Iris.info(C.RED + "- Unexpected behavior."); - Iris.info(C.RED + "- And More.."); - Iris.info(C.DARK_RED + "World Issues"); - Iris.info(C.RED + "- Worlds cant load due to corruption.."); - Iris.info(C.RED + "- Worlds may slowly corrupt till they wont be able to load."); - Iris.info(C.RED + "- World data loss."); - Iris.info(C.RED + "- And More.."); - Iris.info(C.DARK_RED + "ATTENTION:" + C.RED + " While running iris in unstable mode you wont be eligible for support."); - Iris.info(C.DARK_RED + "CAUSE: " + C.RED + MSGIncompatibleWarnings()); - Iris.info(""); - if (IrisSettings.get().getGeneral().bootUnstable) { - Iris.info(C.DARK_RED + "Boot Unstable is set to true, continuing with the startup process."); - } - - if (!IrisSettings.get().getGeneral().isBootUnstable()) { - Iris.info(C.DARK_RED + "Go to plugins/iris/settings.json and set ignoreUnstable to true if you wish to proceed."); - while (true) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - // No - } - } - } - Iris.info(""); - } - } }