| @@ -39,8 +39,8 @@ Global | |||||
| GlobalSection(ProjectConfigurationPlatforms) = postSolution | GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||
| {ACFB060B-EC8A-4926-B293-04C01E17EE23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | {ACFB060B-EC8A-4926-B293-04C01E17EE23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||
| {ACFB060B-EC8A-4926-B293-04C01E17EE23}.Debug|Any CPU.Build.0 = Debug|Any CPU | {ACFB060B-EC8A-4926-B293-04C01E17EE23}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||
| {ACFB060B-EC8A-4926-B293-04C01E17EE23}.FullDebug|Any CPU.ActiveCfg = FullDebug|Any CPU | |||||
| {ACFB060B-EC8A-4926-B293-04C01E17EE23}.FullDebug|Any CPU.Build.0 = FullDebug|Any CPU | |||||
| {ACFB060B-EC8A-4926-B293-04C01E17EE23}.FullDebug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
| {ACFB060B-EC8A-4926-B293-04C01E17EE23}.FullDebug|Any CPU.Build.0 = Debug|Any CPU | |||||
| {ACFB060B-EC8A-4926-B293-04C01E17EE23}.Release|Any CPU.ActiveCfg = Release|Any CPU | {ACFB060B-EC8A-4926-B293-04C01E17EE23}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||
| {ACFB060B-EC8A-4926-B293-04C01E17EE23}.Release|Any CPU.Build.0 = Release|Any CPU | {ACFB060B-EC8A-4926-B293-04C01E17EE23}.Release|Any CPU.Build.0 = Release|Any CPU | ||||
| {19793545-EF89-48F4-8100-3EBAAD0A9141}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | {19793545-EF89-48F4-8100-3EBAAD0A9141}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||
| @@ -5,7 +5,7 @@ Check out the [documentation](https://discordnet.readthedocs.org/en/latest/) or | |||||
| ### Current Features | ### Current Features | ||||
| - Using Discord API v3 | - Using Discord API v3 | ||||
| - Supports .Net 4.5 and DNX 4.5.1 | |||||
| - Supports .Net Framework 4.5 and .Net Core 5.0 | |||||
| - Server Management (Servers, Channels, Messages, Invites, Roles, Users) | - Server Management (Servers, Channels, Messages, Invites, Roles, Users) | ||||
| - Send/Receieve Messages (Including mentions and formatting) | - Send/Receieve Messages (Including mentions and formatting) | ||||
| - Basic Voice Support (Outgoing only) | - Basic Voice Support (Outgoing only) | ||||
| @@ -17,4 +17,4 @@ You can download Discord.Net from NuGet: | |||||
| - [Discord.Net.Commands](https://www.nuget.org/packages/Discord.Net.Commands/) | - [Discord.Net.Commands](https://www.nuget.org/packages/Discord.Net.Commands/) | ||||
| ### Known Issues | ### Known Issues | ||||
| - DNX Core 5.0 is experiencing several network-related issues and support has been temporarily dropped. | |||||
| - .Net Core 5.0 is experiencing several network-related issues and support has been temporarily dropped. | |||||
| @@ -1,6 +1,6 @@ | |||||
| { | { | ||||
| "projects": [ "src" ], | "projects": [ "src" ], | ||||
| "sdk": { | "sdk": { | ||||
| "version": "1.0.0-beta6" | |||||
| "version": "1.0.0-rc1-final" | |||||
| } | } | ||||
| } | } | ||||
| @@ -19,7 +19,6 @@ | |||||
| "frameworks": { | "frameworks": { | ||||
| "net45": { }, | "net45": { }, | ||||
| "dnx451": { }, | |||||
| "dnxcore50": { } | |||||
| "dotnet5.4": { } | |||||
| } | } | ||||
| } | } | ||||
| @@ -20,7 +20,6 @@ | |||||
| "frameworks": { | "frameworks": { | ||||
| "net45": { }, | "net45": { }, | ||||
| "dnx451": { }, | |||||
| "dnxcore50": { } | |||||
| "dotnet5.4": { } | |||||
| } | } | ||||
| } | } | ||||
| @@ -61,8 +61,8 @@ | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="System" /> | <Reference Include="System" /> | ||||
| <Reference Include="System.Net.Http" /> | <Reference Include="System.Net.Http" /> | ||||
| <Reference Include="websocket-sharp, Version=1.0.2.36589, Culture=neutral, PublicKeyToken=5660b08a1845a91e, processorArchitecture=MSIL"> | |||||
| <HintPath>..\..\packages\WebSocketSharp.1.0.3-rc9\lib\websocket-sharp.dll</HintPath> | |||||
| <Reference Include="websocket-sharp, Version=1.0.2.59610, Culture=neutral, PublicKeyToken=5660b08a1845a91e, processorArchitecture=MSIL"> | |||||
| <HintPath>..\..\..\DiscordBot\packages\WebSocketSharp.1.0.3-rc10\lib\websocket-sharp.dll</HintPath> | |||||
| <Private>True</Private> | <Private>True</Private> | ||||
| </Reference> | </Reference> | ||||
| </ItemGroup> | </ItemGroup> | ||||
| @@ -2,5 +2,5 @@ | |||||
| <packages> | <packages> | ||||
| <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" /> | <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" /> | ||||
| <package id="RestSharp" version="105.2.3" targetFramework="net45" /> | <package id="RestSharp" version="105.2.3" targetFramework="net45" /> | ||||
| <package id="WebSocketSharp" version="1.0.3-rc9" targetFramework="net45" /> | |||||
| <package id="WebSocketSharp" version="1.0.3-rc10" targetFramework="net45" /> | |||||
| </packages> | </packages> | ||||
| @@ -16,8 +16,8 @@ namespace Discord.Net.Rest | |||||
| public RestClient(DiscordAPIClientConfig config) | public RestClient(DiscordAPIClientConfig config) | ||||
| { | { | ||||
| _config = config; | _config = config; | ||||
| #if !DNXCORE50 | |||||
| _engine = new SharpRestEngine(config); | |||||
| #if !DOTNET5_4 | |||||
| _engine = new RestSharpEngine(config); | |||||
| #else | #else | ||||
| //_engine = new BuiltInRestEngine(config); | //_engine = new BuiltInRestEngine(config); | ||||
| #endif | #endif | ||||
| @@ -1,4 +1,4 @@ | |||||
| #if !DNXCORE50 | |||||
| #if !DOTNET5_4 | |||||
| using Discord.API; | using Discord.API; | ||||
| using RestSharp; | using RestSharp; | ||||
| using System; | using System; | ||||
| @@ -8,12 +8,12 @@ using System.Threading.Tasks; | |||||
| namespace Discord.Net.Rest | namespace Discord.Net.Rest | ||||
| { | { | ||||
| internal sealed class SharpRestEngine : IRestEngine | |||||
| internal sealed class RestSharpEngine : IRestEngine | |||||
| { | { | ||||
| private readonly DiscordAPIClientConfig _config; | private readonly DiscordAPIClientConfig _config; | ||||
| private readonly RestSharp.RestClient _client; | private readonly RestSharp.RestClient _client; | ||||
| public SharpRestEngine(DiscordAPIClientConfig config) | |||||
| public RestSharpEngine(DiscordAPIClientConfig config) | |||||
| { | { | ||||
| _config = config; | _config = config; | ||||
| _client = new RestSharp.RestClient(Endpoints.BaseApi) | _client = new RestSharp.RestClient(Endpoints.BaseApi) | ||||
| @@ -135,7 +135,7 @@ namespace Discord.Net.WebSockets | |||||
| else //Dont make an OS thread if we only want to capture one packet... | else //Dont make an OS thread if we only want to capture one packet... | ||||
| tasks.Add(Task.Run(() => ReceiveVoiceAsync(_cancelToken))); | tasks.Add(Task.Run(() => ReceiveVoiceAsync(_cancelToken))); | ||||
| #if !DNXCORE50 | |||||
| #if !DOTNET5_4 | |||||
| tasks.Add(WatcherAsync()); | tasks.Add(WatcherAsync()); | ||||
| #endif | #endif | ||||
| if (tasks.Count > 0) | if (tasks.Count > 0) | ||||
| @@ -199,10 +199,10 @@ namespace Discord.Net.WebSockets | |||||
| Thread.Sleep(1); | Thread.Sleep(1); | ||||
| if (_udp.Available > 0) | if (_udp.Available > 0) | ||||
| { | { | ||||
| #if !DNXCORE50 | |||||
| #if !DOTNET5_4 | |||||
| packet = _udp.Receive(ref endpoint); | packet = _udp.Receive(ref endpoint); | ||||
| #else | #else | ||||
| //TODO: Is this really the only way to end a Receive call in DNXCore? | |||||
| //TODO: Is this really the only way to end a Receive call in DOTNET5_4? | |||||
| var receiveTask = _udp.ReceiveAsync(); | var receiveTask = _udp.ReceiveAsync(); | ||||
| var task = Task.WhenAny(closeTask, receiveTask).Result; | var task = Task.WhenAny(closeTask, receiveTask).Result; | ||||
| if (task == closeTask) | if (task == closeTask) | ||||
| @@ -221,7 +221,7 @@ namespace Discord.Net.WebSockets | |||||
| return; | return; | ||||
| int port = packet[68] | packet[69] << 8; | int port = packet[68] | packet[69] << 8; | ||||
| string ip = Encoding.ASCII.GetString(packet, 4, 70 - 6).TrimEnd('\0'); | |||||
| string ip = Encoding.UTF8.GetString(packet, 4, 70 - 6).TrimEnd('\0'); | |||||
| var login2 = new VoiceLogin2Command(); | var login2 = new VoiceLogin2Command(); | ||||
| login2.Payload.Protocol = "udp"; | login2.Payload.Protocol = "udp"; | ||||
| @@ -423,7 +423,7 @@ namespace Discord.Net.WebSockets | |||||
| catch (OperationCanceledException) { } | catch (OperationCanceledException) { } | ||||
| catch (InvalidOperationException) { } //Includes ObjectDisposedException | catch (InvalidOperationException) { } //Includes ObjectDisposedException | ||||
| } | } | ||||
| #if !DNXCORE50 | |||||
| #if !DOTNET5_4 | |||||
| //Closes the UDP socket when _disconnectToken is triggered, since UDPClient doesn't allow passing a canceltoken | //Closes the UDP socket when _disconnectToken is triggered, since UDPClient doesn't allow passing a canceltoken | ||||
| private Task WatcherAsync() | private Task WatcherAsync() | ||||
| { | { | ||||
| @@ -1,6 +1,5 @@ | |||||
| #if DNXCORE50zzz | |||||
| using Discord.Helpers; | |||||
| using System; | |||||
| #if DOTNET5_4 | |||||
| /*using System; | |||||
| using System.Collections.Concurrent; | using System.Collections.Concurrent; | ||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||
| using System.ComponentModel; | using System.ComponentModel; | ||||
| @@ -149,5 +148,5 @@ namespace Discord.Net.WebSockets | |||||
| _sendQueue.Enqueue(message); | _sendQueue.Enqueue(message); | ||||
| } | } | ||||
| } | } | ||||
| } | |||||
| }*/ | |||||
| #endif | #endif | ||||
| @@ -52,7 +52,7 @@ namespace Discord.Net.WebSockets | |||||
| _cancelToken = new CancellationToken(true); | _cancelToken = new CancellationToken(true); | ||||
| _connectedEvent = new ManualResetEventSlim(false); | _connectedEvent = new ManualResetEventSlim(false); | ||||
| #if !DNXCORE50 | |||||
| #if !DOTNET5_4 | |||||
| _engine = new WebSocketSharpEngine(this, client.Config); | _engine = new WebSocketSharpEngine(this, client.Config); | ||||
| #else | #else | ||||
| //_engine = new BuiltInWebSocketEngine(this, client.Config); | //_engine = new BuiltInWebSocketEngine(this, client.Config); | ||||
| @@ -1,4 +1,4 @@ | |||||
| #if !DNXCORE50 | |||||
| #if !DOTNET5_4 | |||||
| using System; | using System; | ||||
| using System.Collections.Concurrent; | using System.Collections.Concurrent; | ||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||
| @@ -40,13 +40,13 @@ namespace Discord.Net.WebSockets | |||||
| _webSocket = new WSSharpNWebSocket(host); | _webSocket = new WSSharpNWebSocket(host); | ||||
| _webSocket.EmitOnPing = false; | _webSocket.EmitOnPing = false; | ||||
| _webSocket.EnableRedirection = true; | _webSocket.EnableRedirection = true; | ||||
| _webSocket.Compression = WebSocketSharp.CompressionMethod.Deflate; | |||||
| _webSocket.Compression = WebSocketSharp.CompressionMethod.Deflate; | |||||
| _webSocket.SetProxy(_config.ProxyUrl, _config.ProxyCredentials?.UserName, _config.ProxyCredentials?.Password); | _webSocket.SetProxy(_config.ProxyUrl, _config.ProxyCredentials?.UserName, _config.ProxyCredentials?.Password); | ||||
| _webSocket.OnMessage += (s, e) => | _webSocket.OnMessage += (s, e) => | ||||
| { | { | ||||
| if (e.Type == WebSocketSharp.Opcode.Binary) | |||||
| if (e.IsBinary) | |||||
| RaiseBinaryMessage(e.RawData); | RaiseBinaryMessage(e.RawData); | ||||
| else if (e.Type == WebSocketSharp.Opcode.Text) | |||||
| else if (e.IsText) | |||||
| RaiseTextMessage(e.Data); | RaiseTextMessage(e.Data); | ||||
| }; | }; | ||||
| _webSocket.OnError += async (s, e) => | _webSocket.OnError += async (s, e) => | ||||
| @@ -18,7 +18,7 @@ | |||||
| "allowUnsafe": true | "allowUnsafe": true | ||||
| }, | }, | ||||
| "configurations": { | "configurations": { | ||||
| "FullDebug": { | |||||
| "TestResponses": { | |||||
| "compilationOptions": { | "compilationOptions": { | ||||
| "define": [ | "define": [ | ||||
| "DEBUG", | "DEBUG", | ||||
| @@ -29,15 +29,15 @@ | |||||
| } | } | ||||
| }, | }, | ||||
| "dependencies": { | |||||
| "Newtonsoft.Json": "7.0.1" | |||||
| }, | |||||
| "dependencies": { | |||||
| "Newtonsoft.Json": "7.0.1" | |||||
| }, | |||||
| "frameworks": { | "frameworks": { | ||||
| "net45": { | "net45": { | ||||
| "dependencies": { | "dependencies": { | ||||
| "RestSharp": "105.2.3", | |||||
| "WebSocketSharp": "1.0.3-rc9" | |||||
| "WebSocketSharp": "1.0.3-rc10", | |||||
| "RestSharp": "105.2.3" | |||||
| } | } | ||||
| }, | }, | ||||
| "dotnet5.4": { | "dotnet5.4": { | ||||
| @@ -47,7 +47,7 @@ | |||||
| "System.IO.Compression": "4.1.0-beta-23516", | "System.IO.Compression": "4.1.0-beta-23516", | ||||
| "System.Linq": "4.0.1-beta-23516", | "System.Linq": "4.0.1-beta-23516", | ||||
| "System.Net.NameResolution": "4.0.0-beta-23516", | "System.Net.NameResolution": "4.0.0-beta-23516", | ||||
| "System.Net.Sockets": "4.1.0-beta-23516", | |||||
| "System.Net.Sockets": "4.1.0-beta-23409", | |||||
| "System.Net.Requests": "4.0.11-beta-23516", | "System.Net.Requests": "4.0.11-beta-23516", | ||||
| "System.Net.WebSockets.Client": "4.0.0-beta-23516", | "System.Net.WebSockets.Client": "4.0.0-beta-23516", | ||||
| "System.Runtime.InteropServices": "4.0.21-beta-23516", | "System.Runtime.InteropServices": "4.0.21-beta-23516", | ||||