init method Null safety

Future<void> init()

Implementation

Future<void> init () async {
  await environment.load();

  Http http = Http(baseUrl: 'https://discord.com/api');
  http.defineHeader(header: 'Content-Type', value: 'application/json');
  container.bind((_) => http);

  String? report = environment.get('REPORTER');
  if (report != null) {
    ReporterManager reporter = ReporterManager(Directory(join(Directory.current.path, 'logs')));
    reporter.reportLevel = report;

    container.bind((_) => reporter);
  }

  String? token = environment.get('APP_TOKEN');
  if (token == null) {
    throw TokenException(
      prefix: 'MISSING TOKEN',
      cause: 'APP_TOKEN is not defined in your environment'
    );
  }

  await modules.load(this);
  await plugins.load();

  final String? shardsCount = environment.get('SHARDS_COUNT');

  ShardManager shardManager = ShardManager(http, token, intents.list);
  shardManager.start(shardsCount: (shardsCount != null ? int.tryParse(shardsCount) : null));
}