- if (inJson) {
- final JsonWriter jsonWriter = new JsonWriter(System.out);
-
- List<JsonUserStatus> jsonUserStatuses = registered.entrySet()
- .stream()
- .map(entry -> new JsonUserStatus(entry.getKey(), entry.getValue()))
- .collect(Collectors.toList());
-
- try {
- jsonWriter.write(jsonUserStatuses);
- } catch (IOException e) {
- logger.error("Failed to write json object: {}", e.getMessage());
- return 3;
+ switch (outputWriter) {
+ case JsonWriter writer -> {
+ var jsonUserStatuses = Stream.concat(registered.entrySet().stream().map(entry -> {
+ final var number = entry.getValue().number();
+ final var uuid = entry.getValue().uuid();
+ return new JsonUserStatus(entry.getKey(),
+ number,
+ null,
+ uuid == null ? null : uuid.toString(),
+ uuid != null);
+ }), registeredUsernames.entrySet().stream().map(entry -> {
+ final var username = entry.getValue().username();
+ final var uuid = entry.getValue().uuid();
+ return new JsonUserStatus(entry.getKey(),
+ null,
+ username,
+ uuid == null ? null : uuid.toString(),
+ uuid != null);
+ })).toList();
+ writer.write(jsonUserStatuses);