using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Discord { public static class ChannelExtensions { /// /// Attempts to get the based off of the channel's interfaces. /// /// The channel to get the type of. /// The of the channel if found, otherwise . public static ChannelType? GetChannelType(this IChannel channel) { switch (channel) { case IStageChannel: return ChannelType.Stage; case IThreadChannel thread: return thread.Type switch { ThreadType.NewsThread => ChannelType.NewsThread, ThreadType.PrivateThread => ChannelType.PrivateThread, ThreadType.PublicThread => ChannelType.PublicThread, _ => null, }; case ICategoryChannel: return ChannelType.Category; case IDMChannel: return ChannelType.DM; case IGroupChannel: return ChannelType.Group; case INewsChannel: return ChannelType.News; case IVoiceChannel: return ChannelType.Voice; case ITextChannel: return ChannelType.Text; case IMediaChannel: return ChannelType.Media; case IForumChannel: return ChannelType.Forum; } return null; } } }