Browse Source

feature: stub out clients

pull/1253/head
Christopher Felegy 6 years ago
parent
commit
05a17831cd
12 changed files with 122 additions and 91 deletions
  1. +24
    -51
      Discord.Net.sln
  2. +3
    -2
      nuget.config
  3. +0
    -8
      src/Discord.Net.Core/Class1.cs
  4. +0
    -8
      src/Discord.Net.Gateway/Class1.cs
  5. +0
    -7
      src/Discord.Net.Gateway/Discord.Net.Gateway.csproj
  6. +0
    -8
      src/Discord.Net.Rest/Class1.cs
  7. +0
    -7
      src/Discord.Net.Rest/Discord.Net.Rest.csproj
  8. +0
    -0
      src/Discord.Net/Discord.Net.csproj
  9. +58
    -0
      src/Discord.Net/DiscordClient.cs
  10. +10
    -0
      src/Discord.Net/DiscordClientBuilder.cs
  11. +10
    -0
      src/Discord.Net/DiscordClientConfig.cs
  12. +17
    -0
      src/Discord.Net/IDiscordClient.cs

+ 24
- 51
Discord.Net.sln View File

@@ -3,19 +3,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15 # Visual Studio 15
VisualStudioVersion = 15.0.26124.0 VisualStudioVersion = 15.0.26124.0
MinimumVisualStudioVersion = 15.0.26124.0 MinimumVisualStudioVersion = 15.0.26124.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{72164C41-C6CD-4722-B07B-64A5B6DDC977}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net.Core", "src\Discord.Net.Core\Discord.Net.Core.csproj", "{3851F6F6-C028-4CC6-9981-5845EB53CDC5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net.Rest", "src\Discord.Net.Rest\Discord.Net.Rest.csproj", "{13E04C0A-65FD-4648-8B9C-87AAE7A76087}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{424AA4CA-E283-4B83-B288-B0181516D1F9}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net.Gateway", "src\Discord.Net.Gateway\Discord.Net.Gateway.csproj", "{AAAAEEC8-7E76-4D74-B610-960291FD7580}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discord.Tests.Unit", "test\Discord.Tests.Unit\Discord.Tests.Unit.csproj", "{97B3208E-FBB3-43D8-8944-EE06F6FE4032}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{424AA4CA-E283-4B83-B288-B0181516D1F9}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discord.Tests.Integration", "test\Discord.Tests.Integration\Discord.Tests.Integration.csproj", "{D2A17BA6-C6A5-42DB-A4BC-F97C07904BA2}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Tests.Unit", "test\Discord.Tests.Unit\Discord.Tests.Unit.csproj", "{97B3208E-FBB3-43D8-8944-EE06F6FE4032}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{279F3738-D35E-402B-BC99-CBE44821C468}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Tests.Integration", "test\Discord.Tests.Integration\Discord.Tests.Integration.csproj", "{D2A17BA6-C6A5-42DB-A4BC-F97C07904BA2}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net", "src\Discord.Net\Discord.Net.csproj", "{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -26,46 +22,7 @@ Global
Release|x64 = Release|x64 Release|x64 = Release|x64
Release|x86 = Release|x86 Release|x86 = Release|x86
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Debug|x64.ActiveCfg = Debug|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Debug|x64.Build.0 = Debug|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Debug|x86.ActiveCfg = Debug|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Debug|x86.Build.0 = Debug|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Release|Any CPU.Build.0 = Release|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Release|x64.ActiveCfg = Release|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Release|x64.Build.0 = Release|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Release|x86.ActiveCfg = Release|Any CPU
{3851F6F6-C028-4CC6-9981-5845EB53CDC5}.Release|x86.Build.0 = Release|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Debug|Any CPU.Build.0 = Debug|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Debug|x64.ActiveCfg = Debug|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Debug|x64.Build.0 = Debug|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Debug|x86.ActiveCfg = Debug|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Debug|x86.Build.0 = Debug|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Release|Any CPU.ActiveCfg = Release|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Release|Any CPU.Build.0 = Release|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Release|x64.ActiveCfg = Release|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Release|x64.Build.0 = Release|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Release|x86.ActiveCfg = Release|Any CPU
{13E04C0A-65FD-4648-8B9C-87AAE7A76087}.Release|x86.Build.0 = Release|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Debug|x64.ActiveCfg = Debug|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Debug|x64.Build.0 = Debug|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Debug|x86.ActiveCfg = Debug|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Debug|x86.Build.0 = Debug|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Release|Any CPU.Build.0 = Release|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Release|x64.ActiveCfg = Release|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Release|x64.Build.0 = Release|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Release|x86.ActiveCfg = Release|Any CPU
{AAAAEEC8-7E76-4D74-B610-960291FD7580}.Release|x86.Build.0 = Release|Any CPU
{97B3208E-FBB3-43D8-8944-EE06F6FE4032}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {97B3208E-FBB3-43D8-8944-EE06F6FE4032}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{97B3208E-FBB3-43D8-8944-EE06F6FE4032}.Debug|Any CPU.Build.0 = Debug|Any CPU {97B3208E-FBB3-43D8-8944-EE06F6FE4032}.Debug|Any CPU.Build.0 = Debug|Any CPU
{97B3208E-FBB3-43D8-8944-EE06F6FE4032}.Debug|x64.ActiveCfg = Debug|Any CPU {97B3208E-FBB3-43D8-8944-EE06F6FE4032}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -90,12 +47,28 @@ Global
{D2A17BA6-C6A5-42DB-A4BC-F97C07904BA2}.Release|x64.Build.0 = Release|Any CPU {D2A17BA6-C6A5-42DB-A4BC-F97C07904BA2}.Release|x64.Build.0 = Release|Any CPU
{D2A17BA6-C6A5-42DB-A4BC-F97C07904BA2}.Release|x86.ActiveCfg = Release|Any CPU {D2A17BA6-C6A5-42DB-A4BC-F97C07904BA2}.Release|x86.ActiveCfg = Release|Any CPU
{D2A17BA6-C6A5-42DB-A4BC-F97C07904BA2}.Release|x86.Build.0 = Release|Any CPU {D2A17BA6-C6A5-42DB-A4BC-F97C07904BA2}.Release|x86.Build.0 = Release|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Debug|x64.ActiveCfg = Debug|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Debug|x64.Build.0 = Debug|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Debug|x86.ActiveCfg = Debug|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Debug|x86.Build.0 = Debug|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Release|Any CPU.Build.0 = Release|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Release|x64.ActiveCfg = Release|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Release|x64.Build.0 = Release|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Release|x86.ActiveCfg = Release|Any CPU
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(NestedProjects) = preSolution GlobalSection(NestedProjects) = preSolution
{3851F6F6-C028-4CC6-9981-5845EB53CDC5} = {72164C41-C6CD-4722-B07B-64A5B6DDC977}
{13E04C0A-65FD-4648-8B9C-87AAE7A76087} = {72164C41-C6CD-4722-B07B-64A5B6DDC977}
{AAAAEEC8-7E76-4D74-B610-960291FD7580} = {72164C41-C6CD-4722-B07B-64A5B6DDC977}
{97B3208E-FBB3-43D8-8944-EE06F6FE4032} = {424AA4CA-E283-4B83-B288-B0181516D1F9} {97B3208E-FBB3-43D8-8944-EE06F6FE4032} = {424AA4CA-E283-4B83-B288-B0181516D1F9}
{D2A17BA6-C6A5-42DB-A4BC-F97C07904BA2} = {424AA4CA-E283-4B83-B288-B0181516D1F9} {D2A17BA6-C6A5-42DB-A4BC-F97C07904BA2} = {424AA4CA-E283-4B83-B288-B0181516D1F9}
{65F1C45D-6D82-4E24-9F56-2840D2E6EFB9} = {279F3738-D35E-402B-BC99-CBE44821C468}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1F07E0CE-26FE-4660-A0C3-4F9CC2BD7B72}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

+ 3
- 2
nuget.config View File

@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<packageSources> <packageSources>
<!--To inherit the global NuGet package sources remove the <clear/> line below -->
<clear /> <clear />
<add key="discord.net" value="https://api.discord.net.org/v3/index.json" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
<add key="RogueException" value="https://www.myget.org/F/rogueexception/api/v3/index.json" />
</packageSources> </packageSources>
</configuration> </configuration>

+ 0
- 8
src/Discord.Net.Core/Class1.cs View File

@@ -1,8 +0,0 @@
using System;

namespace Discord.Net.Core
{
public class Class1
{
}
}

+ 0
- 8
src/Discord.Net.Gateway/Class1.cs View File

@@ -1,8 +0,0 @@
using System;

namespace Discord.Net.Gateway
{
public class Class1
{
}
}

+ 0
- 7
src/Discord.Net.Gateway/Discord.Net.Gateway.csproj View File

@@ -1,7 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>

</Project>

+ 0
- 8
src/Discord.Net.Rest/Class1.cs View File

@@ -1,8 +0,0 @@
using System;

namespace Discord.Net.Rest
{
public class Class1
{
}
}

+ 0
- 7
src/Discord.Net.Rest/Discord.Net.Rest.csproj View File

@@ -1,7 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>

</Project>

src/Discord.Net.Core/Discord.Net.Core.csproj → src/Discord.Net/Discord.Net.csproj View File


+ 58
- 0
src/Discord.Net/DiscordClient.cs View File

@@ -0,0 +1,58 @@
using System;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Wumpus;
using Wumpus.Events;

namespace Discord
{
internal class DiscordClient : IDiscordClient, IDisposable
{
public event Action Ready;

private int _shard, _totalShards;

public WumpusGatewayClient Gateway { get; }
public WumpusRestClient Rest { get; }

public DiscordClient(DiscordClientConfig config)
{
_shard = config.Shard;
_totalShards = config.TotalShards;

Gateway = new WumpusGatewayClient();
Rest = new WumpusRestClient();

var auth = new AuthenticationHeaderValue("", config.Token);
Gateway.Authorization = auth;
Rest.Authorization = auth;
}

public async Task StartAsync()
{
var gateway = await Rest.GetBotGatewayAsync().ConfigureAwait(false);
await Gateway.RunAsync(gateway.Url.ToString(), _shard, _totalShards).ConfigureAwait(false);
}

public async Task StopAsync()
{
await Gateway.StopAsync().ConfigureAwait(false);
}

private void RegisterEvents()
{
Gateway.Ready += OnReady;
}
private void OnReady(ReadyEvent args)
{
// TODO: Cache
Ready?.Invoke();
}

public void Dispose()
{
Gateway.Dispose();
Rest.Dispose();
}
}
}

+ 10
- 0
src/Discord.Net/DiscordClientBuilder.cs View File

@@ -0,0 +1,10 @@
namespace Discord
{
public sealed class DiscordClientBuilder
{
public IDiscordClient FromConfig(DiscordClientConfig config)
{
return new DiscordClient(config);
}
}
}

+ 10
- 0
src/Discord.Net/DiscordClientConfig.cs View File

@@ -0,0 +1,10 @@
namespace Discord
{
public class DiscordClientConfig
{
public string Token { get; set; }

public int Shard { get; set; } = 0;
public int TotalShards { get; set; } = 1;
}
}

+ 17
- 0
src/Discord.Net/IDiscordClient.cs View File

@@ -0,0 +1,17 @@
using System;
using System.Threading.Tasks;
using Wumpus;

namespace Discord
{
public interface IDiscordClient
{
WumpusGatewayClient Gateway { get; }
WumpusRestClient Rest { get; }

Task StartAsync();
Task StopAsync();

event Action Ready;
}
}

Loading…
Cancel
Save