This commit is contained in:
Mihail Gribkov
2024-10-22 21:46:54 +03:00
committed by GitHub
parent dfe679cbfd
commit 8b929690a9
15 changed files with 36 additions and 2 deletions

View File

@@ -8,6 +8,11 @@ namespace Discord
/// </summary>
public interface IChannel : ISnowflakeEntity
{
/// <summary>
/// Get the type of this channel.
/// </summary>
ChannelType ChannelType { get; }
/// <summary>
/// Gets the name of this channel.
/// </summary>

View File

@@ -12,6 +12,10 @@ namespace Discord.Rest
public class RestChannel : RestEntity<ulong>, IChannel, IUpdateable
{
#region RestChannel
/// <inheritdoc />
public ChannelType ChannelType { get; internal set; }
/// <inheritdoc />
public virtual DateTimeOffset CreatedAt => SnowflakeUtils.FromSnowflake(Id);
@@ -68,7 +72,11 @@ namespace Discord.Rest
_ => throw new InvalidOperationException($"Unexpected channel type: {model.Type}"),
};
}
internal virtual void Update(Model model) { }
internal virtual void Update(Model model)
{
ChannelType = model.Type;
}
/// <inheritdoc />
public virtual Task UpdateAsync(RequestOptions options = null) => Task.Delay(0);

View File

@@ -47,6 +47,8 @@ namespace Discord.Rest
}
internal override void Update(Model model)
{
base.Update(model);
if(model.Recipients.IsSpecified)
Recipient?.Update(model.Recipients.Value[0]);
}

View File

@@ -41,6 +41,7 @@ namespace Discord.Rest
}
internal override void Update(Model model)
{
base.Update(model);
if (model.Name.IsSpecified)
Name = model.Name.Value;
if (model.Icon.IsSpecified)

View File

@@ -53,6 +53,7 @@ namespace Discord.Rest
}
internal override void Update(Model model)
{
base.Update(model);
Name = model.Name.Value;
if (model.Position.IsSpecified)

View File

@@ -14,6 +14,9 @@ namespace Discord.WebSocket
public abstract class SocketChannel : SocketEntity<ulong>, IChannel
{
#region SocketChannel
/// <inheritdoc />
public ChannelType ChannelType { get; internal set; }
/// <summary>
/// Gets when the channel is created.
/// </summary>
@@ -38,7 +41,11 @@ namespace Discord.WebSocket
_ => throw new InvalidOperationException($"Unexpected channel type: {model.Type}"),
};
}
internal abstract void Update(ClientState state, Model model);
internal virtual void Update(ClientState state, Model model)
{
ChannelType = model.Type;
}
#endregion
#region User

View File

@@ -44,6 +44,7 @@ namespace Discord.WebSocket
internal override void Update(ClientState state, Model model)
{
Recipient.Update(state, model.Recipients.Value[0]);
base.Update(state, model);
}
internal static SocketDMChannel Create(DiscordSocketClient discord, ClientState state, ulong channelId, API.User recipient)
{

View File

@@ -63,6 +63,7 @@ namespace Discord.WebSocket
}
internal override void Update(ClientState state, Model model)
{
base.Update(state, model);
if (model.Name.IsSpecified)
Name = model.Name.Value;
if (model.Icon.IsSpecified)

View File

@@ -70,6 +70,7 @@ namespace Discord.WebSocket
/// <inheritdoc />
internal override void Update(ClientState state, Model model)
{
base.Update(state, model);
Name = model.Name.Value;
Position = model.Position.GetValueOrDefault(0);