You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

RestInviteMetadata.cs 1.7 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. using Model = Discord.API.InviteMetadata;
  3. namespace Discord.Rest
  4. {
  5. public class RestInviteMetadata : RestInvite, IInviteMetadata
  6. {
  7. private long? _createdAtTicks;
  8. public bool IsRevoked { get; private set; }
  9. public bool IsTemporary { get; private set; }
  10. public int? MaxAge { get; private set; }
  11. public int? MaxUses { get; private set; }
  12. public int? Uses { get; private set; }
  13. public RestUser Inviter { get; private set; }
  14. public DateTimeOffset? CreatedAt => DateTimeUtils.FromTicks(_createdAtTicks);
  15. internal RestInviteMetadata(BaseDiscordClient discord, IGuild guild, IChannel channel, string id)
  16. : base(discord, guild, channel, id)
  17. {
  18. }
  19. internal static RestInviteMetadata Create(BaseDiscordClient discord, IGuild guild, IChannel channel, Model model)
  20. {
  21. var entity = new RestInviteMetadata(discord, guild, channel, model.Code);
  22. entity.Update(model);
  23. return entity;
  24. }
  25. internal void Update(Model model)
  26. {
  27. base.Update(model);
  28. Inviter = model.Inviter != null ? RestUser.Create(Discord, model.Inviter) : null;
  29. IsRevoked = model.Revoked;
  30. IsTemporary = model.Temporary;
  31. MaxAge = model.MaxAge.IsSpecified ? model.MaxAge.Value : (int?)null;
  32. MaxUses = model.MaxUses.IsSpecified ? model.MaxUses.Value : (int?)null;
  33. Uses = model.Uses.IsSpecified ? model.Uses.Value : (int?)null;
  34. _createdAtTicks = model.CreatedAt.IsSpecified ? model.CreatedAt.Value.UtcTicks : (long?)null;
  35. }
  36. IUser IInviteMetadata.Inviter => Inviter;
  37. }
  38. }