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);
            });
        }
    }
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 ) ; } ) ; } }
Gets a user or creates a new one from the given data.

@param data The json data of the user.
@return The user.