Update from v5 -> v6 for JDA
This commit is contained in:
parent
3d868a109d
commit
2c1088ef2e
|
|
@ -60,7 +60,7 @@ tasks {
|
|||
|
||||
dependencies {
|
||||
// JDA
|
||||
implementation("net.dv8tion:JDA:5.6.1") {
|
||||
implementation("net.dv8tion:JDA:6.1.1") {
|
||||
exclude("opus-java") // exclude audio
|
||||
}
|
||||
// MySQL
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class AltitudeBot {
|
|||
jda = JDABuilder.createDefault(SettingsConfig.TOKEN,
|
||||
GatewayIntent.GUILD_MEMBERS,
|
||||
GatewayIntent.GUILD_MODERATION,
|
||||
GatewayIntent.GUILD_EMOJIS_AND_STICKERS,
|
||||
GatewayIntent.GUILD_EXPRESSIONS,
|
||||
GatewayIntent.GUILD_WEBHOOKS,
|
||||
GatewayIntent.GUILD_PRESENCES,
|
||||
GatewayIntent.GUILD_MESSAGES,
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@ import com.alttd.buttonManager.buttons.remindMeConfirm.ButtonRemindMeCancel;
|
|||
import com.alttd.buttonManager.buttons.remindMeConfirm.ButtonRemindMeConfirm;
|
||||
import com.alttd.buttonManager.buttons.suggestionReview.ButtonSuggestionReviewAccept;
|
||||
import com.alttd.buttonManager.buttons.suggestionReview.ButtonSuggestionReviewDeny;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
|
@ -44,7 +44,7 @@ public class ButtonManager extends ListenerAdapter {
|
|||
|
||||
@Override
|
||||
public void onButtonInteraction(@NotNull ButtonInteractionEvent event) {
|
||||
String buttonId = event.getButton().getId();
|
||||
String buttonId = event.getButton().getCustomId();
|
||||
Optional<DiscordButton> first = buttons.stream()
|
||||
.filter(discordModal -> discordModal.getButtonId().equalsIgnoreCase(buttonId))
|
||||
.findFirst();
|
||||
|
|
@ -65,9 +65,7 @@ public class ButtonManager extends ListenerAdapter {
|
|||
Optional<DiscordButton> first = buttons.stream()
|
||||
.filter(discordButton -> discordButton.getButtonId().equalsIgnoreCase(buttonId))
|
||||
.findFirst();
|
||||
if (first.isEmpty())
|
||||
return null;
|
||||
return first.get().getButton();
|
||||
return first.map(DiscordButton::getButton).orElse(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.alttd.buttonManager;
|
||||
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
|
||||
public abstract class DiscordButton {
|
||||
|
||||
|
|
|
|||
|
|
@ -5,16 +5,15 @@ import com.alttd.schedulers.ReminderScheduler;
|
|||
import com.alttd.util.Logger;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.Collections;
|
||||
import java.util.Objects;
|
||||
|
||||
public class ButtonAccepted extends DiscordButton {
|
||||
@Override
|
||||
|
|
@ -28,7 +27,7 @@ public class ButtonAccepted extends DiscordButton {
|
|||
if (!ButtonReminderUtil.shouldExecute(message, event))
|
||||
return;
|
||||
Logger.altitudeLogs.debug("Accepting reminder");
|
||||
MessageEmbed embed = message.getEmbeds().get(0);
|
||||
MessageEmbed embed = message.getEmbeds().getFirst();
|
||||
EmbedBuilder embedBuilder = new EmbedBuilder(embed).setColor(Color.GREEN);
|
||||
ReminderScheduler.getInstance(event.getJDA()).removeReminder(message.getIdLong());
|
||||
message.editMessageEmbeds(embedBuilder.build()).queue();
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@ import com.alttd.buttonManager.DiscordButton;
|
|||
import com.alttd.util.Logger;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,16 +5,15 @@ import com.alttd.schedulers.ReminderScheduler;
|
|||
import com.alttd.util.Logger;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.Collections;
|
||||
import java.util.Objects;
|
||||
|
||||
public class ButtonRejected extends DiscordButton {
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ import com.alttd.database.queries.events.Event;
|
|||
import com.alttd.util.Logger;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import com.alttd.buttonManager.DiscordButton;
|
|||
import com.alttd.database.queries.Poll.Poll;
|
||||
import com.alttd.database.queries.Poll.PollButtonClicksQueries;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
|
||||
import java.util.HashSet;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
package com.alttd.buttonManager.buttons.remindMeConfirm;
|
||||
|
||||
import com.alttd.buttonManager.DiscordButton;
|
||||
import com.alttd.database.queries.QueriesReminders.Reminder;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ButtonRemindMeCancel extends DiscordButton {
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import com.alttd.database.queries.QueriesReminders.QueriesReminders;
|
|||
import com.alttd.database.queries.QueriesReminders.Reminder;
|
||||
import com.alttd.schedulers.ReminderScheduler;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionHook;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.alttd.database.queries.commandOutputChannels.OutputType;
|
|||
import com.alttd.util.Logger;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
|
|
@ -16,7 +17,6 @@ import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
|
|||
import net.dv8tion.jda.api.entities.emoji.Emoji;
|
||||
import net.dv8tion.jda.api.entities.emoji.EmojiUnion;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder;
|
||||
import net.dv8tion.jda.api.utils.messages.MessageCreateData;
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@ import com.alttd.database.queries.commandOutputChannels.CommandOutputChannels;
|
|||
import com.alttd.database.queries.commandOutputChannels.OutputType;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
|
||||
import java.awt.*;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import net.dv8tion.jda.api.JDA;
|
|||
import net.dv8tion.jda.api.Permission;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
|
|
@ -33,7 +34,7 @@ public class CommandManage extends DiscordCommand {
|
|||
.addOption(OptionType.STRING, "command", "Name of the command to disable", true, true)
|
||||
)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.ADMINISTRATOR))
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
Util.registerSubOptions(subOptionsMap,
|
||||
new SubCommandEnable(commandManager, contextMenuManager, null, this),
|
||||
new SubCommandDisable(commandManager, null, this)
|
||||
|
|
|
|||
|
|
@ -10,8 +10,11 @@ import com.alttd.schedulers.AuctionScheduler;
|
|||
import com.alttd.selectMenuManager.SelectMenuManager;
|
||||
import com.alttd.util.Logger;
|
||||
import com.alttd.util.Util;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.components.actionrow.ActionRow;
|
||||
import net.dv8tion.jda.api.components.selections.SelectMenu;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
|
@ -25,7 +28,6 @@ import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
|||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||
import net.dv8tion.jda.api.interactions.components.selections.SelectMenu;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction;
|
||||
import net.dv8tion.jda.api.utils.AttachedFile;
|
||||
|
|
@ -36,6 +38,7 @@ import java.time.Instant;
|
|||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Slf4j
|
||||
public class CommandAuction extends DiscordCommand {
|
||||
|
||||
private final CommandData commandData;
|
||||
|
|
@ -127,7 +130,7 @@ public class CommandAuction extends DiscordCommand {
|
|||
return;
|
||||
}
|
||||
|
||||
message.editMessageComponents().setActionRow(selectMenu).queue();
|
||||
message.editMessageComponents(ActionRow.of(selectMenu)).queue();
|
||||
|
||||
AuctionScheduler auctionScheduler = AuctionScheduler.getInstance();
|
||||
if (auctionScheduler == null) {
|
||||
|
|
@ -149,7 +152,7 @@ public class CommandAuction extends DiscordCommand {
|
|||
file.delete();
|
||||
}))
|
||||
.exceptionally(e -> {
|
||||
e.printStackTrace();
|
||||
log.error("Failed to add screenshot to auction message", e);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import com.alttd.util.Util;
|
|||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.Permission;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageReaction;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.ForumChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
|
||||
|
|
@ -15,6 +14,7 @@ import net.dv8tion.jda.api.entities.channel.forums.ForumTag;
|
|||
import net.dv8tion.jda.api.entities.emoji.Emoji;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.InteractionHook;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
|
|
@ -35,7 +35,7 @@ public class CommandDataSuggestions extends DiscordCommand {
|
|||
this.commandManager = commandManager;
|
||||
this.commandData = Commands.slash(getName(), "Get data about suggestions from the forum channel")
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.ADMINISTRATOR))
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,10 +8,11 @@ import com.alttd.util.Util;
|
|||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
|
||||
import java.util.Collections;
|
||||
|
|
@ -26,7 +27,7 @@ public class CommandEvidence extends DiscordCommand {
|
|||
|
||||
commandData = Commands.slash(getName(), "Open suggestion form.")
|
||||
.setDefaultPermissions(DefaultMemberPermissions.DISABLED)
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import net.dv8tion.jda.api.EmbedBuilder;
|
|||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
|
|
@ -32,7 +33,7 @@ public class CommandFlag extends DiscordCommand {
|
|||
this.commandData = Commands.slash(getName(), "Show flags for a user")
|
||||
.addOption(OptionType.STRING, "user", "The user to show flags for", true)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.ENABLED)
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import net.dv8tion.jda.api.JDA;
|
|||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.AutoCompleteQuery;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
|
|
@ -33,7 +34,7 @@ public class CommandHelp extends DiscordCommand {
|
|||
commandData = Commands.slash(getName(), "Show info about all commands or a specific command.")
|
||||
.addOption(OptionType.STRING, "command", "Command to get more info about", true , true)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.ENABLED)
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import net.dv8tion.jda.api.JDA;
|
|||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
|
|
@ -20,8 +21,8 @@ import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
|||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -34,7 +35,7 @@ public class CommandHistory extends DiscordCommand {
|
|||
.addOption(OptionType.STRING, "user", "The user to show history for", true)
|
||||
.addOption(OptionType.STRING, "type", "The type of punishment to show", false, true)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.ENABLED)
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,12 +11,13 @@ import net.dv8tion.jda.api.entities.channel.unions.GuildChannelUnion;
|
|||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.AutoCompleteQuery;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
|
|
@ -35,7 +36,7 @@ public class CommandRemindMe extends DiscordCommand {
|
|||
.addOption(OptionType.CHANNEL, "channel", "The channel to send the reminder in", true)
|
||||
.addOption(OptionType.STRING, "fromnow", "How long from now the reminder should send", true, true)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.ENABLED)
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import net.dv8tion.jda.api.entities.channel.unions.GuildChannelUnion;
|
|||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.AutoCompleteQuery;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
|
|
@ -34,7 +35,7 @@ public class CommandSetOutputChannel extends DiscordCommand {
|
|||
.addOption(OptionType.STRING, "type", "The type of output channel", true, true)
|
||||
.addOption(OptionType.CHANNEL, "channel", "The channel the specified output should go into", true)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.ADMINISTRATOR))
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import net.dv8tion.jda.api.entities.Guild;
|
|||
import net.dv8tion.jda.api.entities.channel.unions.GuildChannelUnion;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
|
|
@ -31,7 +32,7 @@ public class CommandSoftLock extends DiscordCommand {
|
|||
.addOption(OptionType.STRING, "state", "Set the soft lock \"on\" or \"off\"", true, true)
|
||||
.addOption(OptionType.CHANNEL, "channel", "Channel to change soft lock state for", true)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.ADMINISTRATOR))
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import net.dv8tion.jda.api.entities.Member;
|
|||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.InteractionHook;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
|
|
@ -33,7 +34,7 @@ public class CommandStaffJoinDate extends DiscordCommand {
|
|||
.addOption(OptionType.MENTIONABLE, "staff", "The staff member to set/check the join date for", false, false)
|
||||
.addOption(OptionType.INTEGER, "join-time", "The join date to set", false, false)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.ADMINISTRATOR))
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,10 +7,11 @@ import com.alttd.util.Util;
|
|||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
|
||||
import java.util.Collections;
|
||||
|
|
@ -24,7 +25,7 @@ public class CommandSuggestCrateItem extends DiscordCommand {
|
|||
this.modalManager = modalManager;
|
||||
|
||||
commandData = Commands.slash(getName(), "Open crate item suggestion form.")
|
||||
.setGuildOnly(true)
|
||||
.setContexts(InteractionContextType.GUILD)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.ENABLED);
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,26 +8,25 @@ import com.alttd.util.Util;
|
|||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
public class CommandSuggestion extends DiscordCommand {
|
||||
|
||||
private final CommandManager commandManager;
|
||||
private final CommandData commandData;
|
||||
private final ModalManager modalManager;
|
||||
|
||||
public CommandSuggestion(JDA jda, ModalManager modalManager, CommandManager commandManager) {
|
||||
this.commandManager = commandManager;
|
||||
this.modalManager = modalManager;
|
||||
|
||||
commandData = Commands.slash(getName(), "Open suggestion form.")
|
||||
.setGuildOnly(true)
|
||||
.setContexts(InteractionContextType.GUILD)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.ENABLED);
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import net.dv8tion.jda.api.Permission;
|
|||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||
|
|
@ -27,7 +28,7 @@ public class CommandUpdateCommands extends DiscordCommand {
|
|||
this.commandManager = commandManager;
|
||||
this.commandData = Commands.slash(getName(), "Updates all commands for this bot in this guild")
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.ADMINISTRATOR))
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
Util.registerCommand(commandManager, jda, commandData, getName());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,13 +4,13 @@ import com.alttd.buttonManager.ButtonManager;
|
|||
import com.alttd.commandManager.CommandManager;
|
||||
import com.alttd.commandManager.DiscordCommand;
|
||||
import com.alttd.commandManager.SubOption;
|
||||
import com.alttd.schedulers.PollTimerTask;
|
||||
import com.alttd.util.Logger;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.Permission;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
|
|
@ -52,7 +52,7 @@ public class CommandPoll extends DiscordCommand {
|
|||
new SubcommandData("update_total_votes", "Update the total vote count incase it's out of sync")
|
||||
.addOption(OptionType.STRING, "message_id", "Id of the poll you want to update the total vote count for", true))
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.ADMINISTRATOR))
|
||||
.setGuildOnly(true);
|
||||
.setContexts(InteractionContextType.GUILD);
|
||||
Util.registerSubOptions(subOptionsMap,
|
||||
new SubCommandAdd(null,this),
|
||||
new SubCommandAddButton(null, this, buttonManager),
|
||||
|
|
|
|||
|
|
@ -12,12 +12,12 @@ import com.alttd.templates.Template;
|
|||
import com.alttd.util.Logger;
|
||||
import com.alttd.util.OptionMappingParsing;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.components.actionrow.ActionRow;
|
||||
import net.dv8tion.jda.api.components.actionrow.ActionRowChildComponent;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.events.interaction.command.CommandAutoCompleteInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionHook;
|
||||
import net.dv8tion.jda.api.interactions.components.ActionRow;
|
||||
import net.dv8tion.jda.api.interactions.components.ItemComponent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -102,7 +102,9 @@ public class SubCommandAddButton extends SubCommand {
|
|||
}
|
||||
|
||||
PollButton pollButton = any.get();
|
||||
List<ActionRow> actionRows = message.getActionRows();
|
||||
List<ActionRow> actionRows = message.getComponents().stream()
|
||||
.filter(component -> component instanceof ActionRow)
|
||||
.map(a -> (ActionRow) a).toList();
|
||||
if (rowId > 1) {//todo fix if needed in the future
|
||||
hook.editOriginalEmbeds(Util.genericErrorEmbed("Error",
|
||||
"Polls have only been set up to handle 1 row if you need more than one row update the code."))
|
||||
|
|
@ -110,14 +112,15 @@ public class SubCommandAddButton extends SubCommand {
|
|||
return;
|
||||
}
|
||||
|
||||
List<ItemComponent> components;
|
||||
List<ActionRowChildComponent> components;
|
||||
if (!actionRows.isEmpty()) {
|
||||
components = actionRows.get(0).getComponents();
|
||||
} else
|
||||
components = new ArrayList<>(actionRows.getFirst().getComponents());
|
||||
} else {
|
||||
components = new ArrayList<>();
|
||||
}
|
||||
|
||||
components.add(pollButton.getButton());
|
||||
message.editMessageComponents().setActionRow(components).queue();
|
||||
message.editMessageComponents(ActionRow.of(components)).queue();
|
||||
hook.editOriginalEmbeds(Util.genericSuccessEmbed("Success", "Added a button")).queue();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,10 +8,11 @@ import net.dv8tion.jda.api.Permission;
|
|||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.events.interaction.command.MessageContextInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.UserContextInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
|
||||
public class ContextMenuCreateEvent extends DiscordContextMenu {
|
||||
|
|
@ -62,7 +63,7 @@ public class ContextMenuCreateEvent extends DiscordContextMenu {
|
|||
@Override
|
||||
public CommandData getUserContextInteraction() {
|
||||
return Commands.message(getContextMenuId())
|
||||
.setGuildOnly(true)
|
||||
.setContexts(InteractionContextType.GUILD)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.MESSAGE_SEND));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import net.dv8tion.jda.api.Permission;
|
|||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.events.interaction.command.MessageContextInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.UserContextInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||
|
|
@ -46,7 +47,7 @@ public class ContextMenuForwardToKanboard extends DiscordContextMenu {
|
|||
@Override
|
||||
public CommandData getUserContextInteraction() {
|
||||
return Commands.message(getContextMenuId())
|
||||
.setGuildOnly(true)
|
||||
.setContexts(InteractionContextType.GUILD)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.ADMINISTRATOR));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,10 +15,11 @@ import net.dv8tion.jda.api.entities.channel.unions.IThreadContainerUnion;
|
|||
import net.dv8tion.jda.api.entities.channel.unions.MessageChannelUnion;
|
||||
import net.dv8tion.jda.api.events.interaction.command.MessageContextInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.command.UserContextInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.InteractionContextType;
|
||||
import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
|
||||
public class ContextMenuRespondSuggestion extends DiscordContextMenu {
|
||||
|
|
@ -63,7 +64,7 @@ public class ContextMenuRespondSuggestion extends DiscordContextMenu {
|
|||
@Override
|
||||
public CommandData getUserContextInteraction() {
|
||||
return Commands.message(getContextMenuId())
|
||||
.setGuildOnly(true)
|
||||
.setContexts(InteractionContextType.GUILD)
|
||||
.setDefaultPermissions(DefaultMemberPermissions.enabledFor(Permission.ADMINISTRATOR));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,15 +6,14 @@ import com.alttd.database.queries.QueriesAuctionActions.QueriesAuctionAction;
|
|||
import com.alttd.selectMenuManager.DiscordSelectMenu;
|
||||
import com.alttd.selectMenuManager.SelectMenuManager;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.components.selections.SelectMenu;
|
||||
import net.dv8tion.jda.api.components.selections.SelectOption;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.interactions.components.selections.SelectMenu;
|
||||
import net.dv8tion.jda.api.interactions.components.selections.SelectOption;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ import com.alttd.database.queries.QueriesReminders.ReminderType;
|
|||
import com.alttd.schedulers.ReminderScheduler;
|
||||
import com.alttd.util.Logger;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.actionrow.ActionRow;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
|
@ -15,7 +17,6 @@ import net.dv8tion.jda.api.entities.MessageEmbed;
|
|||
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
|
@ -47,15 +48,15 @@ public class AppealRepost extends ListenerAdapter {
|
|||
}
|
||||
Message message = event.getMessage();
|
||||
List<MessageEmbed> embeds = message.getEmbeds();
|
||||
if (embeds.size() == 0) {
|
||||
if (embeds.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
MessageEmbed messageEmbed = embeds.get(0);
|
||||
MessageEmbed messageEmbed = embeds.getFirst();
|
||||
List<MessageEmbed.Field> fields = messageEmbed.getFields();
|
||||
if (fields.size() == 0) {
|
||||
if (fields.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
String name = fields.get(0).getName();
|
||||
String name = fields.getFirst().getName();
|
||||
if (name == null || !name.equals("Punishment info")) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -89,7 +90,7 @@ public class AppealRepost extends ListenerAdapter {
|
|||
return;
|
||||
}
|
||||
message.getChannel().sendMessageEmbeds(embed).queue(res -> {
|
||||
res.editMessageComponents().setActionRow(reminderAccepted, reminderInProgress, reminderDenied).queue();
|
||||
res.editMessageComponents(ActionRow.of(reminderAccepted, reminderInProgress, reminderDenied)).queue();
|
||||
res.createThreadChannel("Appeal").queue((
|
||||
threadChannel -> {
|
||||
scheduleReminder(res, member, threadChannel);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.alttd.modalManager;
|
||||
|
||||
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
|
||||
public abstract class DiscordModal {
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.alttd.buttonManager.ButtonManager;
|
|||
import com.alttd.modalManager.modals.*;
|
||||
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
|
@ -48,8 +48,6 @@ public class ModalManager extends ListenerAdapter {
|
|||
Optional<DiscordModal> first = modals.stream()
|
||||
.filter(discordModal -> discordModal.getModalId().equalsIgnoreCase(modalId))
|
||||
.findFirst();
|
||||
if (first.isEmpty())
|
||||
return null;
|
||||
return first.get().getModal();
|
||||
return first.map(DiscordModal::getModal).orElse(null);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,16 +5,17 @@ import com.alttd.database.queries.commandOutputChannels.OutputType;
|
|||
import com.alttd.modalManager.DiscordModal;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.label.Label;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInput;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInputStyle;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInput;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInputStyle;
|
||||
import net.dv8tion.jda.api.interactions.modals.ModalMapping;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
|
||||
import java.awt.*;
|
||||
|
|
@ -87,42 +88,42 @@ public class ModalCrateItem extends DiscordModal {
|
|||
|
||||
@Override
|
||||
public Modal getModal() {
|
||||
TextInput item = TextInput.create("item", "Item", TextInputStyle.SHORT)
|
||||
TextInput item = TextInput.create("item", TextInputStyle.SHORT)
|
||||
.setPlaceholder("Bone")
|
||||
.setRequiredRange(1, 32)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
TextInput itemName = TextInput.create("item_name", "Item Name", TextInputStyle.SHORT)
|
||||
TextInput itemName = TextInput.create("item_name", TextInputStyle.SHORT)
|
||||
.setPlaceholder("Scruff's Bone")
|
||||
.setRequiredRange(1, 32)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
TextInput lore = TextInput.create("lore", "Lore", TextInputStyle.PARAGRAPH)
|
||||
TextInput lore = TextInput.create("lore", TextInputStyle.PARAGRAPH)
|
||||
.setPlaceholder("A bone owned by the Altitude Mascot")
|
||||
.setRequiredRange(1, 256)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
TextInput enchants = TextInput.create("enchants", "Enchants", TextInputStyle.PARAGRAPH)
|
||||
TextInput enchants = TextInput.create("enchants", TextInputStyle.PARAGRAPH)
|
||||
.setPlaceholder("Unbreaking 1")
|
||||
.setRequiredRange(1, 256)
|
||||
.setRequired(false)
|
||||
.build();
|
||||
|
||||
TextInput explanation = TextInput.create("explanation", "The explanation behind your item", TextInputStyle.PARAGRAPH)
|
||||
TextInput explanation = TextInput.create("explanation", TextInputStyle.PARAGRAPH)
|
||||
.setPlaceholder("Scruff loves strong bones")
|
||||
.setRequiredRange(1, 2000)
|
||||
.setRequired(false)
|
||||
.build();
|
||||
|
||||
return Modal.create(getModalId(), "Crate Item Suggestion")
|
||||
.addActionRow(item)
|
||||
.addActionRow(itemName)
|
||||
.addActionRow(lore)
|
||||
.addActionRow(enchants)
|
||||
.addActionRow(explanation)
|
||||
.addComponents(Label.of("Item", item))
|
||||
.addComponents(Label.of("Item name", itemName))
|
||||
.addComponents(Label.of("Lore", lore))
|
||||
.addComponents(Label.of("Enchants", enchants))
|
||||
.addComponents(Label.of("The explanation behind your item", explanation))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,17 +7,18 @@ import com.alttd.modalManager.DiscordModal;
|
|||
import com.alttd.util.UserToMessageTracker;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.actionrow.ActionRow;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.components.label.Label;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInput;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInputStyle;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.ActionRow;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInput;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInputStyle;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.interactions.modals.ModalMapping;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
import net.dv8tion.jda.api.requests.restaction.RoleAction;
|
||||
import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction;
|
||||
|
|
@ -93,10 +94,15 @@ public class ModalCreateEvent extends DiscordModal {
|
|||
.build();
|
||||
|
||||
Button eventButton = buttonManager.getButtonFor("event_button");
|
||||
if (eventButton == null) {
|
||||
event.replyEmbeds(Util.genericErrorEmbed("Error", "Unable to find event button"))
|
||||
.setEphemeral(true).queue(RestAction.getDefaultSuccess(), Util::handleFailure);
|
||||
return;
|
||||
}
|
||||
|
||||
try (MessageCreateData build = new MessageCreateBuilder()
|
||||
.setEmbeds(messageEmbed)
|
||||
.setActionRow(eventButton)
|
||||
.setComponents(ActionRow.of(eventButton))
|
||||
.build()) {
|
||||
|
||||
Guild guild = message.getGuild();
|
||||
|
|
@ -129,14 +135,15 @@ public class ModalCreateEvent extends DiscordModal {
|
|||
@Override
|
||||
public Modal getModal() {
|
||||
String currentTimestamp = String.valueOf(Instant.now().getEpochSecond());
|
||||
TextInput time = TextInput.create("time", "Epoch time, see https://epochconverter.com/", TextInputStyle.SHORT)
|
||||
TextInput time = TextInput.create("time", TextInputStyle.SHORT)
|
||||
.setValue("Epoch time, see https://epochconverter.com/")
|
||||
.setPlaceholder(currentTimestamp)
|
||||
.setMinLength(currentTimestamp.length())
|
||||
.setMaxLength(currentTimestamp.length() + 1)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
TextInput title = TextInput.create("title", "Event title", TextInputStyle.SHORT)
|
||||
TextInput title = TextInput.create("title", TextInputStyle.SHORT)
|
||||
.setPlaceholder("The title for your event")
|
||||
.setMinLength(5)
|
||||
.setMaxLength(128)
|
||||
|
|
@ -144,7 +151,7 @@ public class ModalCreateEvent extends DiscordModal {
|
|||
.build();
|
||||
|
||||
return Modal.create(getModalId(), "Create an event")
|
||||
.addComponents(ActionRow.of(title), ActionRow.of(time))
|
||||
.addComponents(Label.of("Event title", title), Label.of("time", time))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,16 +5,17 @@ import com.alttd.database.queries.commandOutputChannels.OutputType;
|
|||
import com.alttd.modalManager.DiscordModal;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.label.Label;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInput;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInputStyle;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInput;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInputStyle;
|
||||
import net.dv8tion.jda.api.interactions.modals.ModalMapping;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction;
|
||||
|
||||
|
|
@ -85,35 +86,35 @@ public class ModalEvidence extends DiscordModal {
|
|||
|
||||
@Override
|
||||
public Modal getModal() {
|
||||
TextInput user = TextInput.create("user", "User", TextInputStyle.SHORT)
|
||||
TextInput user = TextInput.create("user", TextInputStyle.SHORT)
|
||||
.setPlaceholder("username/id")
|
||||
.setRequiredRange(1, 256)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
TextInput punishmentType = TextInput.create("punishment-type", "Punishment Type", TextInputStyle.SHORT)
|
||||
TextInput punishmentType = TextInput.create("punishment-type", TextInputStyle.SHORT)
|
||||
.setPlaceholder("punishment type")
|
||||
.setRequiredRange(3, 256)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
TextInput reason = TextInput.create("reason", "Reason", TextInputStyle.SHORT)
|
||||
TextInput reason = TextInput.create("reason", TextInputStyle.SHORT)
|
||||
.setPlaceholder("punishment reason")
|
||||
.setRequiredRange(10, 256)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
TextInput evidence = TextInput.create("evidence", "Evidence", TextInputStyle.PARAGRAPH)
|
||||
TextInput evidence = TextInput.create("evidence", TextInputStyle.PARAGRAPH)
|
||||
.setPlaceholder("evidence")
|
||||
.setRequiredRange(10, 1024)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
return Modal.create(getModalId(), "Evidence")
|
||||
.addActionRow(user)
|
||||
.addActionRow(punishmentType)
|
||||
.addActionRow(reason)
|
||||
.addActionRow(evidence)
|
||||
.addComponents(Label.of("User", user))
|
||||
.addComponents(Label.of("Punishment Type", punishmentType))
|
||||
.addComponents(Label.of("Reason", reason))
|
||||
.addComponents(Label.of("Evidence", evidence))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,17 +7,17 @@ import com.alttd.database.queries.QueriesReminders.ReminderType;
|
|||
import com.alttd.modalManager.DiscordModal;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.actionrow.ActionRow;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.components.label.Label;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInput;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInputStyle;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.ActionRow;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInput;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInputStyle;
|
||||
import net.dv8tion.jda.api.interactions.modals.ModalMapping;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
import net.dv8tion.jda.api.utils.TimeUtil;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -94,7 +94,7 @@ public class ModalRemindMe extends DiscordModal {
|
|||
event.deferReply().setEphemeral(true).queue(defer -> {
|
||||
ButtonRemindMeConfirm.putReminder(userId, defer, reminder);
|
||||
defer.editOriginalEmbeds(messageEmbed).queue(message ->
|
||||
defer.editOriginalComponents().setActionRow(remindMeConfirm, remindMeCancel)
|
||||
defer.editOriginalComponents(ActionRow.of(remindMeConfirm, remindMeCancel))
|
||||
.queue(RestAction.getDefaultSuccess(), Util::handleFailure));
|
||||
});
|
||||
}
|
||||
|
|
@ -119,21 +119,22 @@ public class ModalRemindMe extends DiscordModal {
|
|||
|
||||
@Override
|
||||
public Modal getModal() {
|
||||
TextInput title = TextInput.create("title", "Title", TextInputStyle.SHORT)
|
||||
TextInput title = TextInput.create("title", TextInputStyle.SHORT)
|
||||
.setValue("Title")
|
||||
.setPlaceholder("reminder title")
|
||||
.setRequiredRange(1, 256)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
TextInput desc = TextInput.create("description", "Description", TextInputStyle.PARAGRAPH)
|
||||
TextInput desc = TextInput.create("description", TextInputStyle.PARAGRAPH)
|
||||
.setPlaceholder("optional reminder description")
|
||||
.setRequiredRange(1, 4000)
|
||||
.setRequired(false)
|
||||
.build();
|
||||
|
||||
return Modal.create(getModalId(), "Remind Me")
|
||||
.addActionRow(title)
|
||||
.addActionRow(desc)
|
||||
.addComponents(Label.of("Title", title))
|
||||
.addComponents(Label.of("Description", desc))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,13 +3,14 @@ package com.alttd.modalManager.modals;
|
|||
import com.alttd.modalManager.DiscordModal;
|
||||
import com.alttd.util.UserToMessageTracker;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.components.label.Label;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInput;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInputStyle;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInput;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInputStyle;
|
||||
import net.dv8tion.jda.api.interactions.modals.ModalMapping;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
|
||||
public class ModalReplySuggestion extends DiscordModal {
|
||||
|
|
@ -67,14 +68,14 @@ public class ModalReplySuggestion extends DiscordModal {
|
|||
|
||||
@Override
|
||||
public Modal getModal() {
|
||||
TextInput body = TextInput.create("response", "Response", TextInputStyle.PARAGRAPH)
|
||||
TextInput body = TextInput.create("response", TextInputStyle.PARAGRAPH)
|
||||
.setPlaceholder("Response...")
|
||||
.setRequiredRange(10, 1024)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
return Modal.create(getModalId(), "Suggestion Response")
|
||||
.addActionRow(body)
|
||||
.addComponents(Label.of("Response", body))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@ import com.alttd.database.queries.commandOutputChannels.OutputType;
|
|||
import com.alttd.modalManager.DiscordModal;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.actionrow.ActionRow;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.components.label.Label;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInput;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInputStyle;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
|
@ -13,11 +18,8 @@ import net.dv8tion.jda.api.entities.MessageEmbed;
|
|||
import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.GuildMessageChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInput;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInputStyle;
|
||||
import net.dv8tion.jda.api.interactions.modals.ModalMapping;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.RestAction;
|
||||
import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction;
|
||||
|
||||
|
|
@ -97,7 +99,7 @@ public class ModalSuggestion extends DiscordModal {
|
|||
.setEphemeral(true).queue(RestAction.getDefaultSuccess(), Util::handleFailure);
|
||||
return;
|
||||
}
|
||||
message.editMessageComponents().setActionRow(suggestionReviewAccept, suggestionReviewDeny).queue(
|
||||
message.editMessageComponents(ActionRow.of(suggestionReviewAccept, suggestionReviewDeny)).queue(
|
||||
success -> replyCallbackAction.setEmbeds(Util.genericSuccessEmbed("Success", "Your suggestion was submitted for review!"), suggestionToPlayer)
|
||||
.setEphemeral(true).queue(RestAction.getDefaultSuccess(), Util::handleFailure),
|
||||
failure -> replyCallbackAction.setEmbeds(Util.genericErrorEmbed("Error", "Couldn't prepare your suggestion for review."), suggestionToPlayer)
|
||||
|
|
@ -106,21 +108,21 @@ public class ModalSuggestion extends DiscordModal {
|
|||
|
||||
@Override
|
||||
public Modal getModal() {
|
||||
TextInput title = TextInput.create("title", "Title", TextInputStyle.SHORT)
|
||||
TextInput title = TextInput.create("title", TextInputStyle.SHORT)
|
||||
.setPlaceholder("Your suggestion in one sentence")
|
||||
.setRequiredRange(10, 100)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
TextInput body = TextInput.create("body", "Body", TextInputStyle.PARAGRAPH)
|
||||
TextInput body = TextInput.create("body", TextInputStyle.PARAGRAPH)
|
||||
.setPlaceholder("Suggestion...")
|
||||
.setRequiredRange(30, 1024)
|
||||
.setRequired(true)
|
||||
.build();
|
||||
|
||||
return Modal.create(getModalId(), "Suggestion Form")
|
||||
.addActionRow(title)
|
||||
.addActionRow(body)
|
||||
.addComponents(Label.of("Title", title))
|
||||
.addComponents(Label.of("Body", body))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,14 +5,15 @@ import com.alttd.util.Pair;
|
|||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.actionrow.ActionRow;
|
||||
import net.dv8tion.jda.api.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.components.label.Label;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInput;
|
||||
import net.dv8tion.jda.api.components.textinput.TextInputStyle;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
|
||||
import net.dv8tion.jda.api.interactions.components.ActionRow;
|
||||
import net.dv8tion.jda.api.interactions.modals.Modal;
|
||||
import net.dv8tion.jda.api.interactions.components.buttons.Button;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInput;
|
||||
import net.dv8tion.jda.api.interactions.components.text.TextInputStyle;
|
||||
import net.dv8tion.jda.api.modals.Modal;
|
||||
import net.dv8tion.jda.api.requests.restaction.ThreadChannelAction;
|
||||
|
||||
import java.awt.*;
|
||||
|
|
@ -25,24 +26,26 @@ public class Request {
|
|||
|
||||
public Modal modal(Member member) {
|
||||
TextInput requestTitle = TextInput
|
||||
.create("title", title, TextInputStyle.SHORT)
|
||||
.create("title", TextInputStyle.SHORT)
|
||||
.setPlaceholder(id)
|
||||
.setRequired(false)
|
||||
.build();
|
||||
|
||||
TextInput requestMessage = TextInput
|
||||
.create("request", message, TextInputStyle.PARAGRAPH)
|
||||
.create("request", TextInputStyle.PARAGRAPH)
|
||||
.build();
|
||||
|
||||
return Modal.create("request:" + id, name)
|
||||
.addActionRow(requestTitle)
|
||||
.addActionRow(requestMessage)
|
||||
.addComponents(Label.of(title, requestTitle))
|
||||
.addComponents(Label.of(message, requestMessage))
|
||||
.build();
|
||||
}
|
||||
|
||||
public void createThread(Member member, String title, String request) {
|
||||
TextChannel channel = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID).getTextChannelById(getChannel());
|
||||
if (title == null || title.isEmpty()) title = id;
|
||||
if (title == null || title.isEmpty()) {
|
||||
title = id;
|
||||
}
|
||||
String finalTitle = title;
|
||||
ThreadChannelAction threadChannelAction = channel.createThreadChannel(finalTitle);
|
||||
threadChannelAction.queue(threadChannel -> {
|
||||
|
|
@ -60,13 +63,14 @@ public class Request {
|
|||
embedBuilder.setTitle(title)
|
||||
.addField(getName(), request, false)
|
||||
.setColor(new Color(41, 43, 47));
|
||||
channel.sendMessageEmbeds(embedBuilder.build()).queue(message1 ->
|
||||
channel.sendMessageEmbeds(embedBuilder.build())
|
||||
.queue(message1 ->
|
||||
channel.editMessageEmbedsById(message1.getId(), embedBuilder.build())
|
||||
.setActionRow(
|
||||
.queue(message2 -> channel.editMessageComponentsById(message1.getId(), ActionRow.of(
|
||||
Button.primary("request:" + getId() + ":" + channel.getId() + ":" + message1.getId() + ":progress", "in progress"),
|
||||
Button.success("request:" + getId() + ":" + channel.getId() + ":" + message1.getId() + ":complete", "complete"),
|
||||
Button.danger("request:" + getId() + ":" + channel.getId() + ":" + message1.getId() + ":denied", "denied")
|
||||
).queue()
|
||||
)).queue())
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,23 +2,29 @@ package com.alttd.request;
|
|||
|
||||
import com.alttd.AltitudeBot;
|
||||
import com.alttd.util.Pair;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.actionrow.ActionRow;
|
||||
import net.dv8tion.jda.api.components.selections.StringSelectMenu;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
|
||||
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.selections.StringSelectMenu;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
@Slf4j
|
||||
public class RequestManager {
|
||||
|
||||
public static void init() {
|
||||
RequestConfig.reload();
|
||||
if (RequestConfig.REQUEST_MESSAGE == null || RequestConfig.REQUEST_MESSAGE.isEmpty())
|
||||
if (RequestConfig.REQUEST_MESSAGE == null || RequestConfig.REQUEST_MESSAGE.isEmpty()) {
|
||||
sendRequestMessage();
|
||||
}
|
||||
}
|
||||
|
||||
public static Pair<EmbedBuilder, StringSelectMenu.Builder> getRequestEmbed() {
|
||||
EmbedBuilder embedBuilder = new EmbedBuilder();
|
||||
|
|
@ -36,20 +42,39 @@ public class RequestManager {
|
|||
}
|
||||
|
||||
public static void sendRequestMessage() {
|
||||
TextChannel channel = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID).getTextChannelById(RequestConfig.REQUEST_CHANNEL);
|
||||
Guild guildById = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID);
|
||||
if (guildById == null) {
|
||||
log.error("Unable to find guild with id {} for sendRequestMessage", RequestConfig.REQUEST_GUILD_ID);
|
||||
return;
|
||||
}
|
||||
TextChannel channel = guildById
|
||||
.getTextChannelById(RequestConfig.REQUEST_CHANNEL);
|
||||
if (channel == null) {
|
||||
log.error("Unable to find channel with id {} for sendRequestMessage", RequestConfig.REQUEST_CHANNEL);
|
||||
return;
|
||||
}
|
||||
Pair<EmbedBuilder, StringSelectMenu.Builder> pair = getRequestEmbed();
|
||||
channel.sendMessageEmbeds(pair.getValue0().build()).setActionRow(
|
||||
pair.getValue1().build()
|
||||
).queue(m -> RequestConfig.setRequestMessage(m.getId()));
|
||||
channel.sendMessageEmbeds(pair.getValue0().build())
|
||||
.queue(message -> message.editMessageComponents(ActionRow.of(pair.getValue1().build()))
|
||||
.queue(m -> RequestConfig.setRequestMessage(m.getId())));
|
||||
}
|
||||
|
||||
public static void updateRequestMessage() {
|
||||
TextChannel channel = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID).getTextChannelById(RequestConfig.REQUEST_CHANNEL);
|
||||
Guild guildById = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID);
|
||||
if (guildById == null) {
|
||||
log.error("Unable to find guild with id for updateRequestMessage {}", RequestConfig.REQUEST_GUILD_ID);
|
||||
return;
|
||||
}
|
||||
TextChannel channel = guildById
|
||||
.getTextChannelById(RequestConfig.REQUEST_CHANNEL);
|
||||
if (channel == null) {
|
||||
log.error("Unable to find channel with id {} for updateRequestMessage", RequestConfig.REQUEST_CHANNEL);
|
||||
return;
|
||||
}
|
||||
Pair<EmbedBuilder, StringSelectMenu.Builder> pair = getRequestEmbed();
|
||||
channel.editMessageEmbedsById(RequestConfig.REQUEST_MESSAGE, pair.getValue0().build())
|
||||
.setActionRow(
|
||||
pair.getValue1().build()
|
||||
).queue(m -> RequestConfig.setRequestMessage(m.getId()));
|
||||
.queue(m -> m.editMessageComponents(ActionRow.of(pair.getValue1().build()))
|
||||
.queue(m2 -> RequestConfig.setRequestMessage(m2.getId())));
|
||||
}
|
||||
|
||||
public static Request getRequestById(String id) {
|
||||
|
|
@ -59,7 +84,7 @@ public class RequestManager {
|
|||
public static void onStringSelectInteraction(StringSelectInteractionEvent event) {
|
||||
String[] actions = event.getComponentId().split(":");
|
||||
if (actions[1].equals("create")) {
|
||||
String[] selection = event.getSelectedOptions().get(0).getValue().split(":");
|
||||
String[] selection = event.getSelectedOptions().getFirst().getValue().split(":");
|
||||
if (selection[0].equals("request") && selection[1].equals("open")) {
|
||||
String id = selection[2];
|
||||
event.replyModal(getRequestById(id).modal(event.getMember())).queue();
|
||||
|
|
@ -88,15 +113,43 @@ public class RequestManager {
|
|||
case "denied" -> {
|
||||
// TODO open a new modal to input a reason?
|
||||
// could also do this by command?
|
||||
event.reply("This request has been denied by " + event.getMember().getAsMention()).queue();
|
||||
ThreadChannel threadChannel = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID).getThreadChannelById(threadId);
|
||||
Member member = event.getMember();
|
||||
if (member == null) {
|
||||
event.reply("This request has been denied by an unknown member").queue();
|
||||
} else {
|
||||
event.reply("This request has been denied by " + member.getAsMention()).queue();
|
||||
}
|
||||
Guild guildById = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID);
|
||||
if (guildById == null) {
|
||||
log.error("Unable to find guild with id {} for denied", RequestConfig.REQUEST_GUILD_ID);
|
||||
return;
|
||||
}
|
||||
ThreadChannel threadChannel = guildById.getThreadChannelById(threadId);
|
||||
if (threadChannel == null) {
|
||||
log.error("Unable to find thread channel with id {} for denied", threadId);
|
||||
return;
|
||||
}
|
||||
threadChannel.getManager().setArchived(true).setLocked(true).queue();
|
||||
}
|
||||
case "complete" -> {
|
||||
// TODO open a new modal to input a reason?
|
||||
// could also do this by command?
|
||||
event.reply("This request has been completed by " + event.getMember().getAsMention()).queue();
|
||||
ThreadChannel threadChannel = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID).getThreadChannelById(threadId);
|
||||
Member member = event.getMember();
|
||||
if (member == null) {
|
||||
event.reply("This request has been completed by an unknown member").queue();
|
||||
} else {
|
||||
event.reply("This request has been completed by " + member.getAsMention()).queue();
|
||||
}
|
||||
Guild guildById = AltitudeBot.getInstance().getJDA().getGuildById(RequestConfig.REQUEST_GUILD_ID);
|
||||
if (guildById == null) {
|
||||
log.error("Unable to find guild with id {} for complete", RequestConfig.REQUEST_GUILD_ID);
|
||||
return;
|
||||
}
|
||||
ThreadChannel threadChannel = guildById.getThreadChannelById(threadId);
|
||||
if (threadChannel == null) {
|
||||
log.error("Unable to find thread channel with id {} for complete", threadId);
|
||||
return;
|
||||
}
|
||||
threadChannel.getManager().setArchived(true).setLocked(true).queue();
|
||||
}
|
||||
case "progress" -> {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
package com.alttd.selectMenuManager;
|
||||
|
||||
import net.dv8tion.jda.api.events.interaction.component.GenericSelectMenuInteractionEvent;
|
||||
import net.dv8tion.jda.api.components.selections.SelectMenu;
|
||||
import net.dv8tion.jda.api.components.selections.SelectOption;
|
||||
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.selections.SelectMenu;
|
||||
import net.dv8tion.jda.api.interactions.components.selections.SelectOption;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.alttd.selectMenuManager;
|
||||
|
||||
import com.alttd.selectMenuManager.selectMenus.SelectMenuAuction;
|
||||
import net.dv8tion.jda.api.events.interaction.component.GenericSelectMenuInteractionEvent;
|
||||
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -20,7 +19,7 @@ public class SelectMenuManager extends ListenerAdapter {
|
|||
|
||||
@Override
|
||||
public void onStringSelectInteraction(@NotNull StringSelectInteractionEvent event) {
|
||||
String selectMenuId = event.getSelectMenu().getId();
|
||||
String selectMenuId = event.getSelectMenu().getCustomId();
|
||||
Optional<DiscordSelectMenu> first = buttons.stream()
|
||||
.filter(discordModal -> discordModal.getSelectMenuId().equalsIgnoreCase(selectMenuId))
|
||||
.findFirst();
|
||||
|
|
|
|||
|
|
@ -8,18 +8,18 @@ import com.alttd.selectMenuManager.DiscordSelectMenu;
|
|||
import com.alttd.selectMenuManager.SelectMenuManager;
|
||||
import com.alttd.util.Util;
|
||||
import net.dv8tion.jda.api.EmbedBuilder;
|
||||
import net.dv8tion.jda.api.components.actionrow.ActionRow;
|
||||
import net.dv8tion.jda.api.components.selections.SelectMenu;
|
||||
import net.dv8tion.jda.api.components.selections.SelectOption;
|
||||
import net.dv8tion.jda.api.components.selections.StringSelectMenu;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||
import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
|
||||
import net.dv8tion.jda.api.interactions.components.selections.SelectMenu;
|
||||
import net.dv8tion.jda.api.interactions.components.selections.SelectOption;
|
||||
import net.dv8tion.jda.api.interactions.components.selections.StringSelectMenu;
|
||||
import net.dv8tion.jda.api.requests.restaction.interactions.ReplyCallbackAction;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class SelectMenuAuction extends DiscordSelectMenu {
|
||||
|
||||
|
|
@ -55,7 +55,9 @@ public class SelectMenuAuction extends DiscordSelectMenu {
|
|||
return;
|
||||
}
|
||||
|
||||
List<SelectOption> collect = event.getInteraction().getSelectedOptions().stream().filter(opt -> !opt.isDefault()).collect(Collectors.toList());
|
||||
List<SelectOption> collect = event.getInteraction().getSelectedOptions().stream()
|
||||
.filter(opt -> !opt.isDefault())
|
||||
.toList();
|
||||
if (collect.isEmpty()) {
|
||||
event.replyEmbeds(Util.genericErrorEmbed("Error", "Received default input"))
|
||||
.setEphemeral(true).queue();
|
||||
|
|
@ -67,7 +69,7 @@ public class SelectMenuAuction extends DiscordSelectMenu {
|
|||
return;
|
||||
}
|
||||
|
||||
SelectOption selectOption = collect.get(0);
|
||||
SelectOption selectOption = collect.getFirst();
|
||||
String value = selectOption.getValue();
|
||||
int bid;
|
||||
try {
|
||||
|
|
@ -132,7 +134,8 @@ public class SelectMenuAuction extends DiscordSelectMenu {
|
|||
}
|
||||
replyCallbackAction.setEmbeds(Util.genericSuccessEmbed("Success", "You successfully made the first bid on this item ($" + Util.formatNumber(currentBid) + ")!"))
|
||||
.queue();
|
||||
success.editMessageComponents().setActionRow(auction.getSelectMenu(selectMenuManager, true)).queue();
|
||||
success.editMessageComponents(ActionRow.of(auction.getSelectMenu(selectMenuManager, true)))
|
||||
.queue();
|
||||
},
|
||||
error -> replyCallbackAction.setEmbeds(Util.genericErrorEmbed("Error", "Unable to finish your bid")).queue())
|
||||
);
|
||||
|
|
@ -144,7 +147,7 @@ public class SelectMenuAuction extends DiscordSelectMenu {
|
|||
.setEphemeral(true).queue();
|
||||
return null;
|
||||
}
|
||||
return embeds.get(0);
|
||||
return embeds.getFirst();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user