Browse Source

now supports dm channels in channel selects

pull/2507/head
Misha133 2 years ago
parent
commit
82225b7637
5 changed files with 14 additions and 9 deletions
  1. +6
    -1
      src/Discord.Net.Rest/Entities/Interactions/MessageComponents/RestMessageComponentData.cs
  2. +1
    -1
      src/Discord.Net.WebSocket/Entities/Interaction/MessageComponents/SocketMessageComponent.cs
  3. +4
    -4
      src/Discord.Net.WebSocket/Entities/Interaction/MessageComponents/SocketMessageComponentData.cs
  4. +1
    -1
      src/Discord.Net.WebSocket/Entities/Interaction/Modals/SocketModal.cs
  5. +2
    -2
      src/Discord.Net.WebSocket/Entities/Interaction/Modals/SocketModalData.cs

+ 6
- 1
src/Discord.Net.Rest/Entities/Interactions/MessageComponents/RestMessageComponentData.cs View File

@@ -79,7 +79,12 @@ namespace Discord.Rest
: null;

Channels = model.Resolved.Value.Channels.IsSpecified
? model.Resolved.Value.Channels.Value.Select(channel => RestChannel.Create(discord, channel.Value)).ToImmutableArray()
? model.Resolved.Value.Channels.Value.Select(channel =>
{
if (channel.Value.Type is ChannelType.DM)
return RestDMChannel.Create(discord, channel.Value);
return RestChannel.Create(discord, channel.Value);
}).ToImmutableArray()
: Array.Empty<RestChannel>();

Roles = model.Resolved.Value.Roles.IsSpecified


+ 1
- 1
src/Discord.Net.WebSocket/Entities/Interaction/MessageComponents/SocketMessageComponent.cs View File

@@ -35,7 +35,7 @@ namespace Discord.WebSocket
? (DataModel)model.Data.Value
: null;

Data = new SocketMessageComponentData(dataModel, client, client.State, client.Guilds.FirstOrDefault(x => x.Id == model.GuildId.GetValueOrDefault()));
Data = new SocketMessageComponentData(dataModel, client, client.State, client.Guilds.FirstOrDefault(x => x.Id == model.GuildId.GetValueOrDefault()), model.User.GetValueOrDefault());
}

internal new static SocketMessageComponent Create(DiscordSocketClient client, Model model, ISocketMessageChannel channel, SocketUser user)


+ 4
- 4
src/Discord.Net.WebSocket/Entities/Interaction/MessageComponents/SocketMessageComponentData.cs View File

@@ -53,7 +53,7 @@ namespace Discord.WebSocket
/// <inheritdoc />
public string Value { get; }

internal SocketMessageComponentData(Model model, DiscordSocketClient discord, ClientState state, SocketGuild guild)
internal SocketMessageComponentData(Model model, DiscordSocketClient discord, ClientState state, SocketGuild guild, API.User dmUser)
{
CustomId = model.CustomId;
Type = model.ComponentType;
@@ -79,7 +79,7 @@ namespace Discord.WebSocket
channel =>
{
if (channel.Value.Type is ChannelType.DM)
return SocketDMChannel.Create(discord, state, channel.Value);
return SocketDMChannel.Create(discord, state, channel.Value.Id, dmUser);
return (SocketChannel)SocketGuildChannel.Create(guild, state, channel.Value);
}).ToImmutableArray()
: null;
@@ -90,7 +90,7 @@ namespace Discord.WebSocket
}
}

internal SocketMessageComponentData(IMessageComponent component, DiscordSocketClient discord, ClientState state, SocketGuild guild)
internal SocketMessageComponentData(IMessageComponent component, DiscordSocketClient discord, ClientState state, SocketGuild guild, API.User dmUser)
{
CustomId = component.CustomId;
Type = component.Type;
@@ -122,7 +122,7 @@ namespace Discord.WebSocket
channel =>
{
if (channel.Value.Type is ChannelType.DM)
return SocketDMChannel.Create(discord, state, channel.Value);
return SocketDMChannel.Create(discord, state, channel.Value.Id, dmUser);
return (SocketChannel)SocketGuildChannel.Create(guild, state, channel.Value);
}).ToImmutableArray()
: null;


+ 1
- 1
src/Discord.Net.WebSocket/Entities/Interaction/Modals/SocketModal.cs View File

@@ -28,7 +28,7 @@ namespace Discord.WebSocket
? (DataModel)model.Data.Value
: null;
Data = new SocketModalData(dataModel, client, client.State, client.Guilds.FirstOrDefault(x => x.Id == model.GuildId.GetValueOrDefault()));
Data = new SocketModalData(dataModel, client, client.State, client.State.GetGuild(model.GuildId.GetValueOrDefault()), model.User.GetValueOrDefault());
}

internal new static SocketModal Create(DiscordSocketClient client, ModelBase model, ISocketMessageChannel channel, SocketUser user)


+ 2
- 2
src/Discord.Net.WebSocket/Entities/Interaction/Modals/SocketModalData.cs View File

@@ -22,12 +22,12 @@ namespace Discord.WebSocket
/// </summary>
public IReadOnlyCollection<SocketMessageComponentData> Components { get; }

internal SocketModalData(Model model, DiscordSocketClient discord, ClientState state, SocketGuild guild)
internal SocketModalData(Model model, DiscordSocketClient discord, ClientState state, SocketGuild guild, API.User dmUser)
{
CustomId = model.CustomId;
Components = model.Components
.SelectMany(x => x.Components)
.Select(x => new SocketMessageComponentData(x, discord, state, guild))
.Select(x => new SocketMessageComponentData(x, discord, state, guild, dmUser))
.ToArray();
}



Loading…
Cancel
Save