@@ -1978,6 +1978,53 @@ | |||
A task that represents the asynchronous stop operation. | |||
</returns> | |||
</member> | |||
<member name="M:Discord.IStageChannel.RequestToSpeak(Discord.RequestOptions)"> | |||
<summary> | |||
Indicates that the bot would like to speak within a stage channel. | |||
</summary> | |||
<param name="options">The options to be used when sending the request.</param> | |||
<returns> | |||
A task that represents the asynchronous request to speak operation. | |||
</returns> | |||
</member> | |||
<member name="M:Discord.IStageChannel.BecomeSpeakerAsync(Discord.RequestOptions)"> | |||
<summary> | |||
Makes the current user become a speaker within a stage. | |||
</summary> | |||
<param name="options">The options to be used when sending the request.</param> | |||
<returns> | |||
A task that represents the asynchronous speaker modify operation. | |||
</returns> | |||
</member> | |||
<member name="M:Discord.IStageChannel.StopSpeakingAsync(Discord.RequestOptions)"> | |||
<summary> | |||
Makes the current user a listener. | |||
</summary> | |||
<param name="options">The options to be used when sending the request.</param> | |||
<returns> | |||
A task that represents the asynchronous stop operation. | |||
</returns> | |||
</member> | |||
<member name="M:Discord.IStageChannel.MoveToSpeaker(Discord.IGuildUser,Discord.RequestOptions)"> | |||
<summary> | |||
Makes a user a speaker within a stage. | |||
</summary> | |||
<param name="user">The user to make the speaker.</param> | |||
<param name="options">The options to be used when sending the request.</param> | |||
<returns> | |||
A task that represents the asynchronous move operation. | |||
</returns> | |||
</member> | |||
<member name="M:Discord.IStageChannel.RemoveFromSpeaker(Discord.IGuildUser,Discord.RequestOptions)"> | |||
<summary> | |||
Removes a user from speaking. | |||
</summary> | |||
<param name="user">The user to remove from speaking.</param> | |||
<param name="options">The options to be used when sending the request.</param> | |||
<returns> | |||
A task that represents the asynchronous remove operation. | |||
</returns> | |||
</member> | |||
<member name="T:Discord.ITextChannel"> | |||
<summary> | |||
Represents a generic channel in a guild that can send and receive messages. | |||
@@ -7550,6 +7597,14 @@ | |||
This must be less than the constant defined by <see cref="F:Discord.DiscordConfig.MaxMessageSize"/>. | |||
</remarks> | |||
</member> | |||
<member name="P:Discord.MessageProperties.Embed"> | |||
<summary> | |||
Gets or sets a single embed for this message. | |||
</summary> | |||
<remarks> | |||
This property will be added to the <see cref="P:Discord.MessageProperties.Embed"/> array, in the future please use the array rather then this property. | |||
</remarks> | |||
</member> | |||
<member name="P:Discord.MessageProperties.Embeds"> | |||
<summary> | |||
Gets or sets the embeds of the message. | |||
@@ -2313,6 +2313,18 @@ | |||
<member name="M:Discord.Rest.RestStageChannel.RequestToSpeak(Discord.RequestOptions)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:Discord.Rest.RestStageChannel.BecomeSpeakerAsync(Discord.RequestOptions)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:Discord.Rest.RestStageChannel.StopSpeakingAsync(Discord.RequestOptions)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:Discord.Rest.RestStageChannel.MoveToSpeaker(Discord.IGuildUser,Discord.RequestOptions)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:Discord.Rest.RestStageChannel.RemoveFromSpeaker(Discord.IGuildUser,Discord.RequestOptions)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="T:Discord.Rest.RestTextChannel"> | |||
<summary> | |||
Represents a REST-based channel in a guild that can send and receive messages. | |||
@@ -1,4 +1,4 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<Import Project="../../Discord.Net.targets" /> | |||
<Import Project="../../StyleAnalyzer.targets" /> | |||
<PropertyGroup> | |||
@@ -17,9 +17,10 @@ | |||
<PropertyGroup> | |||
<DocumentationFile>..\Discord.Net.WebSocket\Discord.Net.WebSocket.xml</DocumentationFile> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net461|AnyCPU'"> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> | |||
<DefineConstants>TRACE</DefineConstants> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\Discord.Net.Core\Discord.Net.Core.csproj" /> | |||
<ProjectReference Include="..\Discord.Net.Rest\Discord.Net.Rest.csproj" /> | |||
@@ -2189,6 +2189,11 @@ | |||
<member name="P:Discord.WebSocket.SocketStageChannel.Live"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="P:Discord.WebSocket.SocketStageChannel.IsSpeaker"> | |||
<summary> | |||
Returns <see langword="true"/> if the current user is a speaker within the stage, otherwise <see langword="false"/>. | |||
</summary> | |||
</member> | |||
<member name="P:Discord.WebSocket.SocketStageChannel.Speakers"> | |||
<summary> | |||
Gets a collection of users who are speakers within the stage. | |||
@@ -2206,6 +2211,18 @@ | |||
<member name="M:Discord.WebSocket.SocketStageChannel.RequestToSpeak(Discord.RequestOptions)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:Discord.WebSocket.SocketStageChannel.BecomeSpeakerAsync(Discord.RequestOptions)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:Discord.WebSocket.SocketStageChannel.StopSpeakingAsync(Discord.RequestOptions)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:Discord.WebSocket.SocketStageChannel.MoveToSpeaker(Discord.IGuildUser,Discord.RequestOptions)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="M:Discord.WebSocket.SocketStageChannel.RemoveFromSpeaker(Discord.IGuildUser,Discord.RequestOptions)"> | |||
<inheritdoc/> | |||
</member> | |||
<member name="T:Discord.WebSocket.SocketTextChannel"> | |||
<summary> | |||
Represents a WebSocket-based channel in a guild that can send and receive messages. | |||
@@ -75,8 +75,15 @@ namespace Discord.API | |||
using (var jsonReader = new JsonTextReader(reader)) | |||
{ | |||
var msg = _serializer.Deserialize<SocketFrame>(jsonReader); | |||
if (msg != null) | |||
{ | |||
#if DEBUG_PACKETS | |||
Console.WriteLine($"<- {msg.Operation} [{msg.Type ?? "none"}] : {(msg.Payload as Newtonsoft.Json.Linq.JToken)?.ToString().Length}"); | |||
#endif | |||
await _receivedGatewayEvent.InvokeAsync((GatewayOpCode)msg.Operation, msg.Sequence, msg.Type, msg.Payload).ConfigureAwait(false); | |||
} | |||
} | |||
} | |||
}; | |||
@@ -87,7 +94,13 @@ namespace Discord.API | |||
{ | |||
var msg = _serializer.Deserialize<SocketFrame>(jsonReader); | |||
if (msg != null) | |||
{ | |||
#if DEBUG_PACKETS | |||
Console.WriteLine($"<- {msg.Operation} [{msg.Type ?? "none"}] : {(msg.Payload as Newtonsoft.Json.Linq.JToken)?.ToString().Length}"); | |||
#endif | |||
await _receivedGatewayEvent.InvokeAsync((GatewayOpCode)msg.Operation, msg.Sequence, msg.Type, msg.Payload).ConfigureAwait(false); | |||
} | |||
} | |||
}; | |||
WebSocketClient.Closed += async ex => | |||
@@ -214,8 +227,8 @@ namespace Discord.API | |||
await RequestQueue.SendAsync(new WebSocketRequest(WebSocketClient, bytes, true, opCode == GatewayOpCode.Heartbeat, options)).ConfigureAwait(false); | |||
await _sentGatewayMessageEvent.InvokeAsync(opCode).ConfigureAwait(false); | |||
#if DEBUG | |||
Console.WriteLine($"Sent {opCode}:\n{SerializeJson(payload)}"); | |||
#if DEBUG_PACKETS | |||
Console.WriteLine($"-> {opCode}:\n{SerializeJson(payload)}"); | |||
#endif | |||
} | |||