| @@ -9,7 +9,7 @@ namespace Discord.WebSocket | |||
| [DebuggerDisplay(@"{DebuggerDisplay,nq}")] | |||
| public class SocketInvite : SocketEntity<string>, IInviteMetadata | |||
| { | |||
| private long _createdAtTicks; | |||
| private long _createdAtTicks; | |||
| /// <inheritdoc /> | |||
| public ulong ChannelId { get; private set; } | |||
| @@ -24,11 +24,26 @@ namespace Discord.WebSocket | |||
| /// </summary> | |||
| public SocketGuild Guild { get; private set; } | |||
| /// <inheritdoc /> | |||
| ChannelType IInvite.ChannelType => throw new NotImplementedException(); | |||
| ChannelType IInvite.ChannelType | |||
| { | |||
| get | |||
| { | |||
| switch (Channel) | |||
| { | |||
| case IVoiceChannel voiceChannel: return ChannelType.Voice; | |||
| case ICategoryChannel categoryChannel: return ChannelType.Category; | |||
| case IDMChannel dmChannel: return ChannelType.DM; | |||
| case IGroupChannel groupChannel: return ChannelType.Group; | |||
| case SocketNewsChannel socketNewsChannel: return ChannelType.News; | |||
| case ITextChannel textChannel: return ChannelType.Text; | |||
| default: throw new InvalidOperationException("Invalid channel type."); | |||
| } | |||
| } | |||
| } | |||
| /// <inheritdoc /> | |||
| string IInvite.ChannelName => throw new NotImplementedException(); | |||
| string IInvite.ChannelName => Channel.Name; | |||
| /// <inheritdoc /> | |||
| string IInvite.GuildName => throw new NotImplementedException(); | |||
| string IInvite.GuildName => Guild.Name; | |||
| /// <inheritdoc /> | |||
| int? IInvite.PresenceCount => throw new NotImplementedException(); | |||
| /// <inheritdoc /> | |||
| @@ -109,28 +124,9 @@ namespace Discord.WebSocket | |||
| private string DebuggerDisplay => $"{Url} ({Guild?.Name} / {Channel.Name})"; | |||
| /// <inheritdoc /> | |||
| IGuild IInvite.Guild | |||
| { | |||
| get | |||
| { | |||
| if (Guild != null) | |||
| return Guild; | |||
| if (Channel is IGuildChannel guildChannel) | |||
| return guildChannel.Guild; //If it fails, it'll still return this exception | |||
| throw new InvalidOperationException("Unable to return this entity's parent unless it was fetched through that object."); | |||
| } | |||
| } | |||
| IGuild IInvite.Guild => Guild; | |||
| /// <inheritdoc /> | |||
| IChannel IInvite.Channel | |||
| { | |||
| get | |||
| { | |||
| if (Channel != null) | |||
| return Channel; | |||
| throw new InvalidOperationException("Unable to return this entity's parent unless it was fetched through that object."); | |||
| } | |||
| } | |||
| IChannel IInvite.Channel => Channel; | |||
| /// <inheritdoc /> | |||
| IUser IInviteMetadata.Inviter => Inviter; | |||
| } | |||