From 371ba021aee669bf24c78ec8470f9cc578a1d936 Mon Sep 17 00:00:00 2001 From: anima Date: Sun, 22 Sep 2024 00:09:50 +0200 Subject: [PATCH] add save game --- SatiAPI.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/SatiAPI.py b/SatiAPI.py index f14a414..02369ad 100644 --- a/SatiAPI.py +++ b/SatiAPI.py @@ -16,7 +16,7 @@ urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) class SatiAPI: """A API wrapper for Satisfactory dedicated server""" __AUTHOR__ = 'anima' - __VERSION__ = '0.13.1' + __VERSION__ = '0.14.0' def __init__(self, host: str = None, port: int = 7777, token: str = None, conffile: str = 'conf.yml', logfile: str = 'SatiAPI.log', loglevel: int = 20) -> None: """create a wrapper for satisfactory dedicated server @@ -439,6 +439,22 @@ class SatiAPI: response = self.__query('CreateNewGame', data, True) return response + def save_game(self, savename: str = None): + """Saves the currently loaded session into the new save game file named as the argument. Requires Admin privileges. SaveName might be changed to satisfy file system restrictions on file names. Function does not return any data on success. + + :param savename: Name of the save game file to create. Passed name might be sanitized (default: Sessionname_APISave) + :type savename: string + :return: return true if save successfull init + :rtype: bool + """ + if savename is None: + state = self.get_status() + savename = f'{state["data"]["serverGameState"]["activeSessionName"]}_APISave' + data = dict() + data['SaveName'] = savename + + return self.__query('SaveGame', data, True) + def get_server_options(self) -> dict: """Retrieves currently applied server options and server options that are still pending application (because of needing session or server restart) Does not require input parameters. @@ -480,4 +496,4 @@ if __name__ == "__main__": print() print(sati.get_sessions()) print() - print(sati.create_new_game('MyWorld', 2)) \ No newline at end of file + print(sati.save_game('MySave')) \ No newline at end of file