add timer-cnhager nickname

This commit is contained in:
Дмитрий Шиманский
2023-11-03 18:38:18 +03:00
parent e977fb2abd
commit 7f0728ce1a
6 changed files with 50 additions and 24 deletions

View File

@@ -1,6 +1,7 @@
using Discord; using Discord;
using Discord.WebSocket; using Discord.WebSocket;
using DiscordApp; using DiscordApp;
using System.Timers;
namespace DiscordApp namespace DiscordApp
{ {
@@ -28,13 +29,41 @@ namespace DiscordApp
client.Log += LogAsync; client.Log += LogAsync;
client.UserJoined += Justice.Events.Events.onJoinGuild; client.UserJoined += Justice.Events.Events.onJoinGuild;
client.MessageReceived += Justice.Events.Events.onMessageCreate; client.MessageReceived += Justice.Events.Events.onMessageCreate;
client.Ready += onReady;
await client.LoginAsync(TokenType.Bot, "MTE2NjA3OTk3NjQ0NjEwMzYwMg.GAKOIo.4af972Wh11G0EF4O5tNYb7l-vt5OwMc4HPRnjE"); await client.LoginAsync(TokenType.Bot, "MTE2NjA3OTk3NjQ0NjEwMzYwMg.GAKOIo.4af972Wh11G0EF4O5tNYb7l-vt5OwMc4HPRnjE");
await client.StartAsync(); await client.StartAsync();
await interactionHandler.InitializeAsync(); await interactionHandler.InitializeAsync();
await Task.Delay(Timeout.Infinite); await Task.Delay(Timeout.Infinite);
} }
public async Task onReady()
{
ChangeNicknames();
var myTimer = new System.Timers.Timer(6 * 60 * 60 * 1000); //calculate six hours in milliseconds
myTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
myTimer.Start();
}
private async void OnTimedEvent(object sender, ElapsedEventArgs e)
{
Console.WriteLine("Started timer");
await ChangeNicknames();
}
private async Task ChangeNicknames()
{
IGuild guild = client.GetGuild(1107742957458685985);
IRole role = guild.GetRole(1136564585420304444);
var members = await guild.GetUsersAsync();
var membersArray = members.ToArray();
foreach (IGuildUser user in membersArray)
{
var spUser = await Startup.sp.GetUser(user.Id.ToString());
if (spUser.IsPlayer())
{
await user.ModifyAsync(func => { func.Nickname = spUser.Name; });
await user.AddRoleAsync(role);
}
}
}
private async Task LogAsync(LogMessage message) private async Task LogAsync(LogMessage message)
=> Console.WriteLine(message.ToString()); => Console.WriteLine(message.ToString());
} }

View File

@@ -10,15 +10,15 @@ namespace DiscordApp.Justice.Interactions
{ {
[ComponentInteraction("NewIndividualEntrepreneur")] [ComponentInteraction("NewIndividualEntrepreneur")]
public async Task AplyWork() public async Task AplyWork()
=> await Context.Interaction.RespondWithModalAsync<INewIndividualEntrepreneur>("newIndividualEterpreneur"); => await Context.Interaction.RespondWithModalAsync<INewIndividualEntrepreneur>("newIndividualEterpreneurModal");
[ComponentInteraction("NewBizness")] [ComponentInteraction("NewBizness")]
public async Task reCreatePassport() public async Task reCreatePassport()
=> await Context.Interaction.RespondWithModalAsync<INewBizness>("NewBizness"); => await Context.Interaction.RespondWithModalAsync<INewBizness>("NewBiznessModal");
[ModalInteraction("newIndividualEterpreneur")] [ModalInteraction("newIndividualEterpreneurModal")]
public async Task newIndividualEterpreneur(INewIndividualEntrepreneur modal) public async Task newIndividualEterpreneur(INewIndividualEntrepreneur modal)
{ {
await DeferAsync(true);
Passport? applicant = await Startup.appDbContext.Passport.FindAsync(int.Parse(modal.passportId)); Passport? applicant = await Startup.appDbContext.Passport.FindAsync(int.Parse(modal.passportId));
if (applicant == null) if (applicant == null)
{ {
@@ -68,10 +68,10 @@ namespace DiscordApp.Justice.Interactions
await channel.SendMessageAsync(embed: embed); await channel.SendMessageAsync(embed: embed);
} }
[ModalInteraction("NewBizness")] [ModalInteraction("NewBiznessModal")]
public async Task newBizness(INewBizness modal) public async Task newBizness(INewBizness modal)
{ {
await DeferAsync(true);
Passport? applicant = await Startup.appDbContext.Passport.FindAsync(int.Parse(modal.passportId)); Passport? applicant = await Startup.appDbContext.Passport.FindAsync(int.Parse(modal.passportId));
if (applicant == null) if (applicant == null)

View File

@@ -28,8 +28,9 @@ namespace DiscordApp.Justice.Interactions
[ModalInteraction("reworkpassportModal")] [ModalInteraction("reworkpassportModal")]
public async Task reCreatePassportInteraction(IReWorkPassportModal modal) public async Task reCreatePassportInteraction(IReWorkPassportModal modal)
{ {
await DeferAsync(true);
double passportId = modal.Id; int passportId;
int.TryParse(modal.Id, out passportId);
bool recreatePassport = modal.IsNewPassport == 1; bool recreatePassport = modal.IsNewPassport == 1;
if (recreatePassport) if (recreatePassport)
{ {
@@ -37,6 +38,7 @@ namespace DiscordApp.Justice.Interactions
} }
else else
{ {
if (passportId == null) { await FollowupAsync("Айди паспорта устаревший, используйте кнопку \"Создать новый\" для создания паспорта", ephemeral: true); return; }
var passport = Startup.appDbContext.Passport.Where(x => x.Id == passportId).FirstOrDefault(); var passport = Startup.appDbContext.Passport.Where(x => x.Id == passportId).FirstOrDefault();
if (passport == null) { await FollowupAsync("ID паспорта не правильный, или не существует.", ephemeral: true); return; } if (passport == null) { await FollowupAsync("ID паспорта не правильный, или не существует.", ephemeral: true); return; }
@@ -113,7 +115,7 @@ namespace DiscordApp.Justice.Interactions
[ModalInteraction("ReNewPassportModal")] [ModalInteraction("ReNewPassportModal")]
public async Task renewPassportInteraction(INewPassportModal modal) public async Task renewPassportInteraction(INewPassportModal modal)
{ {
await DeferAsync(true);
string name = modal.NickName; string name = modal.NickName;
string RpName = modal.RPName; string RpName = modal.RPName;
int supporterInt = modal.Supporter; int supporterInt = modal.Supporter;
@@ -239,7 +241,7 @@ namespace DiscordApp.Justice.Interactions
[ModalInteraction("passportModal")] [ModalInteraction("passportModal")]
public async Task createPassportInteraction(INewPassportModal modal) public async Task createPassportInteraction(INewPassportModal modal)
{ {
await DeferAsync(true);
string name = modal.NickName; string name = modal.NickName;
string RpName = modal.RPName; string RpName = modal.RPName;
int supporterInt = modal.Supporter; int supporterInt = modal.Supporter;

View File

@@ -18,7 +18,7 @@ namespace DiscordApp.Justice.Interactions
[ModalInteraction("newArtCallback")] [ModalInteraction("newArtCallback")]
public async Task newArtModalInteraction(INewArtModal modal) public async Task newArtModalInteraction(INewArtModal modal)
{ {
await DeferAsync(true);
string name = modal.Name; string name = modal.Name;
string maps = modal.MapNumbers; string maps = modal.MapNumbers;
string size = modal.Size; string size = modal.Size;
@@ -89,7 +89,7 @@ namespace DiscordApp.Justice.Interactions
[ModalInteraction("newBookCallback")] [ModalInteraction("newBookCallback")]
public async Task newBookModalInteraction(INewBookModal modal) public async Task newBookModalInteraction(INewBookModal modal)
{ {
await DeferAsync(true);
string name = modal.Name; string name = modal.Name;
string janre = modal.Janre; string janre = modal.Janre;
string annotation = modal.Annotation; string annotation = modal.Annotation;

View File

@@ -33,8 +33,8 @@ namespace DiscordApp.Justice.Modals
public string Title => "Создание паспорта"; public string Title => "Создание паспорта";
[InputLabel("ID паспорта")] [InputLabel("ID паспорта")]
[ModalTextInput("id", TextInputStyle.Short, placeholder: "82-777", maxLength: 7)] [ModalTextInput("id", TextInputStyle.Short, placeholder: "97166", maxLength: 7)]
public double Id { get; set; } public string Id { get; set; }
[InputLabel("Новые данные(0/1)")] [InputLabel("Новые данные(0/1)")]
[ModalTextInput("isNewPassportData", TextInputStyle.Short, placeholder: "1 - да, 0 - нет", maxLength: 1, initValue: "0")] [ModalTextInput("isNewPassportData", TextInputStyle.Short, placeholder: "1 - да, 0 - нет", maxLength: 1, initValue: "0")]

View File

@@ -2,6 +2,7 @@
using Discord.Interactions; using Discord.Interactions;
using Discord.WebSocket; using Discord.WebSocket;
using DiscordApp.Database; using DiscordApp.Database;
using Microsoft.VisualBasic;
using System.Reflection; using System.Reflection;
@@ -47,22 +48,16 @@ namespace DiscordApp
try try
{ {
var context = new SocketInteractionContext(client, interaction); var context = new SocketInteractionContext(client, interaction);
//await context.Interaction.DeferAsync(true);
var result = await handler.ExecuteCommandAsync(context, services); var result = await handler.ExecuteCommandAsync(context, services);
if (!result.IsSuccess) if (!result.IsSuccess)
switch (result.Error) await interaction.RespondAsync($"Возникла какая-то ошибка: {result.Error}", ephemeral: true);
{
case InteractionCommandError.UnmetPrecondition:
break;
default:
break;
}
} }
catch catch
{ {
if (interaction.Type is InteractionType.ApplicationCommand) if (interaction.Type is InteractionType.ApplicationCommand)
await interaction.GetOriginalResponseAsync().ContinueWith(async (msg) => await msg.Result.DeleteAsync()); await interaction.GetOriginalResponseAsync().ContinueWith(async (msg) => await msg.Result.DeleteAsync()); ;
} }
} }
} }