diff --git a/src/main/java/net/dv8tion/jda/api/events/message/GenericMessageEvent.java b/src/main/java/net/dv8tion/jda/api/events/message/GenericMessageEvent.java index 87cf5fe439..d689300a0d 100644 --- a/src/main/java/net/dv8tion/jda/api/events/message/GenericMessageEvent.java +++ b/src/main/java/net/dv8tion/jda/api/events/message/GenericMessageEvent.java @@ -221,4 +221,39 @@ public PrivateChannel getPrivateChannel() throw new IllegalStateException("This message event did not happen in a private channel"); return (PrivateChannel) channel; } + + /** + * The {@link net.dv8tion.jda.api.entities.ThreadChannel ThreadChannel} the Message was received in. + *
If this Message was not received in a {@link net.dv8tion.jda.api.entities.ThreadChannel ThreadChannel}, + * this will throw an {@link java.lang.IllegalStateException}. + * + * @throws java.lang.IllegalStateException + * If this was not sent in a {@link net.dv8tion.jda.api.entities.ThreadChannel}. + * + * @return The ThreadChannel the Message was received in + * + * @see #isFromGuild() + * @see #isFromType(ChannelType) + * @see #getChannelType() + * @see #isFromThread() + */ + @Nonnull + public ThreadChannel getThreadChannel() + { + if (!isFromThread()) + throw new IllegalStateException("This message event did not happen in a thread channel"); + return (ThreadChannel) channel; + } + + /** + * If the message event was from a {@link net.dv8tion.jda.api.entities.ThreadChannel ThreadChannel} + * + * @return If the message event was from a ThreadChannel + * + * @see ChannelType#isThread() + */ + public boolean isFromThread() + { + return getChannelType().isThread(); + } }