mirror of
https://github.com/yawaflua/PL_JusticeBot.git
synced 2025-12-09 20:09:31 +02:00
updated
This commit is contained in:
35
Justice/Interactions/NotaryInteractions.cs
Normal file
35
Justice/Interactions/NotaryInteractions.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using Discord.Interactions;
|
||||
using DiscordApp.Justice.Modals;
|
||||
using DiscordApp.Utilities;
|
||||
|
||||
namespace DiscordApp.Justice.Interactions
|
||||
{
|
||||
public class NotaryInteractions : InteractionModuleBase<SocketInteractionContext>
|
||||
{
|
||||
[ComponentInteraction("NewDocumentCertificate")]
|
||||
public async Task newCertificatedDocument()
|
||||
=> await Context.Interaction.RespondWithModalAsync<INotaryModal>("newCertificatedDocument");
|
||||
|
||||
[ModalInteraction("newCertificatedDocument")]
|
||||
public async Task newCertificatedDocumentModal(INotaryModal modal)
|
||||
{
|
||||
await DeferAsync(true);
|
||||
int passportId;
|
||||
int documentId;
|
||||
int certificateId;
|
||||
Random random = new Random();
|
||||
IdChecker.IdLenghtIsLower(out certificateId);
|
||||
documentId = Startup.appDbContext.Certificates.OrderBy(t => t.Id).First().Id + 1;
|
||||
bool isInt = int.TryParse(modal.passportId, out passportId);
|
||||
if (!isInt)
|
||||
{
|
||||
await FollowupAsync($"Айди паспорта еще старое, попробуй использовать другого бота.", ephemeral: true);
|
||||
}
|
||||
else if (Startup.appDbContext.Passport.Find(passportId) == null)
|
||||
{
|
||||
await FollowupAsync($"Паспорт не найден в базе данных, попробуй написать правильно", ephemeral: true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
55
Justice/Interactions/PassportGetterInteraction.cs
Normal file
55
Justice/Interactions/PassportGetterInteraction.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using Discord;
|
||||
using Discord.Interactions;
|
||||
using DiscordApp.Database.Tables;
|
||||
using DiscordApp.Justice.Modals;
|
||||
|
||||
namespace DiscordApp.Justice.Interactions
|
||||
{
|
||||
public class PassportGetterInteraction : InteractionModuleBase<SocketInteractionContext>
|
||||
{
|
||||
[ComponentInteraction("searchPassport")]
|
||||
public async Task searchPassportInteraction() => await RespondWithModalAsync<IPassportGetter>("GetPassportModal");
|
||||
|
||||
[ModalInteraction("GetPassportModal")]
|
||||
public async Task getPassportInteraction(IPassportGetter modal)
|
||||
{
|
||||
await DeferAsync(true);
|
||||
int passportId;
|
||||
Passport passport;
|
||||
bool isInteger = int.TryParse(modal.passport, out passportId);
|
||||
if (isInteger)
|
||||
{
|
||||
passport = await Startup.appDbContext.Passport.FindAsync(passportId);
|
||||
}
|
||||
else
|
||||
{
|
||||
passport = Startup.appDbContext.Passport.Where(k => k.Applicant == modal.passport).FirstOrDefault();
|
||||
}
|
||||
|
||||
if (passport == null)
|
||||
{
|
||||
await FollowupAsync("Игрок или паспорт не найден в базе данных, попробуйте использовать старого бота.", ephemeral: true);
|
||||
return;
|
||||
}
|
||||
var fields = new List<EmbedFieldBuilder>()
|
||||
{
|
||||
new EmbedFieldBuilder().WithName("Никнейм").WithValue(passport.Applicant).WithIsInline(true),
|
||||
new EmbedFieldBuilder().WithName("РП Имя").WithValue(passport.RpName).WithIsInline(true),
|
||||
new EmbedFieldBuilder().WithName("Гендер").WithValue(passport.Gender).WithIsInline(false),
|
||||
new EmbedFieldBuilder().WithName("Благотворитель").WithValue((int)passport.Support).WithIsInline(false),
|
||||
new EmbedFieldBuilder().WithName("Дата рождения").WithValue($"<t:{passport.birthDate}:D>").WithIsInline(false),
|
||||
new EmbedFieldBuilder().WithName("Номер паспорта").WithValue(passport.Id).WithIsInline(true),
|
||||
new EmbedFieldBuilder().WithName("Годен до").WithValue($"<t:{passport.Date}:D>").WithIsInline(true),
|
||||
new EmbedFieldBuilder().WithName("Паспортист").WithValue($"<@{passport.Employee}>").WithIsInline(true)
|
||||
};
|
||||
var spUser = await spworlds.Types.User.CreateUser(passport.Applicant);
|
||||
var embed = new EmbedBuilder()
|
||||
.WithTitle("**Информация о паспорте**")
|
||||
.WithFields(fields)
|
||||
.WithThumbnailUrl(spUser.GetSkinPart(spworlds.Types.SkinPart.face))
|
||||
.Build();
|
||||
await FollowupAsync(embed:embed, ephemeral: true);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -158,8 +158,8 @@ namespace DiscordApp.Justice.Interactions
|
||||
Root spUserData = await startup.getUserData(name);
|
||||
DateTimeOffset toTime;
|
||||
DateOnly birthDate;
|
||||
int id = random.Next(00001, 99999);
|
||||
while (id.ToString().Length < 5) { id = random.Next(00001, 99999); }
|
||||
int id;
|
||||
Utilities.IdChecker.IdLenghtIsLower(out id);
|
||||
long unixBirthDateTime;
|
||||
string cityName;
|
||||
string cardNumber;
|
||||
@@ -242,8 +242,7 @@ namespace DiscordApp.Justice.Interactions
|
||||
bool isUnical = false;
|
||||
while (!isUnical)
|
||||
{
|
||||
id = random.Next(00001, 99999);
|
||||
while (id.ToString().Length < 5) { id = random.Next(00001, 99999); }
|
||||
Utilities.IdChecker.IdLenghtIsLower(out id);
|
||||
passport.Id = id;
|
||||
Console.WriteLine(passport.Id);
|
||||
if (Startup.appDbContext.Passport.FindAsync(passport.Id).Result == null) { break; }
|
||||
@@ -256,7 +255,7 @@ namespace DiscordApp.Justice.Interactions
|
||||
Имя: {passport.Applicant}
|
||||
РП Имя: {passport.RpName}
|
||||
Айди: {id}
|
||||
Благотворитель: {passport.Support}
|
||||
Благотворитель: {(int)passport.Support}
|
||||
Гендер: {passport.Gender}
|
||||
Дата рождения: <t:{passport.birthDate}:D>
|
||||
Город: {cityName}
|
||||
|
||||
Reference in New Issue
Block a user