code: @CheckReturnValue
      public MessageAction addFile(final InputStream data, final String name)
      {
          checkEdit();
          Checks.notNull(data, "Data");
          Checks.notBlank(name, "Name");
          checkFileAmount();
          checkPermission(Permission.MESSAGE_ATTACH_FILES);
          files.put(name, data);
          return this;
      }
docs: Adds the provided {@link java.io.InputStream InputStream} as file data.
  <br><u>The stream will be closed upon execution!</u>
  
  <p>To reset all files use {@link #clearFiles()}
  
  @param  data
  The InputStream that will be interpreted as file data
  @param  name
  The file name that should be used to interpret the type of the given data
  using the file-name extension. This name is similar to what will be visible
  through {@link net.dv8tion.jda.core.entities.Message.Attachment#getFileName() Message.Attachment.getFileName()}
  
  @throws java.lang.IllegalStateException
  If the file limit of {@value Message#MAX_FILE_AMOUNT} has been reached prior to calling this method,
  or if this MessageAction will perform an edit operation on an existing Message (see {@link #isEdit()})
  @throws java.lang.IllegalArgumentException
  If the provided data is {@code null} or the provided name is blank or {@code null}
  @throws net.dv8tion.jda.core.exceptions.InsufficientPermissionException
  If this is targeting a TextChannel and the currently logged in account does not have
  {@link net.dv8tion.jda.core.Permission#MESSAGE_ATTACH_FILES Permission.MESSAGE_ATTACH_FILES}
  
  @return Updated MessageAction for chaining convenience