import 'dart:io'; import 'package:libac_dart/argparse/Parser.dart'; import 'package:simplehelpertools/constants.dart'; import 'package:libac_dart/argparse/Args.dart'; import 'package:libac_dart/argparse/Builder.dart'; import 'package:libac_dart/argparse/CLIHelper.dart'; import 'package:libac_dart/argparse/types/Bool.dart'; import 'package:libac_dart/argparse/types/String.dart'; import 'package:libac_dart/nbt/NbtIo.dart'; import 'package:libac_dart/nbt/SnbtIo.dart'; import 'package:libac_dart/nbt/impl/CompoundTag.dart'; String HEADER = "nbt2snbt\nCopyright Piccari Creations 2024-2025 - Tara Piccari\nVersion: ${HelperConsts.NBT_VERSION}\nPurpose: Converts Named Binary Tag files to a more readable Stringified version\n\n"; void main(List args) async { Arguments usage = ArgumentsBuilder.builder() .withArgument(BoolArgument(name: "help")) .withArgument(StringArgument(name: "input", value: "%")) .withArgument(StringArgument( name: "out", value: "%", )) .build(); Arguments defaults = Arguments(); Arguments vArgs = ArgumentParser.parse(args); if (vArgs.hasArg("help") || vArgs.count == 0) { print(HEADER); print(ArgumentHelpers.generateHelpMessage( usage.getArgumentsList(), "nbt2snbt")); } else { if (!vArgs.hasArg("input")) { print(HEADER); print("Missing required argument: input"); exit(1); } String file = vArgs.getArg("input")!.getValue() as String; CompoundTag ct = await NbtIo.read(file) as CompoundTag; if (!vArgs.hasArg("out")) { print(SnbtIo.writeToString(ct)); } else { SnbtIo.writeToFile(vArgs.getArg("out")!.getValue() as String, ct); print("Wrote SNBT output to file"); } } }