Attempt to fix a problem where a mod update might fail post-restart.
NOTE: Moves the jail folder where the mods folder used to be. The Jail folder is then recreated after the next restart.
This commit is contained in:
parent
89d5439b8d
commit
da7b56ad97
4 changed files with 33 additions and 2 deletions
|
@ -252,10 +252,36 @@ class StateMachine {
|
|||
if (settings.inst!.pterodactylMode) {
|
||||
// Shut down the server processes now
|
||||
PacketServer.socket!.close();
|
||||
|
||||
// Check if the shutdown reason was for a Mod Update
|
||||
if (SessionData.shutDownReason == ShutDownReason.MODS) {
|
||||
// Delete the old Mods Folder
|
||||
Directory mods = Directory(settings.getModPath());
|
||||
await mods.delete(recursive: true);
|
||||
Directory jail = Directory(settings.getModJailPath());
|
||||
await jail.rename(settings.getModPath());
|
||||
|
||||
File modsTxt = settings.getModListFile();
|
||||
await modsTxt.delete();
|
||||
}
|
||||
|
||||
exit(0);
|
||||
} else {
|
||||
resetKillswitch();
|
||||
SessionData.timer = settings.inst!.timer.time.copy();
|
||||
|
||||
// Check if the shutdown reason was for a Mod Update
|
||||
if (SessionData.shutDownReason == ShutDownReason.MODS) {
|
||||
// Delete the old Mods Folder
|
||||
Directory mods = Directory(settings.getModPath());
|
||||
await mods.delete(recursive: true);
|
||||
Directory jail = Directory(settings.getModJailPath());
|
||||
await jail.rename(settings.getModPath());
|
||||
|
||||
File modsTxt = settings.getModListFile();
|
||||
await modsTxt.delete();
|
||||
}
|
||||
|
||||
await pollModUpdates();
|
||||
changeState(States.PreStart);
|
||||
SessionData.enableRestartTimer = settings.inst!.timer.enabled;
|
||||
|
@ -383,6 +409,7 @@ class StateMachine {
|
|||
print(
|
||||
"Scheduling restart for mod updates: ${updatedMods.join(', ')}");
|
||||
SessionData.enableRestartTimer = true;
|
||||
SessionData.shutDownReason = ShutDownReason.MODS;
|
||||
|
||||
// Send discord alert!
|
||||
DiscordHookHelper.sendWebHook(
|
||||
|
|
|
@ -47,4 +47,8 @@ class SessionData {
|
|||
static List<String> IE_SNAPSHOTS = [];
|
||||
|
||||
static bool IS_FIRST_MOD_CHECK = true;
|
||||
|
||||
static ShutDownReason shutDownReason = ShutDownReason.NORMAL;
|
||||
}
|
||||
|
||||
enum ShutDownReason { MODS, NORMAL }
|
||||
|
|
|
@ -112,7 +112,7 @@ class Settings {
|
|||
Future<void> Read() async {
|
||||
if (!server) return;
|
||||
try {
|
||||
var tag = await NbtIo.read(ABSOLUTE_PATH);
|
||||
var tag = await NbtIo.read(ABSOLUTE_PATH) as CompoundTag;
|
||||
|
||||
inst = SettingsEntry.deserialize(tag.get("entry") as CompoundTag);
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
|
|||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||
# In Windows, build-name is used as the major, minor, and patch parts
|
||||
# of the product and file versions while build-number is used as the build suffix.
|
||||
version: 1.1.010425+1753
|
||||
version: 1.1.030225+1906
|
||||
|
||||
environment:
|
||||
sdk: ">=3.1.4 <4.0.0"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue