acknowledge method

  1. @override
Future<void> acknowledge(
  1. {ResponseLevel? level}
)
inherited

Acknowledge the underlying interaction without yet sending a response.

level can be used to change whether the response should be hidden or not.

You might also be interested in:

  • respond, for sending a full response.

Implementation

@override
Future<void> acknowledge({ResponseLevel? level}) async {
  await _acknowledgeLock;

  final lockCompleter = Completer<void>();
  _acknowledgeLock = lockCompleter.future;

  try {
    _responseLevel =
        level ??= _nearestCommandContext.command.resolvedOptions.defaultResponseLevel!;
    if (interaction is MessageComponentInteraction) {
      await (interaction as MessageComponentInteraction).acknowledge(
        isEphemeral: level.hideInteraction,
        updateMessage: !level.preserveComponentMessages,
      );
    } else {
      await interaction.acknowledge(isEphemeral: level.hideInteraction);
    }
  } finally {
    lockCompleter.complete();
    _acknowledgeLock = null;
  }
}