Fix warnings
This commit is contained in:
parent
adfb11d087
commit
b0ef768853
@ -1,7 +1,6 @@
|
||||
<Application x:Class="MafiaGame.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:MafiaGame"
|
||||
Startup="App_OnStartup"
|
||||
Exit="App_OnExit"
|
||||
StartupUri="MainWindow.xaml">
|
||||
|
@ -73,19 +73,19 @@
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<TextBox Grid.Column="1" Grid.Row="3" x:Name="IpBox" FontSize="30"></TextBox>
|
||||
<Button Grid.Column="1" Grid.Row="5" Click="ConnectToServer_OnClick" x:Name="IpInputGUIConnect">
|
||||
<Button Grid.Column="1" Grid.Row="5" Click="ConnectToServer_OnClick" x:Name="IpInputGuiConnect">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Подключится" FontSize="25"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Grid.Column="1" Grid.Row="7" Click="Back_OnClick" x:Name="IpInputGUIBack">
|
||||
<Button Grid.Column="1" Grid.Row="7" Click="Back_OnClick" x:Name="IpInputGuiBack">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Назад" FontSize="25"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
<Grid x:Name="SettingsGUI" Visibility="Hidden">
|
||||
<Grid x:Name="SettingsGui" Visibility="Hidden">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
|
@ -1,18 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using DiscordRPC;
|
||||
using MafiaCommon;
|
||||
|
||||
@ -21,7 +12,7 @@ namespace MafiaGame
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// </summary>
|
||||
public partial class MainWindow : Window
|
||||
public partial class MainWindow
|
||||
{
|
||||
private static MainWindow _mainWindow;
|
||||
|
||||
@ -42,7 +33,7 @@ namespace MafiaGame
|
||||
public void HideAll()
|
||||
{
|
||||
MainMenu.Visibility = Visibility.Hidden;
|
||||
SettingsGUI.Visibility = Visibility.Hidden;
|
||||
SettingsGui.Visibility = Visibility.Hidden;
|
||||
IpInput.Visibility = Visibility.Hidden;
|
||||
GameQueue.Visibility = Visibility.Hidden;
|
||||
DisconnectScreen.Visibility = Visibility.Hidden;
|
||||
@ -54,13 +45,13 @@ namespace MafiaGame
|
||||
|
||||
private void Exit_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
App.Current.Shutdown(0);
|
||||
Application.Current.Shutdown(0);
|
||||
}
|
||||
|
||||
private void Play_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
IpInputGUIBack.IsEnabled = true;
|
||||
IpInputGUIConnect.IsEnabled = true;
|
||||
IpInputGuiBack.IsEnabled = true;
|
||||
IpInputGuiConnect.IsEnabled = true;
|
||||
IpBox.IsEnabled = true;
|
||||
MainMenu.Visibility = Visibility.Hidden;
|
||||
IpInput.Visibility = Visibility.Visible;
|
||||
@ -77,8 +68,8 @@ namespace MafiaGame
|
||||
{
|
||||
State = "Присоединяется к серверу"
|
||||
});
|
||||
IpInputGUIBack.IsEnabled = false;
|
||||
IpInputGUIConnect.IsEnabled = false;
|
||||
IpInputGuiBack.IsEnabled = false;
|
||||
IpInputGuiConnect.IsEnabled = false;
|
||||
IpBox.IsEnabled = false;
|
||||
Thread thread = new Thread(() =>
|
||||
{
|
||||
@ -101,7 +92,7 @@ namespace MafiaGame
|
||||
private void SettingsBack_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Settings.Save();
|
||||
SettingsGUI.Visibility = Visibility.Hidden;
|
||||
SettingsGui.Visibility = Visibility.Hidden;
|
||||
MainMenu.Visibility = Visibility.Visible;
|
||||
App.Instance.GetRpcClient().SetPresence(new RichPresence()
|
||||
{
|
||||
@ -112,7 +103,7 @@ namespace MafiaGame
|
||||
private void Settings_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
MainMenu.Visibility = Visibility.Hidden;
|
||||
SettingsGUI.Visibility = Visibility.Visible;
|
||||
SettingsGui.Visibility = Visibility.Visible;
|
||||
NickBox.Text = Settings.Config().Nick;
|
||||
}
|
||||
|
||||
@ -125,7 +116,7 @@ namespace MafiaGame
|
||||
{
|
||||
MainMenu.Visibility = Visibility.Hidden;
|
||||
IpInput.Visibility = Visibility.Hidden;
|
||||
SettingsGUI.Visibility = Visibility.Hidden;
|
||||
SettingsGui.Visibility = Visibility.Hidden;
|
||||
DisconnectScreen.Visibility = Visibility.Hidden;
|
||||
GameQueue.Visibility = Visibility.Visible;
|
||||
}
|
||||
@ -135,7 +126,7 @@ namespace MafiaGame
|
||||
ReasonText.Text = reason;
|
||||
MainMenu.Visibility = Visibility.Hidden;
|
||||
IpInput.Visibility = Visibility.Hidden;
|
||||
SettingsGUI.Visibility = Visibility.Hidden;
|
||||
SettingsGui.Visibility = Visibility.Hidden;
|
||||
GameQueue.Visibility = Visibility.Hidden;
|
||||
DisconnectScreen.Visibility = Visibility.Visible;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using DiscordRPC;
|
||||
using MafiaCommon.Packets;
|
||||
@ -16,8 +17,8 @@ namespace MafiaGame
|
||||
private int _port = 25743;
|
||||
private Socket _socket;
|
||||
private Thread _thread;
|
||||
private bool _breakFlag = false;
|
||||
private bool connected;
|
||||
private bool _breakFlag;
|
||||
private bool _connected;
|
||||
|
||||
public ServerConnection(String ip)
|
||||
{
|
||||
@ -31,7 +32,7 @@ namespace MafiaGame
|
||||
_host = ip;
|
||||
}
|
||||
|
||||
_thread = new Thread(serverListener);
|
||||
_thread = new Thread(ServerListener);
|
||||
|
||||
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
try
|
||||
@ -40,17 +41,17 @@ namespace MafiaGame
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowDisconnectScreen(e.Message);
|
||||
}));
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
_socket.Send(PacketConverter.ToBytes(new ConnectPacket(Settings.Config().Nick)));
|
||||
_thread.IsBackground = true;
|
||||
_thread.Start();
|
||||
connected = true;
|
||||
_connected = true;
|
||||
}
|
||||
|
||||
public void SendMessage(ChatType chatType, string text)
|
||||
@ -60,7 +61,7 @@ namespace MafiaGame
|
||||
|
||||
public void Disconnect()
|
||||
{
|
||||
connected = false;
|
||||
_connected = false;
|
||||
_socket.Send(PacketConverter.ToBytes(new DisconnectPlayerPacket()));
|
||||
_thread.Interrupt();
|
||||
_socket.Close();
|
||||
@ -71,7 +72,7 @@ namespace MafiaGame
|
||||
_socket.Send(PacketConverter.ToBytes(new VotePacket(id)));
|
||||
}
|
||||
|
||||
private void serverListener()
|
||||
private void ServerListener()
|
||||
{
|
||||
while (!_breakFlag)
|
||||
{
|
||||
@ -89,14 +90,14 @@ namespace MafiaGame
|
||||
catch (Exception e)
|
||||
{
|
||||
_socket.Close();
|
||||
if (connected)
|
||||
if (_connected)
|
||||
{
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.HideAll();
|
||||
MainWindow.Instance.ShowDisconnectScreen(e.Message);
|
||||
}));
|
||||
connected = false;
|
||||
});
|
||||
_connected = false;
|
||||
}
|
||||
_breakFlag = true;
|
||||
}
|
||||
@ -119,7 +120,7 @@ namespace MafiaGame
|
||||
switch (packet.PacketType)
|
||||
{
|
||||
case PacketType.Welcome:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.QueueOnline.Text = ((WelcomePacket) packet).Players + "/" +
|
||||
((WelcomePacket) packet).MaxPlayers;
|
||||
@ -139,21 +140,21 @@ namespace MafiaGame
|
||||
Timestamps = Timestamps.Now,
|
||||
Details = "Ожидание старта"
|
||||
});
|
||||
}));
|
||||
});
|
||||
break;
|
||||
case PacketType.Disconnect:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowDisconnectScreen(((DisconnectPacket) packet).Reason);
|
||||
}));
|
||||
});
|
||||
_breakFlag = true;
|
||||
break;
|
||||
case PacketType.PlayerConnected:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.QueueOnline.Text = ((PlayerConnectedPacket) packet).Players + "/" +
|
||||
((PlayerConnectedPacket) packet).MaxPlayers;
|
||||
}));
|
||||
});
|
||||
try
|
||||
{
|
||||
App.Instance.GetRpcClient().UpdatePartySize(((PlayerConnectedPacket) packet).Players);
|
||||
@ -165,11 +166,11 @@ namespace MafiaGame
|
||||
|
||||
break;
|
||||
case PacketType.PlayerDisconnected:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.QueueOnline.Text = ((PlayerDisconnectedPacket) packet).Players + "/" +
|
||||
((PlayerDisconnectedPacket) packet).MaxPlayers;
|
||||
}));
|
||||
});
|
||||
try
|
||||
{
|
||||
App.Instance.GetRpcClient().UpdatePartySize(((PlayerDisconnectedPacket) packet).Players);
|
||||
@ -181,15 +182,15 @@ namespace MafiaGame
|
||||
|
||||
break;
|
||||
case PacketType.ServerShutdown:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowDisconnectScreen("Сервер выключен: " +
|
||||
((ServerShutdownPacket) packet).Reason);
|
||||
}));
|
||||
});
|
||||
_breakFlag = true;
|
||||
break;
|
||||
case PacketType.MessageReceivePacket:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
ListBoxItem message = new ListBoxItem();
|
||||
if (((MessageReceivePacket) packet).IsSystem)
|
||||
@ -217,21 +218,21 @@ namespace MafiaGame
|
||||
MainWindow.Instance.GameDayChat.ScrollIntoView(message);
|
||||
break;
|
||||
}
|
||||
}));
|
||||
});
|
||||
break;
|
||||
case PacketType.GameStartPacket:
|
||||
List<Player> players = ((GameStartPacket) packet).Players;
|
||||
switch (((GameStartPacket) packet).Role)
|
||||
{
|
||||
case Role.Citizen:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.HideAll();
|
||||
MainWindow.Instance.ShowVotingPassive("Ты Мирный Житель");
|
||||
}));
|
||||
});
|
||||
break;
|
||||
case Role.Don:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.HideAll();
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Clear();
|
||||
@ -242,10 +243,10 @@ namespace MafiaGame
|
||||
item.Content = player.Id.ToString() + ") " + player.Name;
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Add(item);
|
||||
}
|
||||
}));
|
||||
});
|
||||
break;
|
||||
case Role.Mafia:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.HideAll();
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Clear();
|
||||
@ -256,36 +257,36 @@ namespace MafiaGame
|
||||
item.Content = player.Id.ToString() + ") " + player.Name;
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Add(item);
|
||||
}
|
||||
}));
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
App.Instance.GetRpcClient().UpdateDetails("Ночь");
|
||||
break;
|
||||
case PacketType.EndGame:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowGameEnd(((EndGamePacket)packet).IsWon,((EndGamePacket)packet).PlayerRoles);
|
||||
}));
|
||||
});
|
||||
App.Instance.GetRpcClient().UpdateDetails("Ожидание старта");
|
||||
break;
|
||||
case PacketType.GameStateChanged:
|
||||
App.Current.Dispatcher.Invoke((Action) (() => { MainWindow.Instance.HideAll(); }));
|
||||
Application.Current.Dispatcher.Invoke(() => { MainWindow.Instance.HideAll(); });
|
||||
players = ((GameStageChangedPacket) packet).Players;
|
||||
switch (((GameStageChangedPacket) packet).GameState)
|
||||
{
|
||||
case GameState.Day:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowDay(false, ((GameStageChangedPacket) packet).Role,players);
|
||||
}));
|
||||
});
|
||||
App.Instance.GetRpcClient().UpdateDetails("День");
|
||||
break;
|
||||
case GameState.VotingDay:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowDay(true, ((GameStageChangedPacket) packet).Role,players);
|
||||
}));
|
||||
});
|
||||
App.Instance.GetRpcClient().UpdateDetails("Голосование!");
|
||||
break;
|
||||
case GameState.VotingNight:
|
||||
@ -293,17 +294,17 @@ namespace MafiaGame
|
||||
{
|
||||
case Role.Citizen:
|
||||
case Role.Died:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
String rol;
|
||||
if (((GameStageChangedPacket)packet).Role == Role.Citizen) rol = "Мирный житель";
|
||||
else rol = "Мёртв";
|
||||
MainWindow.Instance.ShowVotingPassive("Ты " +rol+ "!");
|
||||
}));
|
||||
MainWindow.Instance.ShowVotingPassive("Ты " +rol+ "!");
|
||||
});
|
||||
break;
|
||||
case Role.Mafia:
|
||||
case Role.Don:
|
||||
App.Current.Dispatcher.Invoke((Action) (() =>
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
String rol;
|
||||
if (((GameStageChangedPacket)packet).Role == Role.Mafia) rol = "Мафия";
|
||||
@ -316,7 +317,7 @@ namespace MafiaGame
|
||||
item.Content = player.Id.ToString() + ") " + player.Name;
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Add(item);
|
||||
}
|
||||
}));
|
||||
});
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace MafiaGame
|
||||
{
|
||||
@ -20,7 +18,7 @@ namespace MafiaGame
|
||||
{
|
||||
_config = JsonConvert.DeserializeObject<MainConfig>(File.ReadAllText("config.json"));
|
||||
}
|
||||
catch (FileNotFoundException e)
|
||||
catch (FileNotFoundException)
|
||||
{
|
||||
_config = new MainConfig();
|
||||
File.Create("config.json").Close();
|
||||
|
@ -23,21 +23,21 @@ namespace MafiaServer
|
||||
{
|
||||
if (_players.Count >= Settings.Config().MaxPlayers)
|
||||
{
|
||||
player.sendPacket(new DisconnectPacket("Game Full!"));
|
||||
player.disconnect();
|
||||
player.SendPacket(new DisconnectPacket("Game Full!"));
|
||||
player.Disconnect();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_isStarted)
|
||||
{
|
||||
player.sendPacket(new DisconnectPacket("Game already started!"));
|
||||
player.disconnect();
|
||||
player.SendPacket(new DisconnectPacket("Game already started!"));
|
||||
player.Disconnect();
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var othPlayer in _players)
|
||||
{
|
||||
othPlayer.sendPacket(new PlayerConnectedPacket(player.PlayerName, _players.Count + 1,
|
||||
othPlayer.SendPacket(new PlayerConnectedPacket(player.PlayerName, _players.Count + 1,
|
||||
Settings.Config().MaxPlayers));
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ namespace MafiaServer
|
||||
player.OnPlayerSendMessageEvent += PlayerOnOnPlayerSendMessageEvent;
|
||||
player.OnDisconnectEvent += PlayerOnOnDisconnectEvent;
|
||||
player.OnPlayerVoteEvent += PlayerOnOnPlayerVoteEvent;
|
||||
player.sendPacket(new WelcomePacket(Settings.Config().ServerName, _players.Count,
|
||||
player.SendPacket(new WelcomePacket(Settings.Config().ServerName, _players.Count,
|
||||
Settings.Config().MaxPlayers));
|
||||
}
|
||||
}
|
||||
@ -70,7 +70,7 @@ namespace MafiaServer
|
||||
{
|
||||
foreach (var p in _players)
|
||||
{
|
||||
p.sendPacket(new EndGamePacket(true, _playerRolesAtStart));
|
||||
p.SendPacket(new EndGamePacket(true, _playerRolesAtStart));
|
||||
}
|
||||
|
||||
_isStarted = false;
|
||||
@ -82,7 +82,7 @@ namespace MafiaServer
|
||||
_mafia[0].Role = Role.Don;
|
||||
if (_gameState == GameState.VotingNight)
|
||||
{
|
||||
_mafia[0].sendPacket(new MessageReceivePacket(ChatType.Active, true, "System",
|
||||
_mafia[0].SendPacket(new MessageReceivePacket(ChatType.Active, true, "System",
|
||||
"Дон покинул игру, ты новый дон!"));
|
||||
}
|
||||
|
||||
@ -100,7 +100,7 @@ namespace MafiaServer
|
||||
if (mafias < aliveLefts) return true;
|
||||
foreach (var p in _players)
|
||||
{
|
||||
p.sendPacket(new EndGamePacket(p.Role == Role.Mafia || p.Role == Role.Don, _playerRolesAtStart));
|
||||
p.SendPacket(new EndGamePacket(p.Role == Role.Mafia || p.Role == Role.Don, _playerRolesAtStart));
|
||||
}
|
||||
|
||||
_isStarted = false;
|
||||
@ -125,7 +125,7 @@ namespace MafiaServer
|
||||
foreach (var player in _players.Where(player =>
|
||||
player.Role == Role.Mafia || player.Role == Role.Don))
|
||||
{
|
||||
player.sendPacket(new MessageReceivePacket(ChatType.Active, true, "System",
|
||||
player.SendPacket(new MessageReceivePacket(ChatType.Active, true, "System",
|
||||
sender.PlayerName + " проголосовал за " + voteFor.PlayerName));
|
||||
}
|
||||
|
||||
@ -136,7 +136,7 @@ namespace MafiaServer
|
||||
foreach (var player in _players.Where(player =>
|
||||
player.Role == Role.Mafia || player.Role == Role.Don))
|
||||
{
|
||||
player.sendPacket(new MessageReceivePacket(ChatType.Active, true, "System",
|
||||
player.SendPacket(new MessageReceivePacket(ChatType.Active, true, "System",
|
||||
sender.PlayerName + " проголосовал за " + voteFor.PlayerName));
|
||||
}
|
||||
|
||||
@ -149,7 +149,7 @@ namespace MafiaServer
|
||||
_votesRemain.Remove(sender);
|
||||
foreach (var player in _players)
|
||||
{
|
||||
player.sendPacket(new MessageReceivePacket(ChatType.Day, true, "System",
|
||||
player.SendPacket(new MessageReceivePacket(ChatType.Day, true, "System",
|
||||
sender.PlayerName + " проголосовал за " + voteFor.PlayerName));
|
||||
}
|
||||
|
||||
@ -176,9 +176,9 @@ namespace MafiaServer
|
||||
_gameState = GameState.Day;
|
||||
foreach (var player in _players)
|
||||
{
|
||||
player.sendPacket(new GameStageChangedPacket(GameState.Day, player.Role,
|
||||
player.SendPacket(new GameStageChangedPacket(GameState.Day, player.Role,
|
||||
GetPlayersRoles()));
|
||||
player.sendPacket(new MessageReceivePacket(ChatType.Day, true, "System",
|
||||
player.SendPacket(new MessageReceivePacket(ChatType.Day, true, "System",
|
||||
killed.PlayerName + " был убит!"));
|
||||
}
|
||||
|
||||
@ -202,9 +202,9 @@ namespace MafiaServer
|
||||
FillNightVotes();
|
||||
foreach (var player in _players)
|
||||
{
|
||||
player.sendPacket(new GameStageChangedPacket(GameState.VotingNight, player.Role,
|
||||
player.SendPacket(new GameStageChangedPacket(GameState.VotingNight, player.Role,
|
||||
GetPlayersRoles()));
|
||||
player.sendPacket(new MessageReceivePacket(ChatType.Day, true, "System",
|
||||
player.SendPacket(new MessageReceivePacket(ChatType.Day, true, "System",
|
||||
killed.PlayerName + " был повешен!"));
|
||||
}
|
||||
}
|
||||
@ -225,8 +225,8 @@ namespace MafiaServer
|
||||
|
||||
foreach (var player in _players)
|
||||
{
|
||||
player.sendPacket(new GameStageChangedPacket(GameState.VotingDay, player.Role, GetPlayersRoles()));
|
||||
player.sendPacket(new MessageReceivePacket(ChatType.Day, true, "System", "Начинаем голосование!"));
|
||||
player.SendPacket(new GameStageChangedPacket(GameState.VotingDay, player.Role, GetPlayersRoles()));
|
||||
player.SendPacket(new MessageReceivePacket(ChatType.Day, true, "System", "Начинаем голосование!"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -249,7 +249,7 @@ namespace MafiaServer
|
||||
_players.Remove(sender);
|
||||
foreach (var player in _players)
|
||||
{
|
||||
player.sendPacket(new PlayerDisconnectedPacket(true, sender.Id, _players.Count,
|
||||
player.SendPacket(new PlayerDisconnectedPacket(true, sender.Id, _players.Count,
|
||||
Settings.Config().MaxPlayers));
|
||||
}
|
||||
|
||||
@ -321,17 +321,17 @@ namespace MafiaServer
|
||||
|
||||
var players = GetPlayersRoles();
|
||||
|
||||
don.sendPacket(new GameStartPacket(Role.Don, players));
|
||||
don.SendPacket(new GameStartPacket(Role.Don, players));
|
||||
_votesRemain.Add(don);
|
||||
|
||||
foreach (var player in empty)
|
||||
{
|
||||
player.sendPacket(new GameStartPacket(Role.Citizen, players));
|
||||
player.SendPacket(new GameStartPacket(Role.Citizen, players));
|
||||
}
|
||||
|
||||
foreach (var player in _mafia)
|
||||
{
|
||||
player.sendPacket(new GameStartPacket(Role.Mafia, players));
|
||||
player.SendPacket(new GameStartPacket(Role.Mafia, players));
|
||||
_votesRemain.Add(player);
|
||||
}
|
||||
|
||||
@ -351,7 +351,7 @@ namespace MafiaServer
|
||||
_players.Remove(sender);
|
||||
foreach (var player in _players)
|
||||
{
|
||||
player.sendPacket(new PlayerDisconnectedPacket(true, sender.Id, _players.Count,
|
||||
player.SendPacket(new PlayerDisconnectedPacket(true, sender.Id, _players.Count,
|
||||
Settings.Config().MaxPlayers));
|
||||
}
|
||||
|
||||
@ -371,7 +371,7 @@ namespace MafiaServer
|
||||
{
|
||||
foreach (var player in _players)
|
||||
{
|
||||
player.sendPacket(new MessageReceivePacket(ChatType.Queue, false, sender.PlayerName, text));
|
||||
player.SendPacket(new MessageReceivePacket(ChatType.Queue, false, sender.PlayerName, text));
|
||||
}
|
||||
}
|
||||
|
||||
@ -386,7 +386,7 @@ namespace MafiaServer
|
||||
foreach (var player in _players.Where(player =>
|
||||
player.Role == Role.Mafia || player.Role == Role.Don))
|
||||
{
|
||||
player.sendPacket(new MessageReceivePacket(ChatType.Active, false,
|
||||
player.SendPacket(new MessageReceivePacket(ChatType.Active, false,
|
||||
sender.PlayerName,
|
||||
text));
|
||||
}
|
||||
@ -401,14 +401,14 @@ namespace MafiaServer
|
||||
{
|
||||
if (sender.Role == Role.Died)
|
||||
{
|
||||
sender.sendPacket(new MessageReceivePacket(ChatType.Day, true, "system",
|
||||
sender.SendPacket(new MessageReceivePacket(ChatType.Day, true, "system",
|
||||
"Мёртвое говорить не может"));
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var player in _players)
|
||||
{
|
||||
player.sendPacket(
|
||||
player.SendPacket(
|
||||
new MessageReceivePacket(ChatType.Day, false, sender.PlayerName, text));
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ namespace MafiaServer
|
||||
{
|
||||
public class PlayerSocketWorker
|
||||
{
|
||||
private Socket _socket;
|
||||
private readonly Socket _socket;
|
||||
public readonly string PlayerName;
|
||||
public event OnDisconnectByErrorEvent OnDisconnectByErrorEvent;
|
||||
public event OnPlayerSendMessageEvent OnPlayerSendMessageEvent;
|
||||
@ -43,24 +43,24 @@ namespace MafiaServer
|
||||
}
|
||||
}
|
||||
|
||||
public void sendPacket(Packet packet)
|
||||
public void SendPacket(Packet packet)
|
||||
{
|
||||
try
|
||||
{
|
||||
_socket.Send(PacketConverter.ToBytes(packet));
|
||||
}
|
||||
catch (Exception e)
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
|
||||
public void disconnect()
|
||||
public void Disconnect()
|
||||
{
|
||||
_socket.Close();
|
||||
}
|
||||
|
||||
public void run()
|
||||
public void Run()
|
||||
{
|
||||
while (_socket.Connected)
|
||||
{
|
||||
@ -83,7 +83,7 @@ namespace MafiaServer
|
||||
WorkPacket(packet);
|
||||
}
|
||||
}
|
||||
catch (SocketException e)
|
||||
catch (SocketException)
|
||||
{
|
||||
OnDisconnectByErrorEvent.Invoke(this);
|
||||
}
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
namespace MafiaServer
|
||||
{
|
||||
class MafiaServer
|
||||
static class MafiaServer
|
||||
{
|
||||
private static Server server;
|
||||
private static Boolean breakFlag = false;
|
||||
private static Server _server;
|
||||
private static Boolean _breakFlag;
|
||||
public static Game Game;
|
||||
|
||||
static void Main(string[] args)
|
||||
@ -13,15 +13,15 @@ namespace MafiaServer
|
||||
Settings.Initialize();
|
||||
Settings.Save();
|
||||
Game = new Game();
|
||||
server = new Server();
|
||||
while (!breakFlag)
|
||||
_server = new Server();
|
||||
while (!_breakFlag)
|
||||
{
|
||||
String input = Console.ReadLine();
|
||||
switch (input.Split(" ")[0].ToLower())
|
||||
{
|
||||
case "stop":
|
||||
server.stop("Manual stop");
|
||||
breakFlag = true;
|
||||
_server.Stop("Manual stop");
|
||||
_breakFlag = true;
|
||||
break;
|
||||
case "start":
|
||||
Game.Start();
|
||||
|
@ -4,31 +4,29 @@ using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
using MafiaCommon.Packets;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace MafiaServer
|
||||
{
|
||||
public class Server
|
||||
{
|
||||
private Socket _socket;
|
||||
private Thread _acceptor;
|
||||
private List<Socket> _clientSockets = new List<Socket>();
|
||||
private List<Thread> _clientThreads = new List<Thread>();
|
||||
private readonly Socket _socket;
|
||||
private readonly Thread _acceptor;
|
||||
private readonly List<Socket> _clientSockets = new List<Socket>();
|
||||
private readonly List<Thread> _clientThreads = new List<Thread>();
|
||||
|
||||
public Server()
|
||||
{
|
||||
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
_socket.Bind(new IPEndPoint(IPAddress.Any, Settings.Config().Port));
|
||||
_socket.Listen(10);
|
||||
|
||||
_acceptor = new Thread(new ThreadStart(acceptor));
|
||||
_acceptor.IsBackground = true;
|
||||
|
||||
_acceptor = new Thread(Acceptor) {IsBackground = true};
|
||||
_acceptor.Start();
|
||||
|
||||
Console.WriteLine("Server started!");
|
||||
}
|
||||
|
||||
public void stop(String reason)
|
||||
public void Stop(String reason)
|
||||
{
|
||||
_acceptor.Interrupt();
|
||||
foreach (Thread thread in _clientThreads)
|
||||
@ -44,13 +42,13 @@ namespace MafiaServer
|
||||
}
|
||||
}
|
||||
|
||||
private void acceptor()
|
||||
private void Acceptor()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
Socket playerSocket = _socket.Accept();
|
||||
PlayerSocketWorker playerSocketWorker = new PlayerSocketWorker(playerSocket);
|
||||
Thread thread = new Thread(playerSocketWorker.run);
|
||||
Thread thread = new Thread(playerSocketWorker.Run);
|
||||
_clientSockets.Add(playerSocket);
|
||||
_clientThreads.Add(thread);
|
||||
thread.Start();
|
||||
|
@ -1,11 +1,9 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace MafiaServer
|
||||
{
|
||||
public class Settings
|
||||
public static class Settings
|
||||
{
|
||||
private static MainConfig _config;
|
||||
|
||||
@ -20,7 +18,7 @@ namespace MafiaServer
|
||||
{
|
||||
_config = JsonConvert.DeserializeObject<MainConfig>(File.ReadAllText("config.json"));
|
||||
}
|
||||
catch (FileNotFoundException e)
|
||||
catch (FileNotFoundException)
|
||||
{
|
||||
_config = new MainConfig();
|
||||
File.Create("config.json").Close();
|
||||
|
Loading…
x
Reference in New Issue
Block a user