files = data.getFiles().stream()
+ .map(f -> FileUpload.fromData(f.getData(), f.getName()).setDescription(f.getDescription()))
+ .collect(Collectors.toList());
return setContent(data.getContent())
.setEmbeds(data.getEmbeds())
.setTTS(data.isTTS())
- .setComponents(data.getComponents())
- .setFiles(data.getFiles());
+ .setComponents(layoutComponents)
+ .setFiles(files);
}
@Nonnull
From 81fc096fb87ca810e4081d4713955c848342cb47 Mon Sep 17 00:00:00 2001
From: freya02 <41875020+freya022@users.noreply.github.com>
Date: Sat, 5 Nov 2022 20:53:08 +0100
Subject: [PATCH 2/7] Don't copy files
---
.../jda/api/utils/messages/MessageCreateRequest.java | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
index d00590ae45..0c7ff6725b 100644
--- a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
+++ b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
@@ -313,6 +313,8 @@ default R addFiles(@Nonnull FileUpload... files)
/**
* Applies the provided {@link MessageCreateData} to this request.
*
+ * Note that files will not be copied.
+ *
* @param data
* The message create data to apply
*
@@ -329,14 +331,10 @@ default R applyData(@Nonnull MessageCreateData data)
final List layoutComponents = data.getComponents().stream()
.map(LayoutComponent::createCopy)
.collect(Collectors.toList());
- final List files = data.getFiles().stream()
- .map(f -> FileUpload.fromData(f.getData(), f.getName()).setDescription(f.getDescription()))
- .collect(Collectors.toList());
return setContent(data.getContent())
.setEmbeds(data.getEmbeds())
.setTTS(data.isTTS())
- .setComponents(layoutComponents)
- .setFiles(files);
+ .setComponents(layoutComponents);
}
@Nonnull
From d9363bc35392555d528aa4f4ea9f4c649442ca0c Mon Sep 17 00:00:00 2001
From: freya02 <41875020+freya022@users.noreply.github.com>
Date: Sun, 6 Nov 2022 15:10:15 +0100
Subject: [PATCH 3/7] Update
src/main/java/net/dv8tion/jda/api/utils/FileUpload.java
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Florian Spieß
---
src/main/java/net/dv8tion/jda/api/utils/FileUpload.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/main/java/net/dv8tion/jda/api/utils/FileUpload.java b/src/main/java/net/dv8tion/jda/api/utils/FileUpload.java
index 1403801566..e5ee426d30 100644
--- a/src/main/java/net/dv8tion/jda/api/utils/FileUpload.java
+++ b/src/main/java/net/dv8tion/jda/api/utils/FileUpload.java
@@ -306,6 +306,7 @@ public String getName()
*
* @return The description
*/
+ @Nullable
public String getDescription()
{
return description;
From 870f8dba42e6ea6c841dbeee52b54a0af9375963 Mon Sep 17 00:00:00 2001
From: freya02 <41875020+freya022@users.noreply.github.com>
Date: Sun, 6 Nov 2022 15:10:22 +0100
Subject: [PATCH 4/7] Update
src/main/java/net/dv8tion/jda/api/interactions/components/ActionRow.java
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Florian Spieß
---
.../net/dv8tion/jda/api/interactions/components/ActionRow.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/net/dv8tion/jda/api/interactions/components/ActionRow.java b/src/main/java/net/dv8tion/jda/api/interactions/components/ActionRow.java
index 4af2c42d0e..3ca53aa8fc 100644
--- a/src/main/java/net/dv8tion/jda/api/interactions/components/ActionRow.java
+++ b/src/main/java/net/dv8tion/jda/api/interactions/components/ActionRow.java
@@ -271,7 +271,7 @@ public ActionRow asEnabled()
@Nonnull
@Override
- public LayoutComponent createCopy()
+ public ActionRow createCopy()
{
return ActionRow.of(components);
}
From 1d387911ca179606bdd0bc72d963f34cc4b0537a Mon Sep 17 00:00:00 2001
From: freya02 <41875020+freya022@users.noreply.github.com>
Date: Sun, 6 Nov 2022 15:13:11 +0100
Subject: [PATCH 5/7] Add back #setFiles idk
---
.../dv8tion/jda/api/utils/messages/MessageCreateRequest.java | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
index 5473736343..c699cc58b1 100644
--- a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
+++ b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
@@ -313,7 +313,7 @@ default R addFiles(@Nonnull FileUpload... files)
/**
* Applies the provided {@link MessageCreateData} to this request.
*
- * Note that files will not be copied.
+ *
Note that files will be copied but the input streams themselves can only be consumed once.
*
* @param data
* The message create data to apply
@@ -338,7 +338,8 @@ default R applyData(@Nonnull MessageCreateData data)
.mentionRepliedUser(data.isMentionRepliedUser())
.setEmbeds(data.getEmbeds())
.setTTS(data.isTTS())
- .setComponents(layoutComponents);
+ .setComponents(layoutComponents)
+ .setFiles(data.getFiles());
}
@Nonnull
From f5d1fd4675c2646a4b3143360e21bd70edbe8384 Mon Sep 17 00:00:00 2001
From: freya02 <41875020+freya022@users.noreply.github.com>
Date: Sun, 6 Nov 2022 15:16:30 +0100
Subject: [PATCH 6/7] Copy components in other copy methods
---
.../jda/api/utils/messages/MessageCreateRequest.java | 7 ++++++-
.../jda/api/utils/messages/MessageEditBuilder.java | 8 +++++++-
.../jda/api/utils/messages/MessageEditRequest.java | 8 +++++++-
3 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
index c699cc58b1..43e1e3f727 100644
--- a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
+++ b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
@@ -383,7 +383,12 @@ default R applyEditData(@Nonnull MessageEditData data)
if (data.isSet(MessageEditBuilder.EMBEDS))
setEmbeds(data.getEmbeds());
if (data.isSet(MessageEditBuilder.COMPONENTS))
- setComponents(data.getComponents());
+ {
+ final List layoutComponents = data.getComponents().stream()
+ .map(LayoutComponent::createCopy)
+ .collect(Collectors.toList());
+ setComponents(layoutComponents);
+ }
if (data.isSet(MessageEditBuilder.ATTACHMENTS))
setFiles(data.getFiles());
if (data.isSet(MessageEditBuilder.MENTIONS))
diff --git a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditBuilder.java b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditBuilder.java
index d12536be80..e7418c724f 100644
--- a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditBuilder.java
+++ b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditBuilder.java
@@ -32,6 +32,7 @@
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
/**
* Builder specialized for building a {@link MessageEditData}.
@@ -247,7 +248,12 @@ public MessageEditBuilder applyData(@Nonnull MessageEditData data)
if (data.isSet(EMBEDS))
this.setEmbeds(data.getEmbeds());
if (data.isSet(COMPONENTS))
- this.setComponents(data.getComponents());
+ {
+ final List layoutComponents = data.getComponents().stream()
+ .map(LayoutComponent::createCopy)
+ .collect(Collectors.toList());
+ this.setComponents(layoutComponents);
+ }
if (data.isSet(ATTACHMENTS))
this.setAttachments(data.getAttachments());
if (data.isSet(MENTIONS))
diff --git a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditRequest.java b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditRequest.java
index 640876e2a2..6a7368a859 100644
--- a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditRequest.java
+++ b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageEditRequest.java
@@ -17,6 +17,7 @@
package net.dv8tion.jda.api.utils.messages;
import net.dv8tion.jda.api.entities.Message;
+import net.dv8tion.jda.api.interactions.components.LayoutComponent;
import net.dv8tion.jda.api.requests.RestAction;
import net.dv8tion.jda.api.utils.AttachedFile;
import net.dv8tion.jda.api.utils.FileUpload;
@@ -29,6 +30,8 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
/**
* Specialized abstraction of setters for editing existing messages throughout the API.
@@ -205,6 +208,9 @@ default R setFiles(@Nullable Collection extends FileUpload> files)
@Nonnull
default R applyCreateData(@Nonnull MessageCreateData data)
{
+ final List layoutComponents = data.getComponents().stream()
+ .map(LayoutComponent::createCopy)
+ .collect(Collectors.toList());
return setReplace(true)
.setContent(data.getContent())
.setAllowedMentions(data.getAllowedMentions())
@@ -212,7 +218,7 @@ default R applyCreateData(@Nonnull MessageCreateData data)
.mentionRoles(data.getMentionedRoles())
.mentionRepliedUser(data.isMentionRepliedUser())
.setEmbeds(data.getEmbeds())
- .setComponents(data.getComponents())
+ .setComponents(layoutComponents)
.setFiles(data.getFiles());
}
From 0366474e4097a260182d4385fe40483ae0b1c1ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20Spie=C3=9F?=
Date: Sun, 6 Nov 2022 15:24:30 +0100
Subject: [PATCH 7/7] Update
src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
---
.../dv8tion/jda/api/utils/messages/MessageCreateRequest.java | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
index 43e1e3f727..18d49fc0d7 100644
--- a/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
+++ b/src/main/java/net/dv8tion/jda/api/utils/messages/MessageCreateRequest.java
@@ -313,8 +313,6 @@ default R addFiles(@Nonnull FileUpload... files)
/**
* Applies the provided {@link MessageCreateData} to this request.
*
- * Note that files will be copied but the input streams themselves can only be consumed once.
- *
* @param data
* The message create data to apply
*