Skip to content

Commit 02761a0

Browse files
committed
Add ModalMapping#getAsAttachmentList
1 parent 573da4b commit 02761a0

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/main/java/net/dv8tion/jda/api/interactions/modals/ModalMapping.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@
2020
import net.dv8tion.jda.annotations.ReplaceWith;
2121
import net.dv8tion.jda.api.components.Component;
2222
import net.dv8tion.jda.api.entities.Mentions;
23+
import net.dv8tion.jda.api.entities.Message;
2324
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
2425
import net.dv8tion.jda.api.utils.data.DataArray;
2526
import net.dv8tion.jda.api.utils.data.DataObject;
27+
import net.dv8tion.jda.internal.entities.EntityBuilder;
2628
import net.dv8tion.jda.internal.entities.SelectMenuMentions;
2729
import net.dv8tion.jda.internal.interactions.InteractionImpl;
2830
import net.dv8tion.jda.internal.utils.EntityString;
@@ -205,6 +207,30 @@ public Mentions getAsMentions()
205207
return new SelectMenuMentions(interaction.getJDA(), interaction.getInteractionEntityBuilder(), interaction.getGuild(), resolved, value.getArray("values"));
206208
}
207209

210+
/**
211+
* Returns this component's value as a list of {@link net.dv8tion.jda.api.entities.Message.Attachment Attachment} objects.
212+
*
213+
* <p>You can check if {@link #getType()} is equal to {@link Component.Type#FILE_UPLOAD FILE_UPLOAD} to see if this method can be used safely!
214+
*
215+
* @throws IllegalStateException
216+
* If this ModalMapping cannot be represented as such.
217+
*
218+
* @return This component's value as a list of {@link net.dv8tion.jda.api.entities.Message.Attachment Attachment} objects
219+
*/
220+
@Nonnull
221+
public List<Message.Attachment> getAsAttachmentList()
222+
{
223+
if (type != Component.Type.FILE_UPLOAD)
224+
typeError("Message.Attachment");
225+
226+
final DataObject attachments = resolved.getObject("attachments");
227+
final EntityBuilder entityBuilder = interaction.getJDA().getEntityBuilder();
228+
return value.getArray("values")
229+
.stream(DataArray::getString)
230+
.map(id -> entityBuilder.createMessageAttachment(attachments.getObject(id)))
231+
.collect(Helpers.toUnmodifiableList());
232+
}
233+
208234
@Override
209235
public String toString()
210236
{

0 commit comments

Comments
 (0)