process method

void process(
  1. String line
)

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);
}