Get wrapper working

This commit is contained in:
zontreck 2024-06-04 21:51:53 -07:00
parent 0ae098318a
commit 26434a9123
19 changed files with 211 additions and 255 deletions

View file

@ -8,7 +8,6 @@ import 'package:libac_dart/nbt/impl/CompoundTag.dart';
import 'package:libac_dart/nbt/impl/StringTag.dart';
import 'package:libac_dart/packets/packets.dart';
import 'package:libac_dart/utils/IOTools.dart';
import 'package:libac_dart/utils/rcon/rcon_api.dart';
import 'package:libac_dart/utils/uuid/NbtUUID.dart';
import 'package:libac_dart/utils/uuid/UUID.dart';
import 'package:servermanager/statemachine.dart';
@ -73,7 +72,7 @@ class Settings {
steamcmd_path = tag.get("steamcmd")!.asString();
game_path = tag.get("game")!.asString();
base_path = tag.get("proton")!.asString();
base_path = tag.get("base")!.asString();
FTS = NbtUtils.readBoolean(tag, "fts"); // First Time Setup.
// FTS should be disabled by the client when sending it back to the server in a C2SApplySettingsPacket
@ -185,6 +184,10 @@ class Settings {
.existsSync();
}
String getWinePrefixPath() {
return PathHelper.builder(base_path).resolve("pfx").build();
}
Future<ProcessResult> RunUpdate({bool valid = true}) {
return Process.run(getSteamCmd(), [
"+@sSteamCmdForcePlatformType",
@ -228,6 +231,7 @@ class Settings {
List<String> paths = [];
for (Mod mod in inst!.mods) {
if (!mod.enabled) continue;
var pth = PathHelper(pth: getModPath())
.resolve("steamapps")
.resolve("workshop")
@ -252,27 +256,35 @@ class Settings {
Future<bool> sendRconCommand(String command) async {
try {
createSocket("127.0.0.1", port: inst!.serverSettings.RconPort);
if (inst!.serverSettings.RconPassword.isNotEmpty)
login(inst!.serverSettings.RconPassword);
return sendCommand(command);
Process.run("/app/rcon", [
"-H",
"127.0.0.1",
"-p",
inst!.serverSettings.RconPassword,
"-P",
"${inst!.serverSettings.RconPort}",
command
]);
return true;
} catch (E) {
// Sending rcon failed
return false;
} finally {
close();
}
}
Future<void> initializeWine() async {
await runWinetrick("win10");
await runWinetrick("w_workaround_wine_bug-50894");
await runWinetrick("cmd");
await runWinetrick("vcrun2013");
await runWinetrick("vcrun2015");
await runWinetrick("vcrun2017");
await runWinetrick("vcrun2019");
await runWinetrick("vcrun2022");
await runWinetrick("corefonts");
await runWinetrick("andale");
await runWinetrick("allfonts");
await runWinetrick("gdiplus");
await runWinetrick("dxsdk_jun2010");
}
Future<void> initializeSteamCmd() async {