Skip to content

Commit e804f57

Browse files
committed
Update gist command. Make it resolve the message
Don't always expect the message to be cached
1 parent e48b8b2 commit e804f57

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

src/commander/java/com/mcmoddev/mmdbot/commander/commands/GistCommand.java

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -58,31 +58,33 @@ protected void execute(final CommandEvent event) {
5858
}
5959

6060
private static void run(final String token, final CommandEvent event) {
61-
final var target = event.getMessage().getReferencedMessage();
62-
if (target == null || target.isWebhookMessage() || target.getAuthor().isSystem()) {
61+
final var action = event.getMessage().getMessageReference();
62+
if (action == null) {
6363
event.getMessage().reply("Please reference a message to create a gist from its attachments.").mentionRepliedUser(false).queue();
6464
return;
6565
}
66-
if (!GistContextMenu.canGist(target)) {
67-
event.getMessage().reply("The message doesn't have any attachments!").mentionRepliedUser(false).queue();
68-
return;
69-
}
70-
try {
71-
final var gist = GistUtils.create(token, GistContextMenu.createGistFromMessage(target));
72-
if (gist == null) {
73-
event.getMessage().reply("The Gist I created was null for some reason. Try again later.").mentionRepliedUser(false).queue();
66+
action.resolve(true).queue(target -> {
67+
if (!GistContextMenu.canGist(target)) {
68+
event.getMessage().reply("The message doesn't have any attachments!").mentionRepliedUser(false).queue();
7469
return;
7570
}
76-
final EmbedBuilder embed = new EmbedBuilder().setColor(Color.MAGENTA).setTimestamp(Instant.now())
77-
.setFooter("Requester ID: " + event.getMember().getIdLong(), event.getMember().getEffectiveAvatarUrl())
78-
.setThumbnail(event.getJDA().getSelfUser().getAvatarUrl())
79-
.setDescription("A gist has been created for the attachments of [this](%s) message.".formatted(target.getJumpUrl()))
80-
.addField("Gist Link", gist.htmlUrl(), false);
81-
event.getMessage().replyEmbeds(embed.build()).mentionRepliedUser(false).queue();
82-
} catch (InterruptedException | ExecutionException | GistUtils.GistException e) {
83-
event.getMessage().replyFormat("Error while creating gist: **%s**", e.getLocalizedMessage()).mentionRepliedUser(false).queue();
84-
TheCommander.LOGGER.error("Error while creating gist", e);
85-
}
71+
try {
72+
final var gist = GistUtils.create(token, GistContextMenu.createGistFromMessage(target));
73+
if (gist == null) {
74+
event.getMessage().reply("The Gist I created was null for some reason. Try again later.").mentionRepliedUser(false).queue();
75+
return;
76+
}
77+
final EmbedBuilder embed = new EmbedBuilder().setColor(Color.MAGENTA).setTimestamp(Instant.now())
78+
.setFooter("Requester ID: " + event.getMember().getIdLong(), event.getMember().getEffectiveAvatarUrl())
79+
.setThumbnail(event.getJDA().getSelfUser().getAvatarUrl())
80+
.setDescription("A gist has been created for the attachments of [this](%s) message.".formatted(target.getJumpUrl()))
81+
.addField("Gist Link", gist.htmlUrl(), false);
82+
event.getMessage().replyEmbeds(embed.build()).mentionRepliedUser(false).queue();
83+
} catch (InterruptedException | ExecutionException | GistUtils.GistException e) {
84+
event.getMessage().replyFormat("Error while creating gist: **%s**", e.getLocalizedMessage()).mentionRepliedUser(false).queue();
85+
TheCommander.LOGGER.error("Error while creating gist", e);
86+
}
87+
});
8688
}
8789

8890
}

0 commit comments

Comments
 (0)