45 lines
1.4 KiB
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;
|
|
}
|