Esempio n. 1
0
 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();
     }
 }
Esempio n. 2
0
        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;
            }
        }