diff --git a/Program.cs b/Program.cs index fcbf913..472056a 100644 --- a/Program.cs +++ b/Program.cs @@ -396,36 +396,43 @@ class Program var message = update.Message; Log.Information($"Получено сообщение от {message.Chat.Id}: {message.Text}"); - if (message.Text.StartsWith("/admin")) + // Обработка текстовых сообщений + if (update.Type == UpdateType.Message && update.Message?.Text != null) { - string[] parts = message.Text.Split(' '); - if (parts.Length == 3 && parts[1] == adminPassword) + var message = update.Message; + Log.Information($"Получено сообщение от {message.Chat.Id}: {message.Text}"); + + if (message.Text.StartsWith("/admin")) { - string fullName = parts[2]; - admins.Add(message.Chat.Id); - adminFullNames[message.Chat.Id] = fullName; - // Сохраняем администратора в базу данных - await SaveAdminToDatabase(message.Chat.Id, fullName); + string[] parts = message.Text.Split(new[] { ' ' }, 3); // Разделяем на 3 части: команду, пароль и остаток как ФИО + if (parts.Length >= 3 && parts[1] == adminPassword) + { + string fullName = parts[2]; // Вся оставшаяся строка - это ФИО + admins.Add(message.Chat.Id); + adminFullNames[message.Chat.Id] = fullName; + // Сохраняем администратора в базу данных + await SaveAdminToDatabase(message.Chat.Id, fullName); - var authMessage = await botClient.SendMessage(message.Chat.Id, "✅ Вы авторизованы как администратор!"); - Log.Information($"Новый администратор: {message.Chat.Id}, ФИО: {fullName}"); - await Task.Delay(2000); - await botClient.DeleteMessage(message.Chat.Id, authMessage.MessageId); - await SendMainMenu(botClient, message.Chat.Id); + var authMessage = await botClient.SendMessage(message.Chat.Id, $"✅ Вы авторизованы как администратор, {fullName}!"); + Log.Information($"Новый администратор: {message.Chat.Id}, ФИО: {fullName}"); + await Task.Delay(2000); + await botClient.DeleteMessage(message.Chat.Id, authMessage.MessageId); + await SendMainMenu(botClient, message.Chat.Id); + } + else + { + var authMessage = await botClient.SendMessage(message.Chat.Id, "❌ Неверный формат команды или пароль! Используйте: /admin пароль Фамилия Имя Отчество"); + await Task.Delay(2000); + await botClient.DeleteMessage(message.Chat.Id, authMessage.MessageId); + await SendMainMenu(botClient, message.Chat.Id); + } + return; } - else - { - var authMessage = await botClient.SendMessage(message.Chat.Id, "❌ Неверный пароль или ФИО!"); - await Task.Delay(2000); - await botClient.DeleteMessage(message.Chat.Id, authMessage.MessageId); - await SendMainMenu(botClient, message.Chat.Id); - } - return; - } - // В блоке для обработки текстовых сообщений - else if (message.Text == "/admins") + + // В блоке для обработки текстовых сообщений + else if (message.Text == "/admins") { if (admins.Contains(message.Chat.Id)) {