public void Process(SocketMessage message) { if (checkForWord(message.Content)) { User sender = db.Find <User>(message.Author.Id.ToString()); if (sender == null) { sender = new User() { id = message.Author.Id.ToString(), username = message.Author.Username }; db.Add(sender); } #if !DEBUG if (sender.id == guesser.ActiveWord().user.id) { return; //ignore owner } #endif sender.points++; Discord.Reply(message.Channel, $"{sender.username} угадал загаданное слово ``{guesser.ActiveWord().word}`` \n Успей загадать готовое слово в личку боту. Например ``;;загадать пельмень``"); Discord.DM(message.Author, $"Ты угадал загаданное слово ``{guesser.ActiveWord().word}`` \n Успей загадать готовое слово в личку боту. Например ``;;загадать мама`` \n\n Твое количество очков: ``{sender.points}``"); guesser.DeActivateWord(); } }
public void Process(SocketMessage message) { Message = message; Command cmd = new Command(message); User sender = db.Find <User>(message.Author.Id.ToString()); if (sender == null) { sender = new User() { id = message.Author.Id.ToString(), username = message.Author.Username }; db.Add(sender); } GuessedWord active = guesser.ActiveWord(); if (!cmd.isValid) { Discord.Reply(Message.Channel, "Неизвестная комманда, напиши ;;help"); return; } switch (cmd.command) { case "кто": if (active != null) { Discord.Reply(Message.Channel, $"Слово загадал {active.user.username} в {active.activated}"); } else { Discord.Reply(Message.Channel, $"Слово никто не загадал! Будь первым! Напиши ``;;загадать абрикос``"); } break; case "загадать": if (active != null) { TimeSpan timepassed = DateTime.Now - active.activated; if (timepassed.TotalHours < 24) { Discord.Reply(Message.Channel, $"Слово загадал ``{active.user.username}`` в ``{active.activated}``. \n Реши прежде его слово, чтобы получить возможность загадать своё"); return; } nlog.LogInformation("Question expired"); guesser.DeActivateWord(); } string combinedword = string.Join(" ", cmd.arguments); if (combinedword.Length < 3) { Discord.Reply(Message.Channel, $"Давай что-то по длинее придумай :wink:"); return; } if (combinedword.Length > 12) { Discord.Reply(Message.Channel, $"Они же никогда в жизни не угадают, за что ты так с ними? :weary: \n Давай другое"); return; } if (WordValidator(combinedword)) { Discord.Reply(Message.Channel, $"Попробуй загадать слово используя лишь буквы"); return; } GuessedWord word = new GuessedWord() { user = sender, word = combinedword.ToLower() }; guesser.ActivateWord(word); Discord.Reply(Message.Channel, $"Хорошо, пусть попробуют теперь угадать {word.word}"); break; case "очки": Discord.Reply(Message.Channel, $"Твои баллы: {sender.points}"); break; case "забудь": if (active == null) { Discord.Reply(Message.Channel, $"Так ничего же загадано!"); return; } if (sender.id != active.user.id) { Discord.Reply(Message.Channel, $"Хех, хитрый. Не ты загадывал это слово. Попроси {active.user.username} чтобы он отменил, или дождись 24 часа"); return; } guesser.DeActivateWord(); Discord.Reply(Message.Channel, $"ОК. Готов к новому слову"); break; case "help": break; default: Discord.Reply(Message.Channel, "Неизвестная комманда, напиши ;;help"); break; } }