Files
LaDOSE/LaDOSE.Src/LaDOSE.DiscordBot/Program.cs

116 lines
4.1 KiB
C#
Raw Normal View History

2018-10-03 21:48:18 +02:00
using System;
using System.Collections.Generic;
using System.IO;
2018-10-04 00:29:25 +02:00
using System.Threading;
2018-10-03 21:48:18 +02:00
using System.Threading.Tasks;
using DSharpPlus;
2018-10-03 23:32:44 +02:00
using DSharpPlus.Interactivity;
2018-10-04 00:29:25 +02:00
using DSharpPlus.CommandsNext;
using DSharpPlus.EventArgs;
using LaDOSE.DiscordBot.Command;
2018-10-04 01:32:33 +02:00
using LaDOSE.DiscordBot.Service;
2018-10-03 21:48:18 +02:00
using Microsoft.Extensions.Configuration;
namespace LaDOSE.DiscordBot
{
class Program
{
static DiscordClient discord;
static InteractivityModule Interactivity { get; set; }
2018-10-03 21:48:18 +02:00
static void Main(string[] args)
{
MainAsync(args).ConfigureAwait(false).GetAwaiter().GetResult();
}
static async Task MainAsync(string[] args)
{
Console.WriteLine(Directory.GetCurrentDirectory());
2018-10-03 21:48:18 +02:00
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("settings.json", optional: true, reloadOnChange: true).Build();
var discordToken = builder["Discord:Token"].ToString();
2018-10-04 01:32:33 +02:00
var challongeToken = builder["Challonge:Token"].ToString();
var restUrl = builder["REST:Url"].ToString();
var restUser = builder["REST:User"].ToString();
var restPassword = builder["REST:Password"].ToString();
2018-10-03 21:48:18 +02:00
Console.WriteLine($"LaDOSE.Net Discord Bot");
2018-10-04 00:29:25 +02:00
2018-10-03 21:48:18 +02:00
discord = new DiscordClient(new DiscordConfiguration
{
Token = discordToken,
TokenType = TokenType.Bot
});
discord.UseInteractivity(new InteractivityConfiguration
{
// default pagination behaviour to just ignore the reactions
PaginationBehaviour = TimeoutBehaviour.Ignore,
// default pagination timeout to 5 minutes
PaginationTimeout = TimeSpan.FromMinutes(5),
// default timeout for other actions to 2 minutes
Timeout = TimeSpan.FromMinutes(2)
});
var webService = new WebService(new Uri(restUrl),restUser,restPassword);
//var challongeService = new ChallongeService(challongeToken);
2018-10-04 01:32:33 +02:00
var cts = new CancellationTokenSource();
2018-10-04 00:29:25 +02:00
DependencyCollection dep = null;
using (var d = new DependencyCollectionBuilder())
2018-10-03 21:48:18 +02:00
{
2018-10-04 00:29:25 +02:00
d.AddInstance(new Dependencies()
{
2018-10-04 01:32:33 +02:00
Cts = cts,
//ChallongeService = challongeService,
WebService = webService
2018-10-04 00:29:25 +02:00
});
dep = d.Build();
}
var _cnext = discord.UseCommandsNext(new CommandsNextConfiguration()
{
CaseSensitive = false,
EnableDefaultHelp = true,
EnableDms = false,
EnableMentionPrefix = true,
StringPrefix = "!",
IgnoreExtraArguments = true,
Dependencies = dep
});
_cnext.RegisterCommands<Result>();
2022-07-30 18:22:49 +02:00
_cnext.RegisterCommands<Public>();
2018-10-04 00:29:25 +02:00
_cnext.RegisterCommands<Shutdown>();
2022-07-30 18:22:49 +02:00
//_cnext.RegisterCommands<Todo>();
2021-11-28 02:09:04 +01:00
_cnext.RegisterCommands<Hokuto>();
2022-07-30 18:22:49 +02:00
_cnext.RegisterCommands<BotEvent>();
2018-10-04 00:29:25 +02:00
//discord.MessageCreated += async e =>
//{
// if (e.Message.Content.ToLower().Equals("!result"))
// await e.Message.RespondAsync("Les Résultats du dernier Ranking : XXXX");
// if (e.Message.Content.ToLower().Equals("!twitch"))
// await e.Message.RespondAsync("https://www.twitch.tv/LaDOSETV");
//};
2018-10-03 21:48:18 +02:00
2019-02-20 21:59:43 +01:00
discord.GuildMemberAdded += async e =>
2018-10-03 23:32:44 +02:00
{
2019-02-20 21:59:43 +01:00
Console.WriteLine($"{e.Member.DisplayName} Joined");
await Task.Delay(0);
//await e.Guild.GetDefaultChannel().SendMessageAsync($"Bonjour!");
2018-10-03 23:32:44 +02:00
};
2018-10-03 21:48:18 +02:00
await discord.ConnectAsync();
2018-10-04 01:32:33 +02:00
while (!cts.IsCancellationRequested)
2018-10-04 00:29:25 +02:00
{
await Task.Delay(200);
}
2018-10-03 21:48:18 +02:00
}
}
2018-10-04 00:29:25 +02:00
}