runAsync method

  1. @override
Future<void> runAsync(
  1. String label,
  2. List<String> args
)

Implementation

@override
Future<void> runAsync(String label, List<String> args) async {
  if (args.length > 2) {
    server.log("Wrong usage, use ${getUsage()}", level: LogLevel.error);
    return;
  }
  final worldName = args.elementAtOrNull(0) ?? defaultWorldName;
  final world = server.getWorld(worldName);
  if (world == null) {
    server.log('Unknown world: $worldName', level: LogLevel.error);
    return;
  }
  final modeName = args.elementAtOrNull(1);
  ItemLocation? mode;
  if (modeName != null && modeName != 'sandbox') {
    mode = ItemLocation.fromString(modeName);
    if (server.assetManager.getModeItem(mode) == null) {
      server.log('Unknown game mode: $modeName', level: LogLevel.error);
      return;
    }
  }
  server.log('Resetting world $worldName...', level: LogLevel.info);
  await world.resetWorld(mode);
  server.log('World $worldName reset successfully.', level: LogLevel.info);
}