code: public User getOrCreateUser(JsonNode data) {
          long id = Long.parseLong(data.get("id").asText());
          synchronized (users) {
              return getCachedUserById(id).orElseGet(() -> {
                  if (!data.has("username")) {
                      throw new IllegalStateException("Couldn't get or created user. Please inform the developer!");
                  }
                  return new UserImpl(this, data);
              });
          }
      }
docs: Gets a user or creates a new one from the given data.
  
  @param data The json data of the user.
  @return The user.