process method
Implementation
void process(String line) {
// TODO: Exceptions are not handled as "UNHANDLED" for some reason. Need to figure that out.
line = line.trim();
if (line.isEmpty) return;
_server.log('> $line', YELLOW);
final List<String> args = line.split(RegExp(r'\s+'));
final String command = args[0];
final CommandHandler? handler = handlers[command];
if (handler != null) {
args.removeAt(0);
line = args.join(' ');
if (args.isNotEmpty && <String>['-h', '--help', '-?', '/?'].contains(args[0])) {
if (handler.usage != null) _server.log('Usage: ${handler.usage}', CYAN);
else _server.log('No usage info available for: $command', CYAN);
}
else {
final bool valid = handler.validator == null || handler.validator!.hasMatch(line);
if (valid) handler.function(line, args);
else if (handler.usage != null) _server.log('Usage: ${handler.usage}', CYAN);
}
}
else _server.log('Unknown command: $command' + (similar[command] != null ? '. Did you mean "${similar[command]}"?' : ''), CYAN);
}