Fix the bots
This commit is contained in:
@@ -3,31 +3,31 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using DSharpPlus.CommandsNext;
|
||||
using DSharpPlus.CommandsNext.Attributes;
|
||||
using LaDOSE.DiscordBot.Service;
|
||||
using LaDOSE.DTO;
|
||||
|
||||
namespace LaDOSE.DiscordBot.Command
|
||||
{
|
||||
public class BotEvent
|
||||
public class BotEvent : BaseCommandModule
|
||||
{
|
||||
private readonly Dependencies dep;
|
||||
|
||||
public BotEvent(Dependencies d)
|
||||
private WebService dep;
|
||||
public BotEvent(WebService d)
|
||||
{
|
||||
dep = d;
|
||||
}
|
||||
|
||||
[RequireRolesAttribute("Staff")]
|
||||
[RequireRolesAttribute(RoleCheckMode.Any, "Staff")]
|
||||
[Command("newevent")]
|
||||
public async Task NewEventAsync(CommandContext ctx, string command)
|
||||
{
|
||||
|
||||
await ctx.RespondAsync(dep.WebService.RestService.CreateBotEvent(command).ToString());
|
||||
await ctx.RespondAsync(dep.RestService.CreateBotEvent(command).ToString());
|
||||
}
|
||||
[RequireRolesAttribute("Staff")]
|
||||
[RequireRolesAttribute(RoleCheckMode.Any,"Staff")]
|
||||
[Command("staffs")]
|
||||
public async Task StaffAsync(CommandContext ctx)
|
||||
{
|
||||
BotEventDTO currentEvent = dep.WebService.RestService.GetLastBotEvent();
|
||||
BotEventDTO currentEvent = dep.RestService.GetLastBotEvent();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
|
||||
var present = currentEvent.Results.Where(x => x.Result).ToList();
|
||||
@@ -40,19 +40,19 @@ namespace LaDOSE.DiscordBot.Command
|
||||
await ctx.RespondAsync(stringBuilder.ToString());
|
||||
|
||||
}
|
||||
[RequireRolesAttribute("Staff")]
|
||||
[RequireRolesAttribute(RoleCheckMode.Any, "Staff")]
|
||||
[Command("present")]
|
||||
public async Task PresentAsync(CommandContext ctx)
|
||||
{
|
||||
await ctx.RespondAsync(dep.WebService.RestService.ResultBotEvent(new DTO.BotEventSendDTO() { DiscordId = ctx.Member.Id.ToString(), DiscordName = ctx.Member.DisplayName, Present = true }).ToString());
|
||||
await ctx.RespondAsync(dep.RestService.ResultBotEvent(new DTO.BotEventSendDTO() { DiscordId = ctx.Member.Id.ToString(), DiscordName = ctx.Member.DisplayName, Present = true }).ToString());
|
||||
|
||||
|
||||
}
|
||||
[RequireRolesAttribute("Staff")]
|
||||
[RequireRolesAttribute(RoleCheckMode.Any, "Staff")]
|
||||
[Command("absent")]
|
||||
public async Task AbsentAsync(CommandContext ctx)
|
||||
{
|
||||
await ctx.RespondAsync(dep.WebService.RestService.ResultBotEvent(new DTO.BotEventSendDTO() { DiscordId = ctx.Member.Id.ToString(), DiscordName = ctx.Member.DisplayName, Present = false }).ToString());
|
||||
await ctx.RespondAsync(dep.RestService.ResultBotEvent(new DTO.BotEventSendDTO() { DiscordId = ctx.Member.Id.ToString(), DiscordName = ctx.Member.DisplayName, Present = false }).ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,14 +9,14 @@ using DSharpPlus.Entities;
|
||||
namespace LaDOSE.DiscordBot.Command
|
||||
{
|
||||
|
||||
public class Hokuto
|
||||
public class Hokuto : BaseCommandModule
|
||||
{
|
||||
private readonly Dependencies dep;
|
||||
|
||||
private static List<string> Games = new List<string> { "2X", "3.3", "Karnov" };
|
||||
private static Random r = new Random();
|
||||
public Hokuto(Dependencies d)
|
||||
public Hokuto()
|
||||
{
|
||||
dep = d;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -9,16 +9,16 @@ using DSharpPlus.CommandsNext.Attributes;
|
||||
|
||||
namespace LaDOSE.DiscordBot.Command
|
||||
{
|
||||
public class Public
|
||||
public class Public : BaseCommandModule
|
||||
{
|
||||
private readonly Dependencies dep;
|
||||
|
||||
private static List<string> Quotes { get; set; }
|
||||
private static List<string> Questions { get; set; }
|
||||
private static List<string> Answers { get; set; }
|
||||
private Random rnd { get; set; }
|
||||
public Public(Dependencies d)
|
||||
public Public()
|
||||
{
|
||||
dep = d;
|
||||
|
||||
rnd = new Random(DateTime.Now.Millisecond);
|
||||
}
|
||||
|
||||
@@ -65,9 +65,17 @@ namespace LaDOSE.DiscordBot.Command
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
for (int i = 0; i < s.Length - 1; i++)
|
||||
{
|
||||
response += s[i] + Answers[rnd.Next(Answers.Count - 1)];
|
||||
if (s[i] == "" && i==0)
|
||||
{
|
||||
response += Answers[rnd.Next(Answers.Count - 1)];
|
||||
}
|
||||
else
|
||||
{
|
||||
response += s[i] + "***" + Answers[rnd.Next(Answers.Count - 1)].ToLower() + "***";
|
||||
}
|
||||
}
|
||||
response += s[s.Length - 1];
|
||||
}
|
||||
|
||||
@@ -1,45 +1,45 @@
|
||||
using System.Threading.Tasks;
|
||||
using DSharpPlus.CommandsNext;
|
||||
using DSharpPlus.CommandsNext.Attributes;
|
||||
//using System.Threading.Tasks;
|
||||
//using DSharpPlus.CommandsNext;
|
||||
//using DSharpPlus.CommandsNext.Attributes;
|
||||
|
||||
namespace LaDOSE.DiscordBot.Command
|
||||
{
|
||||
internal class Result
|
||||
{
|
||||
Dependencies dep;
|
||||
//namespace LaDOSE.DiscordBot.Command
|
||||
//{
|
||||
// internal class Result : BaseCommandModule
|
||||
// {
|
||||
// Dependencies dep;
|
||||
|
||||
public Result(Dependencies d)
|
||||
{
|
||||
this.dep = d;
|
||||
}
|
||||
// public Result(Dependencies d)
|
||||
// {
|
||||
// this.dep = d;
|
||||
// }
|
||||
|
||||
|
||||
//[Command("last")]
|
||||
//public async Task LastAsync(CommandContext ctx)
|
||||
//{
|
||||
// var lastTournamentMessage = dep.WebService.GetLastChallonge();
|
||||
// await ctx.RespondAsync(lastTournamentMessage);
|
||||
//}
|
||||
// //[Command("last")]
|
||||
// //public async Task LastAsync(CommandContext ctx)
|
||||
// //{
|
||||
// // var lastTournamentMessage = dep.WebService.GetLastChallonge();
|
||||
// // await ctx.RespondAsync(lastTournamentMessage);
|
||||
// //}
|
||||
|
||||
//[RequireRolesAttribute("Staff")]
|
||||
//[Command("inscriptions")]
|
||||
//public async Task InscriptionsAsync(CommandContext ctx)
|
||||
//{
|
||||
// await ctx.TriggerTypingAsync();
|
||||
// var inscrits = dep.WebService.GetInscrits();
|
||||
// await ctx.RespondAsync(inscrits);
|
||||
//}
|
||||
// //[RequireRolesAttribute("Staff")]
|
||||
// //[Command("inscriptions")]
|
||||
// //public async Task InscriptionsAsync(CommandContext ctx)
|
||||
// //{
|
||||
// // await ctx.TriggerTypingAsync();
|
||||
// // var inscrits = dep.WebService.GetInscrits();
|
||||
// // await ctx.RespondAsync(inscrits);
|
||||
// //}
|
||||
|
||||
[RequireRolesAttribute("Staff")]
|
||||
[Command("UpdateDb")]
|
||||
public async Task UpdateDbAsync(CommandContext ctx)
|
||||
{
|
||||
await ctx.RespondAsync("Mise à jour des inscriptions en cours...");
|
||||
await ctx.TriggerTypingAsync();
|
||||
// [RequireRolesAttribute(RoleCheckMode.Any,"Staff")]
|
||||
// [Command("UpdateDb")]
|
||||
// public async Task UpdateDbAsync(CommandContext ctx)
|
||||
// {
|
||||
// await ctx.RespondAsync("Mise à jour des inscriptions en cours...");
|
||||
// await ctx.TriggerTypingAsync();
|
||||
|
||||
var status = dep.WebService.RefreshDb() ? "Ok" : "erreur";
|
||||
// var status = dep.WebService.RefreshDb() ? "Ok" : "erreur";
|
||||
|
||||
await ctx.RespondAsync($"Status: {status}");
|
||||
}
|
||||
}
|
||||
}
|
||||
// await ctx.RespondAsync($"Status: {status}");
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
@@ -1,25 +1,25 @@
|
||||
using System.Threading.Tasks;
|
||||
using DSharpPlus.CommandsNext;
|
||||
using DSharpPlus.CommandsNext.Attributes;
|
||||
//using System.Threading.Tasks;
|
||||
//using DSharpPlus.CommandsNext;
|
||||
//using DSharpPlus.CommandsNext.Attributes;
|
||||
|
||||
namespace LaDOSE.DiscordBot.Command
|
||||
{
|
||||
[RequireRolesAttribute("SuperAdmin")]
|
||||
public class Shutdown
|
||||
{
|
||||
private readonly Dependencies dep;
|
||||
//namespace LaDOSE.DiscordBot.Command
|
||||
//{
|
||||
// [RequireRolesAttribute(RoleCheckMode.Any,"SuperAdmin")]
|
||||
// public class Shutdown : BaseCommandModule
|
||||
// {
|
||||
// private readonly Dependencies dep;
|
||||
|
||||
public Shutdown(Dependencies d)
|
||||
{
|
||||
dep = d;
|
||||
}
|
||||
// public Shutdown(Dependencies d)
|
||||
// {
|
||||
// dep = d;
|
||||
// }
|
||||
|
||||
|
||||
[Command("shutdown")]
|
||||
public async Task ShutDownAsync(CommandContext ctx)
|
||||
{
|
||||
await ctx.RespondAsync("Hasta la vista, baby");
|
||||
dep.Cts.Cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
// [Command("shutdown")]
|
||||
// public async Task ShutDownAsync(CommandContext ctx)
|
||||
// {
|
||||
// await ctx.RespondAsync("Hasta la vista, baby");
|
||||
// dep.Cts.Cancel();
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
@@ -4,10 +4,10 @@ using LaDOSE.DiscordBot.Service;
|
||||
|
||||
namespace LaDOSE.DiscordBot
|
||||
{
|
||||
public class Dependencies
|
||||
{
|
||||
internal InteractivityModule Interactivity { get; set; }
|
||||
internal CancellationTokenSource Cts { get; set; }
|
||||
public WebService WebService { get; set; }
|
||||
}
|
||||
//public class Dependencies
|
||||
//{
|
||||
// //internal InteractivityModule Interactivity { get; set; }
|
||||
// internal CancellationTokenSource Cts { get; set; }
|
||||
// public WebService WebService { get; set; }
|
||||
//}
|
||||
}
|
||||
@@ -7,9 +7,9 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DSharpPlus" Version="3.2.3" />
|
||||
<PackageReference Include="DSharpPlus.CommandsNext" Version="3.2.3" />
|
||||
<PackageReference Include="DSharpPlus.Interactivity" Version="3.2.3" />
|
||||
<PackageReference Include="DSharpPlus" Version="4.2.0" />
|
||||
<PackageReference Include="DSharpPlus.CommandsNext" Version="4.2.0" />
|
||||
<PackageReference Include="DSharpPlus.Interactivity" Version="4.2.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.8" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.8" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -7,21 +7,29 @@ using DSharpPlus;
|
||||
using DSharpPlus.Interactivity;
|
||||
using DSharpPlus.CommandsNext;
|
||||
using DSharpPlus.EventArgs;
|
||||
using DSharpPlus.Interactivity.Extensions;
|
||||
//using DSharpPlus.SlashCommands;
|
||||
//using DSharpPlus.SlashCommands.Attributes;
|
||||
using LaDOSE.DiscordBot.Command;
|
||||
using LaDOSE.DiscordBot.Service;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace LaDOSE.DiscordBot
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static DiscordClient discord;
|
||||
static InteractivityModule Interactivity { get; set; }
|
||||
|
||||
//static InteractivityModule Interactivity { get; set; }
|
||||
static void Main(string[] args)
|
||||
{
|
||||
MainAsync(args).ConfigureAwait(false).GetAwaiter().GetResult();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static async Task MainAsync(string[] args)
|
||||
{
|
||||
Console.WriteLine(Directory.GetCurrentDirectory());
|
||||
@@ -35,108 +43,106 @@ namespace LaDOSE.DiscordBot
|
||||
var restUser = builder["REST:User"].ToString();
|
||||
var restPassword = builder["REST:Password"].ToString();
|
||||
|
||||
var service = new ServiceCollection()
|
||||
.AddSingleton(typeof(WebService), new WebService(new Uri(restUrl), restUser, restPassword))
|
||||
.BuildServiceProvider();
|
||||
|
||||
|
||||
Console.WriteLine($"LaDOSE.Net Discord Bot");
|
||||
|
||||
|
||||
|
||||
discord = new DiscordClient(new DiscordConfiguration
|
||||
{
|
||||
Token = discordToken,
|
||||
TokenType = TokenType.Bot
|
||||
TokenType = TokenType.Bot,
|
||||
//AutoReconnect = true,
|
||||
//MinimumLogLevel = LogLevel.Debug,
|
||||
//MessageCacheSize = 0,
|
||||
});
|
||||
|
||||
discord.UseInteractivity(new InteractivityConfiguration
|
||||
{
|
||||
|
||||
// default pagination behaviour to just ignore the reactions
|
||||
PaginationBehaviour = TimeoutBehaviour.Ignore,
|
||||
//PaginationBehaviour = TimeoutBehaviour.Ignore,
|
||||
|
||||
// default pagination timeout to 5 minutes
|
||||
PaginationTimeout = TimeSpan.FromMinutes(5),
|
||||
//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);
|
||||
|
||||
var cts = new CancellationTokenSource();
|
||||
DependencyCollection dep = null;
|
||||
|
||||
using (var d = new DependencyCollectionBuilder())
|
||||
{
|
||||
d.AddInstance(new Dependencies()
|
||||
{
|
||||
Cts = cts,
|
||||
//ChallongeService = challongeService,
|
||||
WebService = webService
|
||||
});
|
||||
dep = d.Build();
|
||||
}
|
||||
|
||||
var cts = new CancellationTokenSource();
|
||||
|
||||
var _cnext = discord.UseCommandsNext(new CommandsNextConfiguration()
|
||||
{
|
||||
CaseSensitive = false,
|
||||
EnableDefaultHelp = true,
|
||||
EnableDms = false,
|
||||
EnableMentionPrefix = true,
|
||||
StringPrefix = "!",
|
||||
IgnoreExtraArguments = true,
|
||||
Dependencies = dep
|
||||
//CaseSensitive = false,
|
||||
//EnableDefaultHelp = true,
|
||||
//EnableDms = false,
|
||||
//EnableMentionPrefix = true,
|
||||
StringPrefixes = new List<string>() { "/", "!" },
|
||||
//IgnoreExtraArguments = true,
|
||||
Services = service
|
||||
});
|
||||
|
||||
_cnext.RegisterCommands<Result>();
|
||||
|
||||
//var slashCommands = discord.UseSlashCommands(new SlashCommandsConfiguration() {Services = service});
|
||||
//slashCommands.RegisterCommands<SlashCommand>(guildId:null);
|
||||
|
||||
|
||||
//_cnext.RegisterCommands<Result>();
|
||||
_cnext.RegisterCommands<Public>();
|
||||
_cnext.RegisterCommands<Shutdown>();
|
||||
//_cnext.RegisterCommands<Shutdown>();
|
||||
//_cnext.RegisterCommands<Todo>();
|
||||
_cnext.RegisterCommands<Hokuto>();
|
||||
_cnext.RegisterCommands<BotEvent>();
|
||||
|
||||
//discord.UserUpdated += async e =>
|
||||
//{
|
||||
// await e.Client?.InitializeAsync();
|
||||
//};
|
||||
//discord.UserSettingsUpdated += async e =>
|
||||
//{
|
||||
// await e.Client?.InitializeAsync();
|
||||
//};
|
||||
//discord.GuildMemberUpdated += async e =>
|
||||
//{
|
||||
// await e.Client?.InitializeAsync();
|
||||
//};
|
||||
//discord.GuildRoleUpdated += async e =>
|
||||
//{
|
||||
// e.Client?.InitializeAsync();
|
||||
//};
|
||||
|
||||
//discord.UserSettingsUpdated += async e =>
|
||||
//{
|
||||
// e.Client?.InitializeAsync();
|
||||
//};
|
||||
|
||||
//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");
|
||||
//};
|
||||
|
||||
discord.GuildMemberAdded += async e =>
|
||||
foreach (var registeredCommandsKey in discord.GetCommandsNext().RegisteredCommands.Keys)
|
||||
{
|
||||
Console.WriteLine($"{e.Member.DisplayName} Joined");
|
||||
await Task.Delay(0);
|
||||
//await e.Guild.GetDefaultChannel().SendMessageAsync($"Bonjour!");
|
||||
Console.WriteLine(registeredCommandsKey);
|
||||
}
|
||||
|
||||
|
||||
discord.Ready += (sender, eventArgs) =>
|
||||
{
|
||||
Console.WriteLine($"Bot READY.");
|
||||
return Task.CompletedTask;
|
||||
};
|
||||
discord.GuildAvailable += (sender, eventArgs) =>
|
||||
{
|
||||
|
||||
Console.WriteLine($"Joined Guild " + eventArgs.Guild.Name);
|
||||
return Task.CompletedTask;
|
||||
};
|
||||
|
||||
|
||||
await discord.ConnectAsync();
|
||||
while (!cts.IsCancellationRequested)
|
||||
{
|
||||
|
||||
await Task.Delay(200);
|
||||
|
||||
|
||||
//if(discord.GetConnectionsAsync().Result.Count)
|
||||
}
|
||||
await Task.Delay(Timeout.Infinite);
|
||||
|
||||
//while (!cts.IsCancellationRequested)
|
||||
//{
|
||||
// await Task.Delay(200);
|
||||
// //if(discord.GetConnectionsAsync().Result.Count)
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//internal class SlashCommand : ApplicationCommandModule
|
||||
//{
|
||||
// [SlashCommand("test", "A slash command made to test the DSharpPlusSlashCommands library!")]
|
||||
|
||||
// public async Task TestCommand(InteractionContext ctx)
|
||||
// {
|
||||
|
||||
// await ctx.CreateResponseAsync("Lol");
|
||||
|
||||
// }
|
||||
//}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user