+ reserveUsername(candidates);
+ }
+
+ public void reserveExactUsername(String username) throws IOException, BaseUsernameException {
+ final var currentUsername = account.getUsername();
+ if (currentUsername != null) {
+ if (currentUsername.equals(username)) {
+ try {
+ refreshCurrentUsername();
+ return;
+ } catch (IOException | BaseUsernameException e) {
+ logger.warn("[reserveUsername] Failed to refresh current username, trying to claim new username");
+ }
+ }
+ }
+
+ final var candidates = List.of(new Username(username));
+ reserveUsername(candidates);
+ }
+
+ private void reserveUsername(final List<Username> candidates) throws IOException {