respond method
- MessageBuilder builder,
- {ResponseLevel? level}
inherited
Send a response to the command.
level
can be set to change how the response is set. If is is not passed,
CommandOptions.defaultResponseLevel is used instead.
You might also be interested in:
- InteractionInteractiveContext.acknowledge, for acknowledging interactions without responding.
Implementation
@override
Future<Message> respond(MessageBuilder builder, {ResponseLevel? level}) async {
if (_delegate != null) {
return _delegate!.respond(builder, level: level);
}
level ??= _nearestCommandContext.command.resolvedOptions.defaultResponseLevel!;
if (level.isDm) {
final dmChannel = await client.users.createDm(user.id);
return dmChannel.sendMessage(builder);
}
if (builder.replyId == null) {
builder.replyId = message.id;
if (level.mention case final shouldMention?) {
final allowedMentions = builder.allowedMentions ?? AllowedMentions();
final replyMentions = AllowedMentions(repliedUser: shouldMention);
builder.allowedMentions =
shouldMention ? allowedMentions | replyMentions : allowedMentions & replyMentions;
}
}
return channel.sendMessage(builder);
}