Browse Source

Tweak samples after feedback

pull/1171/head
FiniteReality 6 years ago
parent
commit
a8adbb1fe9
3 changed files with 24 additions and 25 deletions
  1. +2
    -9
      samples/01_basic_ping_bot/Program.cs
  2. +1
    -0
      samples/02_commands_framework/Program.cs
  3. +21
    -16
      samples/03_sharded_client/Program.cs

+ 2
- 9
samples/01_basic_ping_bot/Program.cs View File

@@ -14,7 +14,7 @@ namespace _01_basic_ping_bot
// - Here, under the 02_commands_framework sample
// - https://github.com/foxbot/DiscordBotBase - a bare-bones bot template
// - https://github.com/foxbot/patek - a more feature-filled bot, utilizing more aspects of the library
class Program : IDisposable
class Program
{
private readonly DiscordSocketClient _client;

@@ -22,8 +22,7 @@ namespace _01_basic_ping_bot
// an asynchronous context from the beginning.
static void Main(string[] args)
{
using (var program = new Program())
program.MainAsync().GetAwaiter().GetResult();
new Program().MainAsync().GetAwaiter().GetResult();
}

public Program()
@@ -73,11 +72,5 @@ namespace _01_basic_ping_bot
if (message.Content == "!ping")
await message.Channel.SendMessageAsync("pong!");
}

public void Dispose()
{
// Dispose of the client when we are done with it
_client.Dispose();
}
}
}

+ 1
- 0
samples/02_commands_framework/Program.cs View File

@@ -37,6 +37,7 @@ namespace _02_commands_framework
client.Log += LogAsync;
services.GetRequiredService<CommandService>().Log += LogAsync;

// Tokens should be considered secret data, and never hard-coded.
await client.LoginAsync(TokenType.Bot, Environment.GetEnvironmentVariable("token"));
await client.StartAsync();



+ 21
- 16
samples/03_sharded_client/Program.cs View File

@@ -13,41 +13,46 @@ namespace _03_sharded_client
// DiscordSocketClient instances (or shards) to serve a large number of guilds.
class Program
{
private DiscordShardedClient _client;

static void Main(string[] args)
=> new Program().MainAsync().GetAwaiter().GetResult();
public async Task MainAsync()
{
// You specify the amount of shards you'd like to have with the
// DiscordSocketConfig. Generally, it's recommended to
// DiscordSocketConfig. Generally, it's recommended to
// have 1 shard per 1500-2000 guilds your bot is in.
var config = new DiscordSocketConfig
{
TotalShards = 2
};

_client = new DiscordShardedClient(config);
var services = ConfigureServices();
// You should dispose a service provider created using ASP.NET
// when you are finished using it, at the end of your app's lifetime.
// If you use another dependency injection framework, you should inspect
// its documentation for the best way to do this.
using (var services = ConfigureServices(config))
{
var client = services.GetRequiredService<DiscordShardedClient>();

// The Sharded Client does not have a Ready event.
// The ShardReady event is used instead, allowing for individual
// control per shard.
_client.ShardReady += ReadyAsync;
_client.Log += LogAsync;
// The Sharded Client does not have a Ready event.
// The ShardReady event is used instead, allowing for individual
// control per shard.
client.ShardReady += ReadyAsync;
client.Log += LogAsync;

await services.GetRequiredService<CommandHandlingService>().InitializeAsync();
await services.GetRequiredService<CommandHandlingService>().InitializeAsync();

await _client.LoginAsync(TokenType.Bot, Environment.GetEnvironmentVariable("token"));
await _client.StartAsync();
// Tokens should be considered secret data, and never hard-coded.
await client.LoginAsync(TokenType.Bot, Environment.GetEnvironmentVariable("token"));
await client.StartAsync();

await Task.Delay(-1);
await Task.Delay(-1);
}
}

private IServiceProvider ConfigureServices()
private ServiceProvider ConfigureServices(DiscordSocketConfig config)
{
return new ServiceCollection()
.AddSingleton(_client)
.AddSingleton(new DiscordShardedClient(config))
.AddSingleton<CommandService>()
.AddSingleton<CommandHandlingService>()
.BuildServiceProvider();


Loading…
Cancel
Save