code: public static WebhookMessage files(String name1, Object data1, Object... attachments)
      {
          Checks.notBlank(name1, "Name");
          Checks.notNull(data1,  "Data");
          Checks.notNull(attachments, "Attachments");
          Checks.check(attachments.length % 2 == 0, "Must provide even number of varargs arguments");
          int fileAmount = 1 + attachments.length / 2;
          Checks.check(fileAmount <= WebhookMessageBuilder.MAX_FILES, "Cannot add more than %d files to a message", WebhookMessageBuilder.MAX_FILES);
          MessageAttachment[] files = new MessageAttachment[fileAmount];
          files[0] = convertAttachment(name1, data1);
          for (int i = 0, j = 1; i < attachments.length; j++, i += 2)
          {
              Object name = attachments[i];
              Object data = attachments[i+1];
              if (!(name instanceof String))
                  throw new IllegalArgumentException("Provided arguments must be pairs for (String, Data). Expected String and found " + (name == null ? null : name.getClass().getName()));
              files[j] = convertAttachment((String) name, data);
          }
          return new WebhookMessage(null, null, null, null, false, files);
      }
docs: forcing first pair as we expect at least one entry (Effective Java 3rd. Edition - Item 53)