respond method
Future<InteractionCallbackResponse?>
respond(
- Builder<
Message> builder, { - bool? updateMessage,
- @Deprecated('Use MessageBuilder.flags instead') bool? isEphemeral,
- bool? withResponse,
override
Send a response to this interaction.
Implementation
@override
Future<InteractionCallbackResponse?> respond(
Builder<Message> builder, {
bool? updateMessage,
@Deprecated('Use MessageBuilder.flags instead') bool? isEphemeral,
bool? withResponse,
}) async {
assert(updateMessage != true || isEphemeral != true, 'Cannot set isEphemeral to true if updateMessage is set to true');
assert(updateMessage != true || builder is MessageUpdateBuilder, 'builder must be a MessageUpdateBuilder if updateMessage is true');
assert(updateMessage == true || builder is MessageBuilder, 'builder must be a MessageBuilder if updateMessage is null or false');
if (_didRespond) {
throw AlreadyRespondedError(this);
}
if (!_didAcknowledge) {
_didAcknowledge = true;
_didRespond = true;
_didUpdateMessage = updateMessage;
_wasEphemeral = isEphemeral;
if (updateMessage == true) {
return manager.createResponse(id, token, InteractionResponseBuilder.updateMessage(builder as MessageUpdateBuilder), withResponse: withResponse);
} else {
// ignore: deprecated_member_use_from_same_package
return manager.createResponse(id, token, InteractionResponseBuilder.channelMessage(builder as MessageBuilder, isEphemeral: isEphemeral),
withResponse: withResponse);
}
} else {
assert(updateMessage == _didUpdateMessage || updateMessage == null, 'Cannot change the value of updateMessage between acknowledge and respond');
assert(isEphemeral == _wasEphemeral || isEphemeral == null, 'Cannot change the value of isEphemeral between acknowledge and respond');
_didRespond = true;
if (_didUpdateMessage == true) {
await manager.updateOriginalResponse(token, builder as MessageUpdateBuilder);
} else {
await manager.createFollowup(token, builder as MessageBuilder);
}
}
return null;
}