2022-03-31 20:08:50 +00:00
|
|
|
package com.alttd.commandManager.commands.PollCommand;
|
|
|
|
|
|
|
|
|
|
import com.alttd.commandManager.DiscordCommand;
|
|
|
|
|
import com.alttd.commandManager.SubCommand;
|
2022-04-15 19:44:26 +00:00
|
|
|
import com.alttd.commandManager.SubCommandGroup;
|
2022-04-01 00:54:33 +00:00
|
|
|
import com.alttd.util.OptionMappingParsing;
|
2022-09-10 03:20:24 +00:00
|
|
|
import com.alttd.util.Util;
|
|
|
|
|
import net.dv8tion.jda.api.EmbedBuilder;
|
|
|
|
|
import net.dv8tion.jda.api.entities.Message;
|
2022-09-14 19:36:43 +00:00
|
|
|
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
|
2022-04-15 19:44:26 +00:00
|
|
|
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
2022-03-31 20:08:50 +00:00
|
|
|
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
2022-09-10 03:20:24 +00:00
|
|
|
import net.dv8tion.jda.api.interactions.InteractionHook;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
2022-03-31 20:08:50 +00:00
|
|
|
|
|
|
|
|
public class SubCommandEditTitle extends SubCommand {
|
2022-04-15 19:44:26 +00:00
|
|
|
protected SubCommandEditTitle(SubCommandGroup parentGroup, DiscordCommand parent) {
|
|
|
|
|
super(parentGroup, parent);
|
2022-03-31 20:08:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String getName() {
|
|
|
|
|
return "edit_title";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void execute(SlashCommandInteractionEvent event) {
|
2022-04-01 00:54:33 +00:00
|
|
|
GuildMessageChannel channel = OptionMappingParsing.getGuildChannel("channel", event, getName());
|
2022-09-10 03:20:24 +00:00
|
|
|
if (channel == null) {
|
|
|
|
|
event.replyEmbeds(Util.genericErrorEmbed("Error", "Invalid channel")).setEphemeral(true).queue();
|
2022-04-01 00:54:33 +00:00
|
|
|
return;
|
2022-09-10 03:20:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Long messageId = Util.parseLong(OptionMappingParsing.getString("message_id", event, getName()));
|
|
|
|
|
if (messageId == null) {
|
|
|
|
|
event.replyEmbeds(Util.genericErrorEmbed("Error", "Invalid message id")).setEphemeral(true).queue();
|
2022-04-01 00:54:33 +00:00
|
|
|
return;
|
2022-09-10 03:20:24 +00:00
|
|
|
}
|
|
|
|
|
|
2022-04-01 00:54:33 +00:00
|
|
|
String title = OptionMappingParsing.getString("title", event, getName());
|
2022-09-10 03:20:24 +00:00
|
|
|
if (title == null || title.length() > 256) {
|
|
|
|
|
if (title == null)
|
|
|
|
|
event.replyEmbeds(Util.genericErrorEmbed("Error", "No title found")).setEphemeral(true).queue();
|
|
|
|
|
else
|
|
|
|
|
event.replyEmbeds(Util.genericErrorEmbed("Error", "Title too long")).setEphemeral(true).queue();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
event.replyEmbeds(Util.genericWaitingEmbed("Waiting...", "Editing poll...")).setEphemeral(true).queue(hook -> {
|
|
|
|
|
channel.retrieveMessageById(messageId).queue(message -> updatePoll(message, title, hook),
|
|
|
|
|
error -> hook.editOriginalEmbeds(Util.genericErrorEmbed("Error", "Unable to find message with id [" + messageId + "].")).queue());
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void updatePoll(Message message, String title, InteractionHook hook) {
|
|
|
|
|
EmbedBuilder firstEmbedBuilder = Util.getFirstEmbedBuilder(message);
|
|
|
|
|
if (firstEmbedBuilder == null) {
|
|
|
|
|
hook.editOriginalEmbeds(Util.genericErrorEmbed("Error", "Unable to get embed from poll message."))
|
|
|
|
|
.queue();
|
2022-04-01 00:54:33 +00:00
|
|
|
return;
|
2022-09-10 03:20:24 +00:00
|
|
|
}
|
|
|
|
|
message.editMessageEmbeds(firstEmbedBuilder.setTitle(title).build()).queue(
|
|
|
|
|
resultMessage -> hook.editOriginalEmbeds(Util.genericSuccessEmbed("Success", "Updated the poll title.")).queue(),
|
|
|
|
|
error -> hook.editOriginalEmbeds(Util.genericErrorEmbed("Error", "Unable to edit poll message.")).queue());
|
2022-03-31 20:08:50 +00:00
|
|
|
}
|
|
|
|
|
|
2022-04-15 19:44:26 +00:00
|
|
|
@Override
|
|
|
|
|
public void suggest(CommandAutoCompleteInteractionEvent event) {
|
2022-09-10 03:20:24 +00:00
|
|
|
event.replyChoices(new ArrayList<>()).queue();
|
2022-04-15 19:44:26 +00:00
|
|
|
}
|
|
|
|
|
|
2022-03-31 20:08:50 +00:00
|
|
|
@Override
|
|
|
|
|
public String getHelpMessage() {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|