123456789101112131415161718192021222324252627282930313233 |
- using System.Threading.Tasks;
- using MafiaTelegramBot.Controllers;
- using MafiaTelegramBot.Game;
- using MafiaTelegramBot.Resources;
- using Telegram.Bot.Types;
- namespace MafiaTelegramBot.Commands.Messages
- {
- public class StartGameMessageHandler : MessageHandler
- {
- protected override string Command => keyboard.begin_game;
- public override async Task<Message> Execute(Update update)
- {
- Logs.LogOut(GetType(), "Execute");
- var roomKey = RoomEncrypter.GetCode(User.GetRoomName());
- var room = RoomController.GetRoom(roomKey);
- if(room == null)
- return await MessageController.SendText(User.Info, strings.room_does_not_exists);
- if (!User.Equals(room.Owner))
- return await new CommandNotFound(User, update.Message.Text).Execute(update);
- if (room.IsExtended) return await MessageController.SendText(User.Info, strings.continue_question, Keyboard.StartExtendedRoomKeyboard());
- var result = await MessageController.SendText(User.Info, strings.game_process_started);
- var resultCode = await room.Prepare();
- if (resultCode != ResultCode.CodeOk)
- return await MessageController.SendText(User.Info, Utilities.GetResultCodeMessage(resultCode));
- room.Start();
- return result;
- }
- public StartGameMessageHandler(Player player) : base(player) { }
- }
- }
|