add auto restart, npc autoload fix
All checks were successful
/ Auto-Build-App (push) Successful in 4m31s

This commit is contained in:
pietru 2025-05-04 19:56:17 +02:00
parent 6b690e16dc
commit dc014a4fe5
2 changed files with 51 additions and 1 deletions

View file

@ -2,8 +2,13 @@ package net.pietru.cookie_utils;
import dev.crmodders.cosmicquilt.api.entrypoint.ModInitializer;
import finalforeach.cosmicreach.GameSingletons;
import finalforeach.cosmicreach.Threads;
import finalforeach.cosmicreach.networking.netty.NettyServer;
import finalforeach.cosmicreach.networking.packets.MessagePacket;
import finalforeach.cosmicreach.networking.server.ServerSingletons;
import net.pietru.cookie_utils.api.Region;
import net.pietru.cookie_utils.kits.Kits;
import net.pietru.cookie_utils.npcs.NpcDef;
import net.pietru.cookie_utils.permissions.Permissions;
import net.pietru.cookie_utils.scripting.ScriptsDB;
import net.pietru.cookie_utils.setups.setupCreator;
@ -12,6 +17,7 @@ import org.quiltmc.loader.api.ModContainer;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;
public class CookieUtils implements ModInitializer {
public static final String MOD_ID = "cookie_utils";
@ -48,6 +54,39 @@ public class CookieUtils implements ModInitializer {
System.out.println("CookieUtils loaded kits...");
GameSingletons.updateObservers.add(new CookieUtilsLogicRunner());
if (prop.auto_restart){
int[] minutes = {1,5,10,15,30};
int[] seconds = {1,2,3,4,5,6,7,8,9,10,15,30};
delayer.schedule(new TimerTask() {
@Override
public void run() {
Threads.runOnMainThread(()->{
ServerSingletons.SERVER.stop();
});
}
}, 1000L*60*60*prop.restart_hours_delay);
for (int i : minutes){
delayer.schedule(new TimerTask() {
@Override
public void run() {
MessagePacket packet = new MessagePacket("[SERVER] Automatic restart in %d minutes...".formatted(i));
ServerSingletons.SERVER.broadcastToAll(packet);
}
}, ((1000L*60*60*prop.restart_hours_delay)-(1000L*60*i)));
}
for (int i : seconds){
delayer.schedule(new TimerTask() {
@Override
public void run() {
try {
MessagePacket packet = new MessagePacket("[SERVER] Automatic restart in %d seconds...".formatted(i));
ServerSingletons.SERVER.broadcastToAll(packet);
} catch (Exception ignored) {}
}
}, ((1000L*60*60*prop.restart_hours_delay)-(1000L*i)));
}
}
}
}

View file

@ -17,6 +17,8 @@ public class prop {
public static Properties panel_prop;
public static int log_level = 1;
public static boolean load_npcs = false;
public static boolean auto_restart = false;
public static int restart_hours_delay = 8;
public static ArrayList<String> get_server_property_array(String key, Object defaultValue) throws IOException {
String txt = (String) get_server_property(key,defaultValue);
@ -65,7 +67,16 @@ public class prop {
if (!panel_prop.containsKey("npc_load_on_start")){
panel_prop.put("npc_load_on_start","false"); save=true;}
load_npcs = Boolean.parseBoolean((String) panel_prop.getOrDefault("log_level","false"));
load_npcs = Boolean.parseBoolean((String) panel_prop.getOrDefault("npc_load_on_start","false"));
if (!panel_prop.containsKey("auto_restart_hours_delay")){
panel_prop.put("auto_restart_hours_delay","8"); save=true;}
restart_hours_delay = Integer.parseInt((String) panel_prop.getOrDefault("auto_restart_hours_delay","8"));
restart_hours_delay = Math.max(1,restart_hours_delay);
if (!panel_prop.containsKey("auto_restart_enabled")){
panel_prop.put("auto_restart_enabled","true"); save=true;}
auto_restart = Boolean.parseBoolean((String) panel_prop.getOrDefault("auto_restart_enabled","true"));
/*