|
@@ -1,6 +1,7 @@
|
|
|
using System.Threading.Tasks;
|
|
|
using MafiaTelegramBot.Controllers;
|
|
|
using MafiaTelegramBot.DataBase;
|
|
|
+using MafiaTelegramBot.Game;
|
|
|
using MafiaTelegramBot.Resources;
|
|
|
using Telegram.Bot.Types;
|
|
|
using Telegram.Bot.Types.Enums;
|
|
@@ -18,8 +19,14 @@ namespace MafiaTelegramBot.Models.Commands
|
|
|
var message = update.Message.Text;
|
|
|
var userId = update.Message.From.Id;
|
|
|
|
|
|
- if (Bot.UsersThatChangesNickname.Remove(userId)) return await ChangeNicknameLogic(userId, chatId, message);
|
|
|
- if (Bot.UsersThatCreatesPublicRoom.Remove(userId)) return await CreatePublicRoomLogic(userId, chatId, message);
|
|
|
+ if (Bot.UsersThatChangesNickname.Remove(userId))
|
|
|
+ return await ChangeNicknameLogic(userId, chatId, message);
|
|
|
+ if (Bot.UsersThatCreatesRoom.ContainsKey(userId))
|
|
|
+ {
|
|
|
+ var param = Bot.UsersThatCreatesRoom[userId];
|
|
|
+ Bot.UsersThatCreatesRoom.Remove(userId);
|
|
|
+ return await CreateRoomLogic(userId, chatId, message, param);
|
|
|
+ }
|
|
|
|
|
|
return await Bot.SendWithMarkdown2(chatId, $"{strings.command_not_found} _*\\({message}\\)*_");
|
|
|
}
|
|
@@ -31,10 +38,12 @@ namespace MafiaTelegramBot.Models.Commands
|
|
|
return await Bot.SendWithMarkdown2(chatId, $"{strings.name_updated} _*{message}*_");
|
|
|
}
|
|
|
|
|
|
- private static async Task<Message> CreatePublicRoomLogic(long userId, long chatId, string message)
|
|
|
+ private static async Task<Message> CreateRoomLogic(long userId, long chatId, string roomName, string[] param)
|
|
|
{
|
|
|
var user = await UserDao.GetUserById(userId);
|
|
|
- var resultCode = await RoomController.CreateNewGame(user, message);
|
|
|
+ var resultCode = param[0] == "public"
|
|
|
+ ? await RoomController.CreateNewGame(user, roomName, param[1] == strings.extended_callback)
|
|
|
+ : await RoomController.CreateNewGame(user, roomName, param[1] == strings.extended_callback, RoomEncrypter.Encrypt(roomName));
|
|
|
var keyboard = new InlineKeyboardMarkup(new []
|
|
|
{
|
|
|
new []{
|
|
@@ -42,13 +51,19 @@ namespace MafiaTelegramBot.Models.Commands
|
|
|
InlineKeyboardButton.WithCallbackData(strings.leave, $"{strings.leave_callback}|{userId}")
|
|
|
}
|
|
|
});
|
|
|
- return resultCode switch
|
|
|
+ var result = resultCode switch
|
|
|
{
|
|
|
- Constants.CODE_OK => await Bot.SendWithMarkdown2(chatId, $"{strings.room_with_name} _*{message}*_ {strings.was_created}", keyboard),
|
|
|
+ Constants.CODE_OK => await Bot.SendWithMarkdown2(chatId, $"{strings.room_with_name} _*{roomName}*_ {strings.was_created}", keyboard),
|
|
|
Constants.USER_ALREADY_IN_GAME => await Bot.SendWithMarkdown2(chatId, $"{strings.user_already_playing} _*{user?.GetCurrentGame()}*_"),
|
|
|
- Constants.GAME_EXISTS => await Bot.SendWithMarkdown2(chatId, $"{strings.room} _*{message}*_ {strings.already_exists}"),
|
|
|
+ Constants.GAME_EXISTS => await Bot.SendWithMarkdown2(chatId, $"{strings.room} _*{roomName}*_ {strings.already_exists}"),
|
|
|
_ => await Bot.SendWithMarkdown2(chatId, strings.unexpected_error)
|
|
|
};
|
|
|
+ if (resultCode == Constants.CODE_OK && param[0] == "private")
|
|
|
+ {
|
|
|
+ await Bot.SendWithMarkdown2(chatId,
|
|
|
+ $"{strings.secret_key_is} _*{roomName}*_: ```{RoomEncrypter.NameToCode(roomName)}```");
|
|
|
+ }
|
|
|
+ return result;
|
|
|
}
|
|
|
}
|
|
|
}
|