mirror of
https://github.com/DiscordSRV/Ascension.git
synced 2025-02-16 01:41:26 +01:00
Fix error in ChannelConfigHelper#getByThreadChannel
This commit is contained in:
parent
8e12731119
commit
3a524c62a3
@ -0,0 +1,12 @@
|
||||
package com.discordsrv.api.discord.entity.channel;
|
||||
|
||||
import com.discordsrv.api.discord.entity.Snowflake;
|
||||
|
||||
public interface DiscordChannel extends Snowflake {
|
||||
|
||||
/**
|
||||
* Returns the type of channel this is.
|
||||
* @return the type of the channel
|
||||
*/
|
||||
DiscordChannelType getType();
|
||||
}
|
@ -36,6 +36,7 @@ public enum DiscordChannelType implements JDAEntity<ChannelType> {
|
||||
VOICE(ChannelType.VOICE),
|
||||
GROUP(ChannelType.GROUP),
|
||||
CATEGORY(ChannelType.CATEGORY),
|
||||
FORUM(ChannelType.FORUM),
|
||||
NEWS(ChannelType.NEWS),
|
||||
STAGE(ChannelType.STAGE),
|
||||
GUILD_NEWS_THREAD(ChannelType.GUILD_NEWS_THREAD),
|
||||
|
@ -3,5 +3,5 @@ package com.discordsrv.api.discord.entity.channel;
|
||||
import com.discordsrv.api.discord.entity.JDAEntity;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.ForumChannel;
|
||||
|
||||
public interface DiscordForumChannel extends DiscordThreadContainer, JDAEntity<ForumChannel> {
|
||||
public interface DiscordForumChannel extends DiscordChannel, DiscordThreadContainer, JDAEntity<ForumChannel> {
|
||||
}
|
||||
|
@ -24,27 +24,17 @@
|
||||
package com.discordsrv.api.discord.entity.channel;
|
||||
|
||||
import com.discordsrv.api.DiscordSRVApi;
|
||||
import com.discordsrv.api.discord.entity.Snowflake;
|
||||
import com.discordsrv.api.discord.entity.message.ReceivedDiscordMessage;
|
||||
import com.discordsrv.api.discord.entity.message.SendableDiscordMessage;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
/**
|
||||
* A Discord channel that can send/receive messages.
|
||||
*/
|
||||
public interface DiscordMessageChannel extends Snowflake {
|
||||
|
||||
/**
|
||||
* Returns the type of channel this is.
|
||||
* @return the type of the channel
|
||||
*/
|
||||
DiscordChannelType getType();
|
||||
public interface DiscordMessageChannel extends DiscordChannel {
|
||||
|
||||
/**
|
||||
* Sends the provided message to the channel.
|
||||
|
@ -46,6 +46,7 @@ import com.github.benmanes.caffeine.cache.AsyncLoadingCache;
|
||||
import com.github.benmanes.caffeine.cache.Expiry;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import net.dv8tion.jda.api.entities.channel.Channel;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.*;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.api.exceptions.ErrorResponseException;
|
||||
@ -341,6 +342,16 @@ public class DiscordAPIImpl implements DiscordAPI {
|
||||
return getDirectMessageChannelById(id);
|
||||
}
|
||||
|
||||
public DiscordChannel getChannel(Channel jda) {
|
||||
if (jda instanceof ForumChannel) {
|
||||
return getForumChannel((ForumChannel) jda);
|
||||
} else if (jda instanceof MessageChannel) {
|
||||
return getMessageChannel((MessageChannel) jda);
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unmappable Channel type: " + jda.getClass().getName());
|
||||
}
|
||||
}
|
||||
|
||||
public AbstractDiscordMessageChannel<?> getMessageChannel(MessageChannel jda) {
|
||||
if (jda instanceof TextChannel) {
|
||||
return getTextChannel((TextChannel) jda);
|
||||
|
@ -49,7 +49,7 @@ public class DiscordDMChannelImpl extends AbstractDiscordMessageChannel<PrivateC
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<ReceivedDiscordMessage> sendMessage(@NotNull SendableDiscordMessage message) {
|
||||
public @NotNull CompletableFuture<ReceivedDiscordMessage> sendMessage(@NotNull SendableDiscordMessage message) {
|
||||
if (message.isWebhookMessage()) {
|
||||
throw new IllegalArgumentException("Cannot send webhook messages to DMChannels");
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.discordsrv.common.discord.api.entity.channel;
|
||||
|
||||
import com.discordsrv.api.discord.entity.channel.DiscordChannelType;
|
||||
import com.discordsrv.api.discord.entity.channel.DiscordForumChannel;
|
||||
import com.discordsrv.api.discord.entity.channel.DiscordThreadChannel;
|
||||
import com.discordsrv.api.discord.entity.guild.DiscordGuild;
|
||||
@ -110,4 +111,9 @@ public class DiscordForumChannelImpl implements DiscordForumChannel {
|
||||
.thenApply(channel -> discordSRV.discordAPI().getThreadChannel(channel));
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public DiscordChannelType getType() {
|
||||
return DiscordChannelType.FORUM;
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,6 @@ import net.dv8tion.jda.api.entities.WebhookClient;
|
||||
import net.dv8tion.jda.api.entities.channel.ChannelType;
|
||||
import net.dv8tion.jda.api.entities.channel.attribute.IThreadContainer;
|
||||
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
|
||||
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
|
||||
import net.dv8tion.jda.internal.requests.IncomingWebhookClient;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@ -43,9 +42,7 @@ public class DiscordThreadChannelImpl extends AbstractDiscordGuildMessageChannel
|
||||
super(discordSRV, thread);
|
||||
|
||||
IThreadContainer container = thread.getParentChannel();
|
||||
this.threadContainer = container instanceof MessageChannel
|
||||
? (DiscordThreadContainer) discordSRV.discordAPI().getMessageChannel((MessageChannel) container)
|
||||
: null;
|
||||
this.threadContainer = (DiscordThreadContainer) discordSRV.discordAPI().getChannel(container);
|
||||
this.guild = discordSRV.discordAPI().getGuild(thread.getGuild());
|
||||
}
|
||||
|
||||
@ -56,11 +53,6 @@ public class DiscordThreadChannelImpl extends AbstractDiscordGuildMessageChannel
|
||||
.thenApply(client -> ((IncomingWebhookClient) client).withThreadId(Long.toUnsignedString(getId())));
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getName() {
|
||||
return channel.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull DiscordGuild getGuild() {
|
||||
return guild;
|
||||
|
Loading…
Reference in New Issue
Block a user