Release 9.2.0

This commit is contained in:
Alessandro Autiero
2024-07-06 18:43:52 +02:00
parent 45b8629207
commit e3b8d7d182
91 changed files with 3871 additions and 3132 deletions

View File

@@ -1,15 +1,17 @@
import 'dart:io';
import 'dart:isolate';
import 'package:version/version.dart';
class FortniteBuild {
final String identifier;
final String version;
final Version version;
final String link;
final bool available;
FortniteBuild({
required this.identifier,
required this.version,
required this.link
required this.link,
required this.available
});
}

View File

@@ -0,0 +1,47 @@
class FortniteServer {
final String id;
final String name;
final String description;
final String author;
final String ip;
final String version;
final String? password;
final DateTime timestamp;
final bool discoverable;
FortniteServer({
required this.id,
required this.name,
required this.description,
required this.author,
required this.ip,
required this.version,
required this.password,
required this.timestamp,
required this.discoverable
});
factory FortniteServer.fromJson(json) => FortniteServer(
id: json["id"],
name: json["name"],
description: json["description"],
author: json["author"],
ip: json["ip"],
version: json["version"],
password: json["password"],
timestamp: json.containsKey("json") ? DateTime.parse(json["timestamp"]) : DateTime.now(),
discoverable: json["discoverable"] ?? false
);
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"description": description,
"author": author,
"ip": ip,
"version": version,
"password": password,
"timestamp": timestamp.toString(),
"discoverable": discoverable
};
}

View File

@@ -1,17 +1,22 @@
import 'dart:io';
import 'package:version/version.dart';
class FortniteVersion {
String name;
Version content;
Directory location;
FortniteVersion.fromJson(json)
: name = json["name"],
: content = Version.parse(json["content"]),
location = Directory(json["location"]);
FortniteVersion({required this.name, required this.location});
FortniteVersion({required this.content, required this.location});
Map<String, dynamic> toJson() => {
'name': name,
'content': content.toString(),
'location': location.path
};
@override
bool operator ==(Object other) => other is FortniteVersion && this.content == other.content;
}

View File

@@ -13,6 +13,7 @@ class GameInstance {
bool launched;
bool movedToVirtualDesktop;
bool tokenError;
bool killed;
GameInstance? child;
GameInstance({
@@ -22,9 +23,19 @@ class GameInstance {
required this.eacPid,
required this.serverType,
required this.child
}): tokenError = false, launched = false, movedToVirtualDesktop = false, injectedDlls = [];
}): tokenError = false, killed = false, launched = false, movedToVirtualDesktop = false, injectedDlls = [];
void kill() {
GameInstance? child = this;
while(child != null) {
child._kill();
child = child.child;
}
}
void _kill() {
launched = true;
killed = true;
Process.killPid(gamePid, ProcessSignal.sigabrt);
if(launcherPid != null) {
Process.killPid(launcherPid!, ProcessSignal.sigabrt);
@@ -33,19 +44,6 @@ class GameInstance {
Process.killPid(eacPid!, ProcessSignal.sigabrt);
}
}
bool get nestedHosting {
GameInstance? child = this;
while(child != null) {
if(child.serverType != null) {
return true;
}
child = child.child;
}
return false;
}
}
enum GameServerType {

View File

@@ -4,6 +4,11 @@ class ServerResult {
final StackTrace? stackTrace;
ServerResult(this.type, {this.error, this.stackTrace});
@override
String toString() {
return 'ServerResult{type: $type, error: $error, stackTrace: $stackTrace}';
}
}
enum ServerResultType {
@@ -21,7 +26,8 @@ enum ServerResultType {
freePortError,
pingingRemote,
pingingLocal,
pingError;
pingError,
processError;
bool get isError => name.contains("Error");