9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2026-01-04 15:41:30 +00:00

Iris lets the user ingame know when unstable.

This commit is contained in:
RePixelatedMC
2024-05-22 13:28:56 +02:00
parent bef4c0497f
commit 6b2ba74237
8 changed files with 46 additions and 32 deletions

View File

@@ -34,6 +34,7 @@ import java.io.IOException;
@Data
public class IrisSettings {
public static IrisSettings settings;
private IrisSafeGuard safeguard = new IrisSafeGuard();
private IrisSettingsGeneral general = new IrisSettingsGeneral();
private IrisSettingsWorld world = new IrisSettingsWorld();
private IrisSettingsGUI gui = new IrisSettingsGUI();
@@ -103,6 +104,12 @@ public class IrisSettings {
}
}
@Data
public static class IrisSafeGuard {
public boolean ignoreBootMode = false;
public boolean userUnstableWarning = true;
}
@Data
public static class IrisSettingsAutoconfiguration {
public boolean configureSpigotTimeoutTime = true;
@@ -147,7 +154,6 @@ public class IrisSettings {
@Data
public static class IrisSettingsGeneral {
public boolean ignoreBootMode = false;
public boolean commandSounds = true;
public boolean debug = false;
public boolean disableNMS = false;

View File

@@ -153,13 +153,14 @@ public class CommandDeveloper implements DecreeExecutor {
public void packBenchmark(
@Param(description = "The pack to bench", aliases = {"pack"})
IrisDimension dimension,
@Param(description = "Headless", defaultValue = "false")
@Param(description = "Headless", defaultValue = "true")
boolean headless,
@Param(description = "GUI", defaultValue = "false")
boolean gui
) {
Iris.info("test");
IrisPackBenchmarking benchmark = new IrisPackBenchmarking(dimension, 1, headless, gui);
benchmark.runBenchmark();
}

View File

@@ -98,24 +98,7 @@ public class CommandIris implements DecreeExecutor {
@Param(description = "If it should convert the dimension to match the vanilla height system.", defaultValue = "false")
boolean vanillaheight
) {
if(sender() instanceof Player) {
if (incompatibilities.get("Multiverse-Core")) {
sender().sendMessage(C.RED + "Your server has an incompatibility that may corrupt all worlds on the server if not handled properly.");
sender().sendMessage(C.RED + "it is strongly advised for you to take action. see log for full detail");
sender().sendMessage(C.RED + "----------------------------------------------------------------");
sender().sendMessage(C.RED + "Command ran: /iris create");
sender().sendMessage(C.RED + UtilsSFG.MSGIncompatibleWarnings());
sender().sendMessage(C.RED + "----------------------------------------------------------------");
}
if (IrisSafeguard.instance.unstablemode && !incompatibilities.get("Multiverse-Core")) {
sender().sendMessage(C.RED + "Your server is experiencing an incompatibility with the Iris plugin.");
sender().sendMessage(C.RED + "Please rectify this problem to avoid further complications.");
sender().sendMessage(C.RED + "----------------------------------------------------------------");
sender().sendMessage(C.RED + "Command ran: /iris create");
sender().sendMessage(C.RED + UtilsSFG.MSGIncompatibleWarnings());
sender().sendMessage(C.RED + "----------------------------------------------------------------");
}
}
if (name.equals("iris")) {
sender().sendMessage(C.RED + "You cannot use the world name \"iris\" for creating worlds as Iris uses this directory for studio worlds.");
sender().sendMessage(C.RED + "May we suggest the name \"IrisWorld\" instead?");

View File

@@ -3,11 +3,14 @@ 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.safeguard.handler.onCommandWarning;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.format.C;
import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.misc.getHardware;
import static org.bukkit.Bukkit.getServer;
public class IrisSafeguard {
public static IrisSafeguard instance;
public boolean acceptUnstable = false;
@@ -20,7 +23,8 @@ public class IrisSafeguard {
}
public void IrisSafeguardSystem() {
acceptUnstable = IrisSettings.get().getGeneral().ignoreBootMode;
acceptUnstable = IrisSettings.get().getSafeguard().ignoreBootMode;
getServer().getPluginManager().registerEvents(new onCommandWarning(), Iris.instance);
Iris.info("Enabled Iris SafeGuard");
ServerBootSFG.BootCheck();
}

View File

@@ -46,7 +46,7 @@ public class ModesSFG {
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().ignoreBootMode) {
if (IrisSettings.get().getSafeguard().ignoreBootMode) {
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 ignoreBootMode to true if you wish to proceed.");

View File

@@ -1,8 +0,0 @@
package com.volmit.iris.core.safeguard;
public class PerformanceSFG {
public static void calculatePerformance() {
}
}

View File

@@ -0,0 +1,27 @@
package com.volmit.iris.core.safeguard.handler;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.safeguard.IrisSafeguard;
import com.volmit.iris.util.format.C;
import com.volmit.iris.util.plugin.VolmitSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
public class onCommandWarning implements Listener {
@EventHandler
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
if (IrisSettings.get().getSafeguard().userUnstableWarning && IrisSafeguard.instance.unstablemode) {
String command = event.getMessage();
Player player = event.getPlayer();
if (command.startsWith("/iris")) {
VolmitSender sender = new VolmitSender(player);
boolean perm = sender.hasPermission("iris.all") || sender.isOp();
if (perm) {
sender.sendMessage(C.DARK_GRAY + "[" + C.RED + "!" + C.DARK_GRAY+ "]" + C.DARK_RED + "Iris is running unstably! Please resolve this.");
}
}
}
}
}

View File

@@ -56,10 +56,9 @@ public class IrisPackBenchmarking {
this.radius = r;
this.headless = headless;
this.gui = gui;
runBenchmark();
}
private void runBenchmark() {
public void runBenchmark() {
this.stopwatch = new PrecisionStopwatch();
ExecutorService service = Executors.newSingleThreadExecutor();
service.submit(() -> {
@@ -138,6 +137,7 @@ public class IrisPackBenchmarking {
private Engine createBenchmark(){
try {
if (headless) {
Iris.info("Using headless benchmark!");
IrisWorld world = IrisWorld.builder()
.name("benchmark")
.minHeight(IrisDimension.getMinHeight())
@@ -154,6 +154,7 @@ public class IrisPackBenchmarking {
var dim = data.getDimensionLoader().load(IrisDimension.getLoadKey());
return new IrisEngine(new EngineTarget(world, dim, data), false);
}
Iris.info("Using Standard benchmark!");
return IrisToolbelt.access(IrisToolbelt.createWorld()
.dimension(IrisDimension.getLoadKey())
.name("benchmark")