You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.7 KiB
68 lines
2.7 KiB
using System.Diagnostics;
|
|
using Model = Discord.API.User;
|
|
|
|
namespace Discord.WebSocket
|
|
{
|
|
[DebuggerDisplay("{DebuggerDisplay,nq}")]
|
|
public class SocketGroupUser : SocketUser, IGroupUser
|
|
{
|
|
/// <summary>
|
|
/// Gets the group channel of the user.
|
|
/// </summary>
|
|
/// <returns>
|
|
/// A <see cref="SocketGroupChannel" /> representing the channel of which the user belongs to.
|
|
/// </returns>
|
|
public SocketGroupChannel Channel { get; }
|
|
/// <inheritdoc />
|
|
internal override SocketGlobalUser GlobalUser { get; }
|
|
|
|
/// <inheritdoc />
|
|
public override bool IsBot { get { return GlobalUser.IsBot; } internal set { GlobalUser.IsBot = value; } }
|
|
/// <inheritdoc />
|
|
public override string Username { get { return GlobalUser.Username; } internal set { GlobalUser.Username = value; } }
|
|
/// <inheritdoc />
|
|
public override ushort DiscriminatorValue { get { return GlobalUser.DiscriminatorValue; } internal set { GlobalUser.DiscriminatorValue = value; } }
|
|
/// <inheritdoc />
|
|
public override string AvatarId { get { return GlobalUser.AvatarId; } internal set { GlobalUser.AvatarId = value; } }
|
|
/// <inheritdoc />
|
|
internal override SocketPresence Presence { get { return GlobalUser.Presence; } set { GlobalUser.Presence = value; } }
|
|
|
|
/// <inheritdoc />
|
|
public override bool IsWebhook => false;
|
|
|
|
internal SocketGroupUser(SocketGroupChannel channel, SocketGlobalUser globalUser)
|
|
: base(channel.Discord, globalUser.Id)
|
|
{
|
|
Channel = channel;
|
|
GlobalUser = globalUser;
|
|
}
|
|
internal static SocketGroupUser Create(SocketGroupChannel channel, ClientState state, Model model)
|
|
{
|
|
var entity = new SocketGroupUser(channel, channel.Discord.GetOrCreateUser(state, model));
|
|
entity.Update(state, model);
|
|
return entity;
|
|
}
|
|
|
|
private string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")}, Group)";
|
|
internal new SocketGroupUser Clone() => MemberwiseClone() as SocketGroupUser;
|
|
|
|
//IVoiceState
|
|
/// <inheritdoc />
|
|
bool IVoiceState.IsDeafened => false;
|
|
/// <inheritdoc />
|
|
bool IVoiceState.IsMuted => false;
|
|
/// <inheritdoc />
|
|
bool IVoiceState.IsSelfDeafened => false;
|
|
/// <inheritdoc />
|
|
bool IVoiceState.IsSelfMuted => false;
|
|
/// <inheritdoc />
|
|
bool IVoiceState.IsSuppressed => false;
|
|
/// <inheritdoc />
|
|
IVoiceChannel IVoiceState.VoiceChannel => null;
|
|
/// <inheritdoc />
|
|
string IVoiceState.VoiceSessionId => null;
|
|
/// <inheritdoc />
|
|
bool IVoiceState.IsStreaming => false;
|
|
}
|
|
}
|