diff --git a/EssentialsDiscord/src/main/java/net/essentialsx/api/v2/services/discord/InteractionCommandArgumentType.java b/EssentialsDiscord/src/main/java/net/essentialsx/api/v2/services/discord/InteractionCommandArgumentType.java index 1e5a17f9f..940abbca2 100644 --- a/EssentialsDiscord/src/main/java/net/essentialsx/api/v2/services/discord/InteractionCommandArgumentType.java +++ b/EssentialsDiscord/src/main/java/net/essentialsx/api/v2/services/discord/InteractionCommandArgumentType.java @@ -4,22 +4,10 @@ package net.essentialsx.api.v2.services.discord; * Represents an argument type to be shown on the Discord client. */ public enum InteractionCommandArgumentType { - STRING(3), - INTEGER(4), - BOOLEAN(5), - USER(6), - CHANNEL(7); - - private final int id; - InteractionCommandArgumentType(int id) { - this.id = id; - } - - /** - * Gets the internal Discord ID for this argument type. - * @return the internal Discord ID. - */ - public int getId() { - return id; - } + STRING, + INTEGER, + BOOLEAN, + USER, + CHANNEL, + ROLE, } diff --git a/EssentialsDiscord/src/main/java/net/essentialsx/api/v2/services/discord/InteractionEvent.java b/EssentialsDiscord/src/main/java/net/essentialsx/api/v2/services/discord/InteractionEvent.java index c4dbdbdc6..eece3cb36 100644 --- a/EssentialsDiscord/src/main/java/net/essentialsx/api/v2/services/discord/InteractionEvent.java +++ b/EssentialsDiscord/src/main/java/net/essentialsx/api/v2/services/discord/InteractionEvent.java @@ -51,6 +51,13 @@ public interface InteractionEvent { */ InteractionChannel getChannelArgument(String key); + /** + * Helper method to get the role representation of the argument by the given key or null if none by that key is present. + * @param key The key of the argument to lookup. + * @return the role value or null + */ + InteractionRole getRoleArgument(String key); + /** * Gets the channel ID where this interaction occurred. * @return the channel ID. diff --git a/EssentialsDiscord/src/main/java/net/essentialsx/discord/interactions/InteractionEventImpl.java b/EssentialsDiscord/src/main/java/net/essentialsx/discord/interactions/InteractionEventImpl.java index c6c601934..b43030d04 100644 --- a/EssentialsDiscord/src/main/java/net/essentialsx/discord/interactions/InteractionEventImpl.java +++ b/EssentialsDiscord/src/main/java/net/essentialsx/discord/interactions/InteractionEventImpl.java @@ -9,6 +9,7 @@ import net.dv8tion.jda.api.interactions.commands.OptionMapping; import net.essentialsx.api.v2.services.discord.InteractionChannel; import net.essentialsx.api.v2.services.discord.InteractionEvent; import net.essentialsx.api.v2.services.discord.InteractionMember; +import net.essentialsx.api.v2.services.discord.InteractionRole; import net.essentialsx.discord.EssentialsDiscord; import net.essentialsx.discord.util.DiscordUtil; @@ -79,6 +80,12 @@ public class InteractionEventImpl implements InteractionEvent { return mapping == null ? null : new InteractionChannelImpl(mapping.getAsGuildChannel()); } + @Override + public InteractionRole getRoleArgument(String key) { + final OptionMapping mapping = event.getOption(key); + return mapping == null ? null : new InteractionRoleImpl(mapping.getAsRole()); + } + @Override public String getChannelId() { return event.getChannel().getId();