Skip to content

Commit b0eaa54

Browse files
committed
More changes to the /quote command
1 parent a0ff16e commit b0eaa54

7 files changed

Lines changed: 50 additions & 9 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jar {
1212
}
1313

1414
group 'com.sidpatchy'
15-
version '3.3.1'
15+
version '3.3.2'
1616

1717
sourceCompatibility = 17
1818
targetCompatibility = 17

src/main/java/com/sidpatchy/clairebot/Embed/Commands/Regular/InfoEmbed.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public static EmbedBuilder getInfo(User author) {
1414
.addField("Add Me to a Server", "Adding me to a server is simple, all you have to do is click [here](https://invite.clairebot.net)", true)
1515
.addField("GitHub", "ClaireBot is open source, that means you can view all of its code! Check out its [GitHub!](https://github.com/Sidpatchy/ClaireBot)", true)
1616
.addField("Server Count", "I have enlightened **" + Main.getApi().getServers().size() + "** servers.", true)
17-
.addField("Version", "I am running ClaireBot **v3.3.1**, released on **2024-08-21**", true)
17+
.addField("Version", "I am running ClaireBot **v3.3.2**, released on **2024-08-22**", true)
1818
.addField("Uptime", "Started on <t:" + Main.getStartMillis() / 1000 + ">" + "\n*" + timeSinceStart + "*", true);
1919
}
2020
}

src/main/java/com/sidpatchy/clairebot/Embed/Commands/Regular/QuoteEmbed.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import org.javacord.api.entity.Icon;
55
import org.javacord.api.entity.channel.TextChannel;
66
import org.javacord.api.entity.message.Message;
7+
import org.javacord.api.entity.message.MessageBuilder;
78
import org.javacord.api.entity.message.embed.EmbedBuilder;
9+
import org.javacord.api.entity.message.embed.EmbedFooter;
810
import org.javacord.api.entity.server.Server;
911
import org.javacord.api.entity.user.User;
1012

@@ -78,4 +80,12 @@ public static CompletableFuture<EmbedBuilder> getQuote(Server server, final User
7880
return embed;
7981
});
8082
}
83+
84+
public static EmbedBuilder viewOriginalMessageBuilder(TextChannel channel, Message message) {
85+
EmbedFooter footer = message.getEmbeds().get(0).getFooter().orElse(null);
86+
Message quotedMessage = message.getApi().getMessageById(footer.getText().orElse(""), channel).join();
87+
88+
return new EmbedBuilder()
89+
.addField("Click to jump to the original message:", quotedMessage.getLink().toString());
90+
}
8191
}

src/main/java/com/sidpatchy/clairebot/Listener/ButtonClick.java

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
package com.sidpatchy.clairebot.Listener;
22

3+
import com.sidpatchy.clairebot.Embed.Commands.Regular.QuoteEmbed;
34
import com.sidpatchy.clairebot.Embed.Commands.Regular.SantaEmbed;
45
import com.sidpatchy.clairebot.Main;
56
import com.sidpatchy.clairebot.MessageComponents.Regular.SantaModal;
67
import com.sidpatchy.clairebot.Util.SantaUtils;
8+
import org.javacord.api.entity.channel.Channel;
9+
import org.javacord.api.entity.channel.TextChannel;
710
import org.javacord.api.entity.message.Message;
11+
import org.javacord.api.entity.message.MessageBuilder;
12+
import org.javacord.api.entity.message.MessageFlag;
813
import org.javacord.api.entity.message.embed.Embed;
914
import org.javacord.api.entity.message.embed.EmbedFooter;
1015
import org.javacord.api.entity.permission.Role;
@@ -22,15 +27,20 @@ public void onButtonClick(ButtonClickEvent event) {
2227
String buttonID = buttonInteraction.getCustomId().toLowerCase();
2328
User buttonAuthor = buttonInteraction.getUser();
2429
Message message = buttonInteraction.getMessage();
30+
TextChannel channel = message.getChannel();
2531

2632
Embed embed = buttonInteraction.getMessage().getEmbeds().get(0);
2733
EmbedFooter footer = embed.getFooter().orElse(null);
2834

2935
// Extract data from embed fields
30-
SantaUtils.ExtractionResult extractionResult = SantaUtils.extractDataFromEmbed(embed, footer);
31-
32-
Server server = Main.getApi().getServerById(extractionResult.santaID.get("serverID")).orElse(null);
33-
User author = Main.getApi().getUserById(extractionResult.santaID.get("authorID")).join();
36+
SantaUtils.ExtractionResult extractionResult = null;
37+
Server server = null;
38+
User author = null;
39+
if (!buttonID.equalsIgnoreCase("view_original")) {
40+
extractionResult = SantaUtils.extractDataFromEmbed(embed, footer);
41+
server = Main.getApi().getServerById(extractionResult.santaID.get("serverID")).orElse(null);
42+
author = Main.getApi().getUserById(extractionResult.santaID.get("authorID")).join();
43+
}
3444

3545
switch (buttonID) {
3646
case "rules":
@@ -64,6 +74,16 @@ public void onButtonClick(ButtonClickEvent event) {
6474
SantaEmbed.getHostMessage(role, buttonAuthor, extractionResult.rules, extractionResult.theme).send(buttonAuthor);
6575

6676
break;
77+
78+
// Quote command
79+
case "view_original":
80+
//buttonInteraction.acknowledge();
81+
buttonInteraction.createImmediateResponder()
82+
.addEmbed(QuoteEmbed.viewOriginalMessageBuilder(channel, message))
83+
.setFlags(MessageFlag.EPHEMERAL)
84+
.respond();
85+
86+
break;
6787
}
6888
}
6989
}

src/main/java/com/sidpatchy/clairebot/Listener/MessageCreate.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.javacord.api.entity.message.Message;
88
import org.javacord.api.entity.message.MessageAuthor;
99
import org.javacord.api.entity.message.MessageBuilder;
10+
import org.javacord.api.entity.message.MessageType;
1011
import org.javacord.api.entity.message.mention.AllowedMentionsBuilder;
1112
import org.javacord.api.entity.server.Server;
1213
import org.javacord.api.event.message.MessageCreateEvent;

src/main/java/com/sidpatchy/clairebot/Listener/SlashCommandCreate.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import org.apache.logging.log4j.Logger;
1212
import org.javacord.api.entity.channel.TextChannel;
1313
import org.javacord.api.entity.message.MessageFlag;
14+
import org.javacord.api.entity.message.component.ActionRow;
15+
import org.javacord.api.entity.message.component.Button;
1416
import org.javacord.api.entity.message.embed.EmbedBuilder;
1517
import org.javacord.api.entity.permission.Role;
1618
import org.javacord.api.entity.server.Server;
@@ -185,7 +187,15 @@ else if (commandName.equalsIgnoreCase(parseCommands.getCommandName("quote"))) {
185187
User finalUser = user;
186188
slashCommandInteraction.respondLater().thenAccept(interactionOriginalResponseUpdater -> {
187189
QuoteEmbed.getQuote(server, finalUser, channel).thenAccept(embed -> {
188-
interactionOriginalResponseUpdater.addEmbed(embed).update();
190+
// Create an ActionRow with a button
191+
ActionRow actionRow = ActionRow.of(
192+
Button.primary("view_original", "View Original")
193+
);
194+
195+
// Update the interaction's original response with the embed and action row
196+
interactionOriginalResponseUpdater.addEmbed(embed)
197+
.addComponents(actionRow)
198+
.update();
189199
});
190200
});
191201
}

src/main/java/com/sidpatchy/clairebot/Main.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
* along with this program. If not, see <https://www.gnu.org/licenses/>.
4040
*
4141
* @since April 2020
42-
* @version 3.3.1
42+
* @version 3.3.2
4343
* @author Sidpatchy
4444
*/
4545
public class Main {
@@ -120,7 +120,7 @@ public static void main(String[] args) throws InvalidConfigurationException {
120120
Clockwork.initClockwork();
121121

122122
// Set the bot's activity
123-
api.updateActivity("ClaireBot v3.3.1", video_url);
123+
api.updateActivity("ClaireBot v3.3.2", video_url);
124124

125125
// Register slash commands
126126
registerSlashCommands();

0 commit comments

Comments
 (0)