Adds a Request Restart switch
This commit is contained in:
parent
bdebdf89d5
commit
fa26d2f914
2 changed files with 20 additions and 2 deletions
|
@ -13,6 +13,7 @@ import 'package:libac_dart/utils/uuid/NbtUUID.dart';
|
||||||
import 'package:libac_dart/utils/uuid/UUID.dart';
|
import 'package:libac_dart/utils/uuid/UUID.dart';
|
||||||
import 'package:servermanager/statemachine.dart';
|
import 'package:servermanager/statemachine.dart';
|
||||||
import 'package:servermanager/structs/SessionData.dart';
|
import 'package:servermanager/structs/SessionData.dart';
|
||||||
|
import 'package:servermanager/structs/discordHookHelper.dart';
|
||||||
import 'package:servermanager/structs/settings.dart';
|
import 'package:servermanager/structs/settings.dart';
|
||||||
|
|
||||||
class ClientPackets {
|
class ClientPackets {
|
||||||
|
@ -246,6 +247,8 @@ class C2SRequestSettingsPacket implements IPacket {
|
||||||
|
|
||||||
class C2SUploadSettingsPacket implements IPacket {
|
class C2SUploadSettingsPacket implements IPacket {
|
||||||
CompoundTag srvSettings = CompoundTag();
|
CompoundTag srvSettings = CompoundTag();
|
||||||
|
bool performRestart = false;
|
||||||
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void decodeJson(String params) {}
|
void decodeJson(String params) {}
|
||||||
|
@ -269,6 +272,7 @@ class C2SUploadSettingsPacket implements IPacket {
|
||||||
Tag encodeTag() {
|
Tag encodeTag() {
|
||||||
CompoundTag tag = CompoundTag();
|
CompoundTag tag = CompoundTag();
|
||||||
tag.put("settings", Settings().serialize());
|
tag.put("settings", Settings().serialize());
|
||||||
|
NbtUtils.writeBoolean(tag, "restart", performRestart);
|
||||||
|
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
@ -295,9 +299,15 @@ class C2SUploadSettingsPacket implements IPacket {
|
||||||
settings.deserialize(srvSettings);
|
settings.deserialize(srvSettings);
|
||||||
settings.Write();
|
settings.Write();
|
||||||
|
|
||||||
|
if(!performRestart){
|
||||||
|
DiscordHookHelper.sendWebHook(settings.inst!.discord, DiscordHookProps.ONLINE_ALERT, "Server Wrapper Settings", "Server wrapper settings have been updated.\n\n${performRestart ? "A restart has been requested" : "A restart is not needed"}");
|
||||||
|
|
||||||
|
return PacketResponse.nil;
|
||||||
|
}
|
||||||
|
|
||||||
// Check if server is running, if not, stop immediately
|
// Check if server is running, if not, stop immediately
|
||||||
// If server is running, schedule restart for 1 minute and send a alert to all players, then perform stop or restart depending on if running in Pterodactyl Compatibility mode
|
// If server is running, schedule restart for 1 minute and send a alert to all players, then perform stop or restart depending on if running in Pterodactyl Compatibility mode
|
||||||
SessionData.shutdownMessage = "Server wrapper updated. Restart required.";
|
SessionData.shutdownMessage = "Server wrapper restart";
|
||||||
SessionData.timer.apply(60);
|
SessionData.timer.apply(60);
|
||||||
SessionData.CURRENT_INTERVAL = WarnIntervals.NONE;
|
SessionData.CURRENT_INTERVAL = WarnIntervals.NONE;
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ class HomePage extends StatefulWidget {
|
||||||
|
|
||||||
class HomePageState extends State<HomePage> {
|
class HomePageState extends State<HomePage> {
|
||||||
Settings settings = Settings();
|
Settings settings = Settings();
|
||||||
|
bool requireRestart=false;
|
||||||
|
|
||||||
HomePageState({required this.settings});
|
HomePageState({required this.settings});
|
||||||
|
|
||||||
|
@ -112,15 +113,22 @@ class HomePageState extends State<HomePage> {
|
||||||
|
|
||||||
C2SUploadSettingsPacket upload = C2SUploadSettingsPacket();
|
C2SUploadSettingsPacket upload = C2SUploadSettingsPacket();
|
||||||
upload.srvSettings = settings.serialize();
|
upload.srvSettings = settings.serialize();
|
||||||
|
upload.performRestart=requireRestart;
|
||||||
|
|
||||||
await settings.client!.send(upload, false);
|
await settings.client!.send(upload, false);
|
||||||
Settings.Clear();
|
Settings.Clear();
|
||||||
|
|
||||||
setState(() {});
|
setState(() {});
|
||||||
|
|
||||||
Navigator.pop(context);
|
if(requireRestart)
|
||||||
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
, SwitchListTile(value: requireRestart, onChanged: (V) {
|
||||||
|
setState(() {
|
||||||
|
requireRestart = V;
|
||||||
|
});
|
||||||
|
}, title: Text("Perform Restart"), subtitle: Text("Whether a immediate server restart should be performed in combination with this wrapper settings update"),)
|
||||||
],
|
],
|
||||||
)),
|
)),
|
||||||
);
|
);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue