start method
- @override
override
Implementation
@override
Future<FabricServer> start() async {
if(this.running) throw("Server already running!");
this._running = true;
List<String> args = ["-Xms${properties.minram}", "-Xmx${properties.maxram}", "-jar",properties.jar_file];
if(!properties.gui) args.add("nogui");
//print('$JAVA ' + args.join(" "));
Completer<FabricServer> completer = new Completer<FabricServer>();
this.process = await Process.start(JAVA, args, workingDirectory: this.serverdir);
process.stdout.transform(utf8.decoder).listen((data) {
this.onStdOut.forEach((e) {
e(data);
});
if((!completer.isCompleted) && new RegExp(r'''Done \([1-9]+\.[1-9]+\w\)! For help, type "help"''').hasMatch(data)) {
completer.complete(this);
}
});
process.exitCode.then((v) {
this._running = false;
this.process = null;
});
process.stderr.transform(utf8.decoder).listen((data) { stderr.write(data); });
return await completer.future;
}