From 4e4f5380c589091300bec968939cc7d77c209ad4 Mon Sep 17 00:00:00 2001 From: archon0ne <esemto@gmail.com> Date: Tue, 4 Jul 2023 08:57:25 +0200 Subject: [PATCH] Restructure. Remove unecessary zip archive.. --- game_sptaki.py | 131 ------------------------------- sptakiMO2_Extract_To_MO2_Dir.zip | Bin 2232 -> 0 bytes 2 files changed, 131 deletions(-) delete mode 100644 game_sptaki.py delete mode 100644 sptakiMO2_Extract_To_MO2_Dir.zip diff --git a/game_sptaki.py b/game_sptaki.py deleted file mode 100644 index 33ebfa5..0000000 --- a/game_sptaki.py +++ /dev/null @@ -1,131 +0,0 @@ -# SPT plugin for ModOrganizer, coded by a moron: Me :) -# Note: This is highly incomplete, and will almost deffinitely break. -# Some inconveniences exist, such as the fact that every time you install a mod that does not auto handle, you have to create the user/mods or bepinex/plugins directory manually etc. -# I would like to expand those features, but it will probably happen slowly; I'm not a programmer. -# This script was made by cross referencing several other basic_game extensions. -# I sincerely hope somebody with actual experience comes along and decides to fix it up. But for now, this auto resolves the vast majority of mods on the hub :). -# Discord: Archon001 - -from typing import List, Tuple -from PyQt5.QtCore import QFileInfo -import mobase -from ..basic_game import BasicGame - - -class SPTAKIGame(BasicGame, mobase.IPluginFileMapper): - - Name = "SPT AKI Plugin" - Author = "Archon" - Version = "1.0.1a" - GameName = "SPT AKI" - GameShortName = "sptaki" - GameBinary = "aki.launcher.exe" - GameDataPath = "%GAME_PATH%" - GameSaveExtension = "json" - GameSavesDirectory = "%GAME_PATH%/user/profiles" - - def init(self, organizer: mobase.IOrganizer) -> bool: - super().init(organizer) - self._featureMap[mobase.ModDataChecker] = SPTAKIModDataChecker() - return True - - def executables(self) -> List[mobase.ExecutableInfo]: - execs = super().executables() - print(execs) - - """ - A bat script file to bridge the environment to server and launcher. - """ - workaroundPath = self._gamePath + "/sptvfsbridge.bat" - - try: - workaround = open(workaroundPath, "rt") - except FileNotFoundError: - with open(workaroundPath, "wt") as workaround: - workaround.write( - """ -@echo off -setlocal - -set "launcher_path=aki.launcher.exe" -set "server_path=aki.server.exe" - -REM Launch the server.exe -start "" "%server_path%" - -REM Wait for a moment to ensure the server.exe has started -timeout /t 5 /nobreak >nul - -REM Launch the launcher.exe -start "" "%launcher_path%" - -endlocal -""" - ) - workaround.close() - - execs.append( - mobase.ExecutableInfo("Launch SP Tarkov", QFileInfo(workaroundPath)) - ) - execs.pop(0) - print(execs) - return execs - - -class SPTAKIModDataChecker(mobase.ModDataChecker): - def __init__(self): - super().__init__() - - def get_plugins_and_mods( - self, tree: mobase.IFileTree - ) -> Tuple[List[mobase.FileTreeEntry], List[mobase.FileTreeEntry]]: - - plugins: List[mobase.FileTreeEntry] = [] - mods: List[mobase.FileTreeEntry] = [] - - for e in tree: - if e.isDir() and e.exists("package.json", mobase.IFileTree.FILE): - mods.append(e) - elif e.isFile() and e.suffix().lower() == "dll": - plugins.append(e) - elif e.isDir(): - has_dll = False - for file_entry in e: - if file_entry.isFile() and file_entry.suffix().lower() == "dll": - has_dll = True - break - if has_dll and not e.exists("package.json", mobase.IFileTree.FILE): - plugins.append(e) - - return plugins, mods - - def dataLooksValid( - self, tree: mobase.IFileTree - ) -> mobase.ModDataChecker.CheckReturn: - # Check if we have bepinex/plugins, user/mods folders or .json/.dll - plugins, mods = self.get_plugins_and_mods(tree) - - if not plugins and not mods: - if tree.exists("bepinex/plugins") or tree.exists("user/mods"): - return mobase.ModDataChecker.VALID - else: - return mobase.ModDataChecker.INVALID - - return mobase.ModDataChecker.FIXABLE - - def fix(self, tree: mobase.IFileTree) -> mobase.IFileTree: - plugins, mods = self.get_plugins_and_mods(tree) - toMove = [] - if mods: - for entry in tree: - toMove.append((entry, "/user/mods/")) - for (entry, path) in toMove: - tree.move(entry, path, policy=mobase.IFileTree.MERGE) - - if plugins: - for entry in tree: - toMove.append((entry, "/bepinex/plugins/")) - for (entry, path) in toMove: - tree.move(entry, path, policy=mobase.IFileTree.MERGE) - - return tree diff --git a/sptakiMO2_Extract_To_MO2_Dir.zip b/sptakiMO2_Extract_To_MO2_Dir.zip deleted file mode 100644 index ff8d2b4b07cbb5d5910831921934ec75a352cf3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2232 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