import 'dart:io'; import 'package:libac_flutter/packets/packets.dart'; import 'package:libac_flutter/utils/IOTools.dart'; import 'package:servermanager/game.dart'; import 'package:servermanager/packets/ClientPackets.dart'; import 'package:servermanager/structs/settings.dart'; void main() async { ClientPackets.register(); // Set up paths Settings settings = Settings(); await settings.Read(); print( "Server Admin Credentials\nUsername: ${settings.serverLoginCreds.username}\nPassword: ${settings.serverLoginCreds.password}"); PathHelper helper = PathHelper(pth: Directory.current.path); helper = helper.resolve("data").mkdir(); PathHelper steamCmd = PathHelper.builder(helper.build()).resolve("steamcmd").mkdir(); PathHelper game = PathHelper.builder(helper.build()).resolve("game").mkdir(); PathHelper proton = PathHelper(pth: helper.build()).resolve("proton").mkdir(); settings.base_path = helper.build(); settings.game_path = game.build(); settings.steamcmd_path = steamCmd.build(); settings.proton_path = proton.build(); print("Setup of local system variables completed"); settings.Write(); print("Wrote settings.dat"); print("Initializing SteamCMD"); await settings.initializeSteamCmd(); print("Initialized Steamcmd and Proton"); print("Checking for game server updates..."); await settings.RunUpdate(); await settings.createModFolderIfNotExists(); await settings.createServerModFolderIfNotExists(); await settings.createModJailFolderIfNotExists(); await settings.writeOutModListFile(); print("Finished checking for game server updates..."); if (settings.FTS) { print( "Aborting server startup procedure, initial server setup is not yet complete\n\n[ You must log in with the ServerManager to continue ]"); } else { try { print("Downloading mods..."); await doDownloadMods(false); print("Scanning mods..."); settings.inst!.mods = await doScanMods(); settings.Write(); print("Starting scheduler..."); await settings.subsys.startScheduler(); } catch (E) { settings.FTS = true; settings.Write(); } } print("Starting up server manager server wrapper"); await PacketServer.start(); print("Server stopping"); }