BugVault/cli/server.dart

45 lines
1.4 KiB
Dart

import 'dart:io';
import 'package:bugvault/Constants.dart';
import 'package:bugvault/SessionData.dart';
import 'package:bugvault/server/main.dart';
import 'package:libac_dart/nbt/NbtIo.dart';
import 'package:libac_dart/nbt/impl/CompoundTag.dart';
import 'package:libac_dart/packets/packets.dart';
Future<int> main(List<String> args) async {
print("Starting BugVault Server...");
// Check for settings.dat, which should contain all basic information.
// Then check if any data exists. If not, create data hierarchy
File settings = File("settings.dat");
if (await settings.exists()) {
// Load!
SessionData.g_nbtConfiguration =
await NbtIo.read("settings.dat") as CompoundTag;
} else {
SessionData.g_nbtConfiguration = CompoundTag();
print("No existing configuration found");
}
await BugVaultServer.InstantiateSettings(SessionData.g_nbtConfiguration);
print("Loaded settings...");
print("Registering packet handlers...");
await BugVaultServer.RegisterPacketHandlers();
print("Opening data port...");
print("\n\n");
print("=".padLeft(20, "="));
print("BugVault Dedicated Server\nVersion: ${Constants.VERSION}");
print("=".padLeft(20, "="));
while (!SessionData.g_bShutdownPending) {
try {
await PacketServer.start(BugVaultServer.g_iPortNumber);
} catch (E) {}
}
print("Thank you for choosing BugVault! - Shutting down...");
return 0;
}