diff --git a/lib/src/utils/builders/message_builder.dart b/lib/src/utils/builders/message_builder.dart index 32f10cd7d..95b7ef859 100644 --- a/lib/src/utils/builders/message_builder.dart +++ b/lib/src/utils/builders/message_builder.dart @@ -29,7 +29,7 @@ class MessageBuilder { ReplyBuilder? replyBuilder; /// Embed to include in message - List embeds = []; + List? embeds; /// [AllowedMentions] object to control mentions in message AllowedMentions? allowedMentions; @@ -77,9 +77,11 @@ class MessageBuilder { /// Allows to add embed to message. /// Warning: Completes future synchronously! FutureOr addEmbed(FutureOr Function(EmbedBuilder embed) builder) async { + embeds ??= []; + final e = EmbedBuilder(); await builder(e); - embeds.add(e); + embeds!.add(e); } /// Appends clear character. Can be used to skip first line in message body. @@ -150,14 +152,14 @@ class MessageBuilder { Future send(ISend entity) => entity.sendMessage(this); /// Returns if this instance of message builder can be used when editing message - bool canBeUsedAsNewMessage() => content.isNotEmpty || embeds.isNotEmpty || (files != null && files!.isNotEmpty); + bool canBeUsedAsNewMessage() => content.isNotEmpty || embeds != null || (files != null && files!.isNotEmpty); RawApiMap build([AllowedMentions? defaultAllowedMentions]) { allowedMentions ??= defaultAllowedMentions; return { if (content.isNotEmpty) "content": content.toString(), - if (embeds.isNotEmpty) "embeds": [for (final e in embeds) e.build()], + if (embeds != null) "embeds": [for (final e in embeds!) e.build()], if (allowedMentions != null) "allowed_mentions": allowedMentions!.build(), if (replyBuilder != null) "message_reference": replyBuilder!.build(), if (tts != null) "tts": tts,