Skip to content

Commit

Permalink
Move setFlags from interaction message builders to standard message…
Browse files Browse the repository at this point in the history
… builders
  • Loading branch information
Mysterypotatoguy committed May 1, 2024
1 parent aa5afd1 commit 19c69e6
Show file tree
Hide file tree
Showing 8 changed files with 48 additions and 71 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
import org.javacord.api.entity.webhook.IncomingWebhook;
import org.javacord.api.util.DiscordRegexPattern;

import java.util.Arrays;
import java.util.Collection;
import java.util.EnumSet;
import java.util.concurrent.CompletableFuture;
import java.util.regex.Matcher;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -155,6 +157,27 @@ public MessageBuilder replyTo(long messageId, boolean assertReferenceExists) {
return this;
}

/**
* Sets flags for the message.
*
* @param messageFlags An EnumSet containing the flags to set on the message.
* @return The current instance in order to chain call methods.
*/
public MessageBuilder setFlags(EnumSet<MessageFlag> messageFlags) {
delegate.setFlags(messageFlags);
return this;
}

/**
* Sets flags for the message.
*
* @param messageFlags The MessageFlags to set.
* @return The current instance in order to chain call methods.
*/
public MessageBuilder setFlags(MessageFlag... messageFlags) {
return setFlags(EnumSet.copyOf(Arrays.asList(messageFlags)));
}

/**
* Sends the message.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.javacord.api.entity.message.Message;
import org.javacord.api.entity.message.MessageBuilder;
import org.javacord.api.entity.message.MessageDecoration;
import org.javacord.api.entity.message.MessageFlag;
import org.javacord.api.entity.message.Messageable;
import org.javacord.api.entity.message.component.HighLevelComponent;
import org.javacord.api.entity.message.component.LowLevelComponent;
Expand All @@ -22,6 +23,7 @@
import java.io.InputStream;
import java.net.URL;
import java.util.Collection;
import java.util.EnumSet;
import java.util.List;
import java.util.concurrent.CompletableFuture;

Expand Down Expand Up @@ -274,6 +276,13 @@ public interface MessageBuilderBaseDelegate {
*/
void replyTo(long messageId, boolean assertReferenceExists);

/**
* Sets the message flags.
*
* @param messageFlags An EnumSet of message flags to set.
*/
void setFlags(EnumSet<MessageFlag> messageFlags);

/**
* Sets the nonce of the message.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.javacord.api.entity.Mentionable;
import org.javacord.api.entity.message.Message;
import org.javacord.api.entity.message.MessageDecoration;
import org.javacord.api.entity.message.MessageFlag;
import org.javacord.api.entity.message.component.HighLevelComponent;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.message.internal.InteractionMessageBuilderDelegate;
Expand All @@ -16,7 +15,6 @@
import java.io.InputStream;
import java.net.URL;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;
import java.util.concurrent.CompletableFuture;

Expand Down Expand Up @@ -243,18 +241,6 @@ public InteractionMessageBuilder setAllowedMentions(AllowedMentions allowedMenti
return this;
}

@Override
public InteractionMessageBuilder setFlags(MessageFlag... messageFlags) {
setFlags(EnumSet.copyOf(Arrays.asList(messageFlags)));
return this;
}

@Override
public InteractionMessageBuilder setFlags(EnumSet<MessageFlag> messageFlags) {
delegate.setFlags(messageFlags);
return this;
}

@Override
public StringBuilder getStringBuilder() {
return delegate.getStringBuilder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@

import org.javacord.api.entity.Mentionable;
import org.javacord.api.entity.message.MessageDecoration;
import org.javacord.api.entity.message.MessageFlag;
import org.javacord.api.entity.message.component.HighLevelComponent;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.message.mention.AllowedMentions;

import java.util.EnumSet;
import java.util.List;

public interface InteractionMessageBuilderBase<T> {
Expand Down Expand Up @@ -166,22 +164,6 @@ public interface InteractionMessageBuilderBase<T> {
*/
T setAllowedMentions(AllowedMentions allowedMentions);

/**
* Sets the message flags of the message.
*
* @param messageFlags The message flags enum type.
* @return The current instance in order to chain call methods.
*/
T setFlags(MessageFlag... messageFlags);

/**
* Sets the message flags of the message.
*
* @param messageFlags An EnumSet of message flag enum type.
* @return The current instance in order to chain call methods.
*/
T setFlags(EnumSet<MessageFlag> messageFlags);

/**
* Gets the {@link StringBuilder} which is used to build the message.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,13 @@
import org.javacord.core.util.rest.RestMethod;
import org.javacord.core.util.rest.RestRequest;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.concurrent.CompletableFuture;

public class InteractionMessageBuilderDelegateImpl extends MessageBuilderBaseDelegateImpl
implements InteractionMessageBuilderDelegate {

/**
* The message flags of the message.
*/
private EnumSet<MessageFlag> messageFlags = null;

@Override
public void setFlags(EnumSet<MessageFlag> messageFlags) {
this.messageFlags = messageFlags;
}

@Override
public CompletableFuture<Void> sendInitialResponse(InteractionBase interaction) {
ObjectNode topBody = JsonNodeFactory.instance.objectNode();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import org.javacord.api.entity.message.Message;
import org.javacord.api.entity.message.MessageAttachment;
import org.javacord.api.entity.message.MessageDecoration;
import org.javacord.api.entity.message.MessageFlag;
import org.javacord.api.entity.message.Messageable;
import org.javacord.api.entity.message.component.ActionRow;
import org.javacord.api.entity.message.component.ActionRowBuilder;
Expand Down Expand Up @@ -48,6 +49,7 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
Expand Down Expand Up @@ -132,6 +134,10 @@ public class MessageBuilderBaseDelegateImpl implements MessageBuilderBaseDelegat
* The message to reply to.
*/
protected Long replyingTo = null;
/**
* The message flags of the message.
*/
protected EnumSet<MessageFlag> messageFlags = EnumSet.noneOf(MessageFlag.class);

/**
* Used to tell discord to check if the reference message exists.
Expand Down Expand Up @@ -410,6 +416,11 @@ public void replyTo(long messageId, boolean assertReferenceExists) {
this.assertReferenceExists = assertReferenceExists;
}

@Override
public void setFlags(EnumSet<MessageFlag> messageFlags) {
this.messageFlags = messageFlags;
}

@Override
public void setNonce(String nonce) {
this.nonce = nonce;
Expand Down Expand Up @@ -487,6 +498,11 @@ public CompletableFuture<Message> send(TextChannel channel) {
.put("fail_if_not_exists", assertReferenceExists);
}

if (!messageFlags.isEmpty()) {
body.put("flags", messageFlags.stream()
.mapToInt(MessageFlag::getId).sum());
}

RestRequest<Message> request = new RestRequest<Message>(channel.getApi(), RestMethod.POST, RestEndpoint.MESSAGE)
.setUrlParameters(channel.getIdAsString());
return checkForAttachmentsAndExecuteRequest(channel, body, request, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import org.javacord.api.entity.Mentionable;
import org.javacord.api.entity.message.MessageDecoration;
import org.javacord.api.entity.message.MessageFlag;
import org.javacord.api.entity.message.component.HighLevelComponent;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.message.internal.InteractionMessageBuilderDelegate;
Expand All @@ -11,7 +10,6 @@
import org.javacord.api.util.internal.DelegateFactory;

import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;

public abstract class InteractionMessageBuilderBaseImpl<T> implements InteractionMessageBuilderBase<T> {
Expand Down Expand Up @@ -151,18 +149,6 @@ public T setAllowedMentions(AllowedMentions allowedMentions) {
return myClass.cast(this);
}

@Override
public T setFlags(MessageFlag... messageFlags) {
setFlags(EnumSet.copyOf(Arrays.asList(messageFlags)));
return myClass.cast(this);
}

@Override
public T setFlags(EnumSet<MessageFlag> messageFlags) {
delegate.setFlags(messageFlags);
return myClass.cast(this);
}

@Override
public StringBuilder getStringBuilder() {
return delegate.getStringBuilder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.javacord.api.entity.Mentionable;
import org.javacord.api.entity.message.Message;
import org.javacord.api.entity.message.MessageDecoration;
import org.javacord.api.entity.message.MessageFlag;
import org.javacord.api.entity.message.component.HighLevelComponent;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.message.internal.InteractionMessageBuilderDelegate;
Expand All @@ -16,7 +15,6 @@
import java.io.InputStream;
import java.net.URL;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.concurrent.CompletableFuture;

public class InteractionOriginalResponseUpdaterImpl
Expand Down Expand Up @@ -318,16 +316,4 @@ public InteractionOriginalResponseUpdater setAllowedMentions(AllowedMentions all
delegate.setAllowedMentions(allowedMentions);
return this;
}

@Override
public InteractionOriginalResponseUpdater setFlags(MessageFlag... messageFlags) {
setFlags(EnumSet.copyOf(Arrays.asList(messageFlags)));
return this;
}

@Override
public InteractionOriginalResponseUpdater setFlags(EnumSet<MessageFlag> messageFlags) {
delegate.setFlags(messageFlags);
return this;
}
}

0 comments on commit 19c69e6

Please sign in to comment.