load static method

Future<SetonixServer> load({
  1. String? worldFile,
  2. SetonixConfig argsConfig = const SetonixConfig(),
})

Implementation

static Future<SetonixServer> load({
  String? worldFile,
  SetonixConfig argsConfig = const SetonixConfig(),
}) async {
  final assetManager = ServerAssetManager();
  final consoler = Consoler(
    defaultProgramConfig: DefaultProgramConfiguration(
      description: "Setonix server",
    ),
  );
  await _runStaticLogZone(
    consoler,
    () => assetManager.init(console: consoler),
  );
  final configManager = ConfigManager(argsConfig: argsConfig);
  await configManager.loadConfig();
  final apiEndpoint = configManager.apiEndpoint;
  UserService userService;
  if (apiEndpoint.isNotEmpty) {
    userService = RemoteUserService(apiEndpoint: apiEndpoint);
  } else {
    final fileService = FileUserService();
    await fileService.setup();
    userService = fileService;
  }
  final userManager = UserManager(
    guestPrefix: configManager.guestPrefix,
    service: userService,
    whitelistEnabled: configManager.whitelistEnabled,
  );
  final challengeManager = configManager.accountRequired
      ? ChallengeManager()
      : null;
  return SetonixServer._(
    consoler,
    assetManager,
    configManager,
    userManager,
    challengeManager,
  );
}