12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using System;
- using System.Threading.Tasks;
- using MafiaTelegramBot.Controllers;
- using MafiaTelegramBot.Resources;
- namespace MafiaTelegramBot.Game.GameRooms
- {
- public abstract partial class GameRoom
- {
- private int _minutes;
- public void SetTimer()
- {
- _minutes = 0;
- _waitingPlayers = new System.Timers.Timer(60000);
- _waitingPlayers.Elapsed += async (_ , _) => { await Remove(); };
- _waitingPlayers.Enabled = true;
- }
-
- public void StopTimer()
- {
- _waitingPlayers.Stop();
- }
- public void StartTimer()
- {
- _minutes = 0;
- _waitingPlayers.Start();
- }
-
- private async Task Remove()
- {
- try
- {
- switch (_minutes)
- {
- case Constants.MINUTES_UNTIL_DISSOLVE - 2:
- if (Owner != null)
- await MessageController.SendText(Owner.Info, strings.dissolve_warning);
- else
- await PlayersMessageChannel.Send(strings.dissolve_warning);
- _minutes++;
- break;
- case Constants.MINUTES_UNTIL_DISSOLVE:
- await RoomController.DissolveRoom(RoomEncrypter.GetCode(RoomName));
- //GC.Collect();
- break;
- default:
- _minutes++;
- break;
- }
- }
- catch (Exception)
- {
- }
-
- }
-
- public void DeleteTimer()
- {
- _waitingPlayers.Stop();
- _waitingPlayers.Dispose();
- }
- }
- }
|