|
@@ -1,3 +1,4 @@
|
|
|
|
+using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using System.Threading.Tasks;
|
|
@@ -20,8 +21,8 @@ namespace MafiaTelegramBot.Controllers
|
|
if (gameExists) return ResultCode.GameAlreadyExists;
|
|
if (gameExists) return ResultCode.GameAlreadyExists;
|
|
if (!await owner.SetRoomKey(secretPhrase ?? roomName)) return ResultCode.UserAlreadyInGame;
|
|
if (!await owner.SetRoomKey(secretPhrase ?? roomName)) return ResultCode.UserAlreadyInGame;
|
|
var room = secretPhrase == null
|
|
var room = secretPhrase == null
|
|
- ? new GameRoom {Creator = owner, RoomName = roomName, IsExtended = extended}
|
|
|
|
- : new PrivateGameRoom {Creator = owner, RoomName = roomName, IsExtended = extended};
|
|
|
|
|
|
+ ? new GameRoom {Owner = owner, RoomName = roomName, IsExtended = extended}
|
|
|
|
+ : new PrivateGameRoom {Owner = owner, RoomName = roomName, IsExtended = extended};
|
|
OpenedGames.Add(secretPhrase ?? roomName, room);
|
|
OpenedGames.Add(secretPhrase ?? roomName, room);
|
|
room.Players.Add(owner.Id, owner);
|
|
room.Players.Add(owner.Id, owner);
|
|
RoomEncrypter.CreateShortName(roomName);
|
|
RoomEncrypter.CreateShortName(roomName);
|
|
@@ -60,7 +61,7 @@ namespace MafiaTelegramBot.Controllers
|
|
if (!await player.RemoveGame()) return ResultCode.UserNotInGame;
|
|
if (!await player.RemoveGame()) return ResultCode.UserNotInGame;
|
|
OpenedGames[roomKey].Players.Remove(player.Id);
|
|
OpenedGames[roomKey].Players.Remove(player.Id);
|
|
await OpenedGames[roomKey].NotifyPlayersAbout(player.Id, $"{player.NickName} {strings.connected_to_game}");
|
|
await OpenedGames[roomKey].NotifyPlayersAbout(player.Id, $"{player.NickName} {strings.connected_to_game}");
|
|
- if (OpenedGames[roomKey].Players.Count != 0) return ResultCode.CodeOk;
|
|
|
|
|
|
+ if (OpenedGames[roomKey].Players.Count >= 0) return ResultCode.CodeOk;
|
|
RoomEncrypter.RemoveShortName(OpenedGames[roomKey].RoomName);
|
|
RoomEncrypter.RemoveShortName(OpenedGames[roomKey].RoomName);
|
|
if(OpenedGames[roomKey].IsPrivate) RoomEncrypter.Remove(OpenedGames[roomKey].RoomName);
|
|
if(OpenedGames[roomKey].IsPrivate) RoomEncrypter.Remove(OpenedGames[roomKey].RoomName);
|
|
OpenedGames.Remove(roomKey);
|
|
OpenedGames.Remove(roomKey);
|
|
@@ -73,14 +74,16 @@ namespace MafiaTelegramBot.Controllers
|
|
await Task.Run(async () =>
|
|
await Task.Run(async () =>
|
|
{
|
|
{
|
|
if (OpenedGames.ContainsKey(roomKey))
|
|
if (OpenedGames.ContainsKey(roomKey))
|
|
|
|
+ {
|
|
foreach (var player in OpenedGames[roomKey].Players.Values)
|
|
foreach (var player in OpenedGames[roomKey].Players.Values)
|
|
{
|
|
{
|
|
await player.RemoveGame();
|
|
await player.RemoveGame();
|
|
- RoomEncrypter.RemoveShortName(OpenedGames[roomKey].RoomName);
|
|
|
|
- if(OpenedGames[roomKey].IsPrivate) RoomEncrypter.Remove(OpenedGames[roomKey].RoomName);
|
|
|
|
- OpenedGames.Remove(roomKey);
|
|
|
|
await Bot.SendWithMarkdown2(player.ChatId, strings.room_dissolved, Keyboards.MainMenu);
|
|
await Bot.SendWithMarkdown2(player.ChatId, strings.room_dissolved, Keyboards.MainMenu);
|
|
}
|
|
}
|
|
|
|
+ RoomEncrypter.RemoveShortName(OpenedGames[roomKey].RoomName);
|
|
|
|
+ if(OpenedGames[roomKey].IsPrivate) RoomEncrypter.Remove(OpenedGames[roomKey].RoomName);
|
|
|
|
+ OpenedGames.Remove(roomKey);
|
|
|
|
+ }
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|