fix: Invite and InviteMetadata properties (#1639)
* fixes #1495 * keep obsolete properties and return types for compatibility * missing properties for SocketInvite * Restore xml docs and change obsolete message Co-authored-by: Paulo <pnmanjos@hotmail.com>
This commit is contained in:
@@ -20,6 +20,13 @@ namespace Discord
|
|||||||
/// </returns>
|
/// </returns>
|
||||||
string Url { get; }
|
string Url { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the user that created this invite.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// A user that created this invite.
|
||||||
|
/// </returns>
|
||||||
|
IUser Inviter { get; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the channel this invite is linked to.
|
/// Gets the channel this invite is linked to.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -83,5 +90,19 @@ namespace Discord
|
|||||||
/// invite points to; <c>null</c> if one cannot be obtained.
|
/// invite points to; <c>null</c> if one cannot be obtained.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
int? MemberCount { get; }
|
int? MemberCount { get; }
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the user this invite is linked to via <see cref="TargetUserType"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// A user that is linked to this invite.
|
||||||
|
/// </returns>
|
||||||
|
IUser TargetUser { get; }
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the type of the linked <see cref="TargetUser"/> for this invite.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// The type of the linked user that is linked to this invite.
|
||||||
|
/// </returns>
|
||||||
|
TargetUserType TargetUserType { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,20 +7,6 @@ namespace Discord
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IInviteMetadata : IInvite
|
public interface IInviteMetadata : IInvite
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Gets the user that created this invite.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>
|
|
||||||
/// A user that created this invite.
|
|
||||||
/// </returns>
|
|
||||||
IUser Inviter { get; }
|
|
||||||
/// <summary>
|
|
||||||
/// Gets a value that indicates whether the invite has been revoked.
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>
|
|
||||||
/// <c>true</c> if this invite was revoked; otherwise <c>false</c>.
|
|
||||||
/// </returns>
|
|
||||||
bool IsRevoked { get; }
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets a value that indicates whether the invite is a temporary one.
|
/// Gets a value that indicates whether the invite is a temporary one.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -30,6 +16,14 @@ namespace Discord
|
|||||||
/// </returns>
|
/// </returns>
|
||||||
bool IsTemporary { get; }
|
bool IsTemporary { get; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Gets a value that indicates whether the invite has been revoked.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// <c>true</c> if this invite was revoked; otherwise <c>false</c>.
|
||||||
|
/// </returns>
|
||||||
|
[Obsolete("This property doesn't exist anymore and shouldn't be used.")]
|
||||||
|
bool IsRevoked { get; }
|
||||||
|
/// <summary>
|
||||||
/// Gets the time (in seconds) until the invite expires.
|
/// Gets the time (in seconds) until the invite expires.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>
|
/// <returns>
|
||||||
|
|||||||
@@ -11,9 +11,15 @@ namespace Discord.API
|
|||||||
public Optional<InviteGuild> Guild { get; set; }
|
public Optional<InviteGuild> Guild { get; set; }
|
||||||
[JsonProperty("channel")]
|
[JsonProperty("channel")]
|
||||||
public InviteChannel Channel { get; set; }
|
public InviteChannel Channel { get; set; }
|
||||||
|
[JsonProperty("inviter")]
|
||||||
|
public Optional<User> Inviter { get; set; }
|
||||||
[JsonProperty("approximate_presence_count")]
|
[JsonProperty("approximate_presence_count")]
|
||||||
public Optional<int?> PresenceCount { get; set; }
|
public Optional<int?> PresenceCount { get; set; }
|
||||||
[JsonProperty("approximate_member_count")]
|
[JsonProperty("approximate_member_count")]
|
||||||
public Optional<int?> MemberCount { get; set; }
|
public Optional<int?> MemberCount { get; set; }
|
||||||
|
[JsonProperty("target_user")]
|
||||||
|
public Optional<User> TargetUser { get; set; }
|
||||||
|
[JsonProperty("target_user_type")]
|
||||||
|
public Optional<TargetUserType> TargetUserType { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,19 +6,15 @@ namespace Discord.API
|
|||||||
{
|
{
|
||||||
internal class InviteMetadata : Invite
|
internal class InviteMetadata : Invite
|
||||||
{
|
{
|
||||||
[JsonProperty("inviter")]
|
|
||||||
public User Inviter { get; set; }
|
|
||||||
[JsonProperty("uses")]
|
[JsonProperty("uses")]
|
||||||
public Optional<int> Uses { get; set; }
|
public int Uses { get; set; }
|
||||||
[JsonProperty("max_uses")]
|
[JsonProperty("max_uses")]
|
||||||
public Optional<int> MaxUses { get; set; }
|
public int MaxUses { get; set; }
|
||||||
[JsonProperty("max_age")]
|
[JsonProperty("max_age")]
|
||||||
public Optional<int> MaxAge { get; set; }
|
public int MaxAge { get; set; }
|
||||||
[JsonProperty("temporary")]
|
[JsonProperty("temporary")]
|
||||||
public bool Temporary { get; set; }
|
public bool Temporary { get; set; }
|
||||||
[JsonProperty("created_at")]
|
[JsonProperty("created_at")]
|
||||||
public Optional<DateTimeOffset> CreatedAt { get; set; }
|
public DateTimeOffset CreatedAt { get; set; }
|
||||||
[JsonProperty("revoked")]
|
|
||||||
public bool Revoked { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,12 @@ namespace Discord.Rest
|
|||||||
public ulong ChannelId { get; private set; }
|
public ulong ChannelId { get; private set; }
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public ulong? GuildId { get; private set; }
|
public ulong? GuildId { get; private set; }
|
||||||
|
/// <inheritdoc />
|
||||||
|
public IUser Inviter { get; private set; }
|
||||||
|
/// <inheritdoc />
|
||||||
|
public IUser TargetUser { get; private set; }
|
||||||
|
/// <inheritdoc />
|
||||||
|
public TargetUserType TargetUserType { get; private set; }
|
||||||
internal IChannel Channel { get; }
|
internal IChannel Channel { get; }
|
||||||
internal IGuild Guild { get; }
|
internal IGuild Guild { get; }
|
||||||
|
|
||||||
@@ -50,6 +56,9 @@ namespace Discord.Rest
|
|||||||
MemberCount = model.MemberCount.IsSpecified ? model.MemberCount.Value : null;
|
MemberCount = model.MemberCount.IsSpecified ? model.MemberCount.Value : null;
|
||||||
PresenceCount = model.PresenceCount.IsSpecified ? model.PresenceCount.Value : null;
|
PresenceCount = model.PresenceCount.IsSpecified ? model.PresenceCount.Value : null;
|
||||||
ChannelType = (ChannelType)model.Channel.Type;
|
ChannelType = (ChannelType)model.Channel.Type;
|
||||||
|
Inviter = model.Inviter.IsSpecified ? RestUser.Create(Discord, model.Inviter.Value) : null;
|
||||||
|
TargetUser = model.TargetUser.IsSpecified ? RestUser.Create(Discord, model.TargetUser.Value) : null;
|
||||||
|
TargetUserType = model.TargetUserType.IsSpecified ? model.TargetUserType.Value : TargetUserType.Undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|||||||
@@ -6,9 +6,10 @@ namespace Discord.Rest
|
|||||||
/// <summary> Represents additional information regarding the REST-based invite object. </summary>
|
/// <summary> Represents additional information regarding the REST-based invite object. </summary>
|
||||||
public class RestInviteMetadata : RestInvite, IInviteMetadata
|
public class RestInviteMetadata : RestInvite, IInviteMetadata
|
||||||
{
|
{
|
||||||
private long? _createdAtTicks;
|
private long _createdAtTicks;
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
[Obsolete("This property doesn't exist anymore and shouldn't be used.")]
|
||||||
public bool IsRevoked { get; private set; }
|
public bool IsRevoked { get; private set; }
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public bool IsTemporary { get; private set; }
|
public bool IsTemporary { get; private set; }
|
||||||
@@ -18,10 +19,6 @@ namespace Discord.Rest
|
|||||||
public int? MaxUses { get; private set; }
|
public int? MaxUses { get; private set; }
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public int? Uses { get; private set; }
|
public int? Uses { get; private set; }
|
||||||
/// <summary>
|
|
||||||
/// Gets the user that created this invite.
|
|
||||||
/// </summary>
|
|
||||||
public RestUser Inviter { get; private set; }
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public DateTimeOffset? CreatedAt => DateTimeUtils.FromTicks(_createdAtTicks);
|
public DateTimeOffset? CreatedAt => DateTimeUtils.FromTicks(_createdAtTicks);
|
||||||
@@ -39,16 +36,11 @@ namespace Discord.Rest
|
|||||||
internal void Update(Model model)
|
internal void Update(Model model)
|
||||||
{
|
{
|
||||||
base.Update(model);
|
base.Update(model);
|
||||||
Inviter = model.Inviter != null ? RestUser.Create(Discord, model.Inviter) : null;
|
|
||||||
IsRevoked = model.Revoked;
|
|
||||||
IsTemporary = model.Temporary;
|
IsTemporary = model.Temporary;
|
||||||
MaxAge = model.MaxAge.IsSpecified ? model.MaxAge.Value : (int?)null;
|
MaxAge = model.MaxAge;
|
||||||
MaxUses = model.MaxUses.IsSpecified ? model.MaxUses.Value : (int?)null;
|
MaxUses = model.MaxUses;
|
||||||
Uses = model.Uses.IsSpecified ? model.Uses.Value : (int?)null;
|
Uses = model.Uses;
|
||||||
_createdAtTicks = model.CreatedAt.IsSpecified ? model.CreatedAt.Value.UtcTicks : (long?)null;
|
_createdAtTicks = model.CreatedAt.UtcTicks;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
IUser IInviteMetadata.Inviter => Inviter;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ namespace Discord.WebSocket
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
int? IInvite.MemberCount => throw new NotImplementedException();
|
int? IInvite.MemberCount => throw new NotImplementedException();
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
[Obsolete("This property doesn't exist anymore and shouldn't be used.")]
|
||||||
bool IInviteMetadata.IsRevoked => throw new NotImplementedException();
|
bool IInviteMetadata.IsRevoked => throw new NotImplementedException();
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public bool IsTemporary { get; private set; }
|
public bool IsTemporary { get; private set; }
|
||||||
@@ -138,6 +139,8 @@ namespace Discord.WebSocket
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
IChannel IInvite.Channel => Channel;
|
IChannel IInvite.Channel => Channel;
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
IUser IInviteMetadata.Inviter => Inviter;
|
IUser IInvite.Inviter => Inviter;
|
||||||
|
/// <inheritdoc />
|
||||||
|
IUser IInvite.TargetUser => TargetUser;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user