void OnListTableCommandReceived(AbstractCommand command, IBluffinClient client) { var c = (ListTableCommand)command; var r = c.ResponseSuccess(); r.Tables = Lobby.ListTables(c.LobbyTypes); client.SendCommand(r); }
void OnIdentifyCommandReceived(AbstractCommand command, IBluffinClient client) { var c = (IdentifyCommand)command; var ok = !Lobby.IsNameUsed(c.Name) && !DataManager.Persistance.IsDisplayNameExist(c.Name); Logger.LogInformation("> Client indentifying QuickMode server as : {0}. Success={1}", c.Name, ok); if (ok) { client.PlayerName = c.Name; Logger.LogClientIdentified(client); client.SendCommand(c.ResponseSuccess()); Lobby.AddName(c.Name); } else { client.SendCommand(c.ResponseFailure(BluffinMessageId.NameAlreadyUsed,"The name is already used on the server!")); } }
public void Send(AbstractCommand c) { LobbyCommands.Add(new CommandEntry(){Client = m_Client,Command = c}); }
public void SendCommand(AbstractCommand command) { m_Server.ServerSendedCommands.Add(new CommandEntry() { Client = this, Command = command }); }
private void OnCheckCompatibilityCommandReceived(AbstractCommand command, IBluffinClient client) { const string minimumClientVersion = "3.0"; const string currentServerVersion = "3.0.0"; var c = (CheckCompatibilityCommand)command; Version vClient; bool ok = Version.TryParse(c.ImplementedProtocolVersion,out vClient); if (!ok || vClient < new Version(minimumClientVersion)) { var r = c.ResponseFailure(BluffinMessageId.NotSupported, "The client must implement at least protocol version " + minimumClientVersion); r.ImplementedProtocolVersion = currentServerVersion; client.SendCommand(r); } else { var r = c.ResponseSuccess(); r.ImplementedProtocolVersion = currentServerVersion; r.SupportedLobbyTypes = new[] {LobbyTypeEnum.QuickMode, LobbyTypeEnum.RegisteredMode}; r.AvailableGames = new[] { new GameInfo { AvailableBlinds = new [] {BlindTypeEnum.Blinds}, AvailableLimits = new []{LimitTypeEnum.NoLimit}, AvailableVariants = RuleFactory.Variants.Values.Where(x => x.GameType == GameTypeEnum.CommunityCardsPoker).Select(x => x.Variant).ToArray(), GameType = GameTypeEnum.CommunityCardsPoker, MaxPlayers = 10, MinPlayers = 2 }, new GameInfo { AvailableBlinds = new [] {BlindTypeEnum.Antes}, AvailableLimits = new []{LimitTypeEnum.NoLimit}, AvailableVariants = RuleFactory.Variants.Values.Where(x => x.GameType == GameTypeEnum.StudPoker).Select(x => x.Variant).ToArray(), GameType = GameTypeEnum.StudPoker, MaxPlayers = 10, MinPlayers = 2 }, new GameInfo { AvailableBlinds = new [] {BlindTypeEnum.Antes}, AvailableLimits = new []{LimitTypeEnum.NoLimit}, AvailableVariants = RuleFactory.Variants.Values.Where(x => x.GameType == GameTypeEnum.DrawPoker).Select(x => x.Variant).ToArray(), GameType = GameTypeEnum.DrawPoker, MaxPlayers = 10, MinPlayers = 2 } }; client.SendCommand(r); } }
void OnDisconnectCommandReceived(AbstractCommand command, IBluffinClient client) { Logger.LogInformation("> Client disconnected: {0}", client.PlayerName); Lobby.RemoveName(client.PlayerName); }
private void OnLeaveTableCommandReceived(AbstractCommand command, IBluffinClient client) { var c = (LeaveTableCommand)command; var game = (PokerGame)Lobby.GetGame(c.TableId); game.LeaveGame(game.Table.Players.Single(x => x.Name == client.PlayerName)); }
private void OnCreateTableCommandReceived(AbstractCommand command, IBluffinClient client) { var c = (CreateTableCommand)command; var res = Lobby.CreateTable(c); var r = c.ResponseSuccess(); Logger.LogInformation("> Client '{0}' {3}: {2}:{1}", client.PlayerName, c.Params.TableName, res, c.Params.Lobby.OptionType); r.IdTable = res; client.SendCommand(r); }
private void OnJoinTableCommandReceived(AbstractCommand command, IBluffinClient client) { var c = (JoinTableCommand)command; var game = (PokerGame)Lobby.GetGame(c.TableId); var table = game.Table; if (!game.IsRunning) { client.SendCommand(c.ResponseFailure(BluffinMessageId.WrongTableState, "You can't join a game that isn't running !")); return; } if (table.ContainsPlayer(client.PlayerName)) { client.SendCommand(c.ResponseFailure(BluffinMessageId.NameAlreadyUsed, "Someone with your name is already in this game !")); return; } var rp = new RemotePlayer(game, new PlayerInfo(client.PlayerName, 0), client, Server, c.TableId); if (!rp.JoinGame()) { client.SendCommand(c.ResponseFailure(BluffinMessageId.SpecificServerMessage, "Unknown failure")); return; } client.AddPlayer(rp); Logger.LogInformation("> Client '{0}' joined {2}:{1}", client.PlayerName, table.Params.TableName, c.TableId, rp.Player.NoSeat); var r = c.ResponseSuccess(); r.GameHasStarted = rp.Game.IsPlaying; r.BoardCards = rp.Game.Table.Cards.Select(x => x.ToString()).ToArray(); r.Seats = rp.AllSeats().ToList(); r.Params = rp.Game.Table.Params; r.TotalPotAmount = rp.Game.Table.TotalPotAmnt; r.PotsAmount = rp.Game.Table.PotAmountsPadded.ToList(); client.SendCommand(r); }
private void OnCheckDisplayExistCommandReceived(AbstractCommand command, IBluffinClient client) { var c = (CheckDisplayExistCommand)command; var r = c.ResponseSuccess(); r.Exist = Lobby.IsNameUsed(c.DisplayName) || DataManager.Persistance.IsDisplayNameExist(c.DisplayName); client.SendCommand(r); }
private void OnCheckUserExistCommandReceived(AbstractCommand command, IBluffinClient client) { var c = (CheckUserExistCommand)command; var r = c.ResponseSuccess(); r.Exist = DataManager.Persistance.IsUsernameExist(c.Username); client.SendCommand(r); }
private void OnCreateUserCommandReceived(AbstractCommand command, IBluffinClient client) { var c = (CreateUserCommand)command; var ok = false; if (!DataManager.Persistance.IsUsernameExist(c.Username)) { if (!DataManager.Persistance.IsDisplayNameExist(c.DisplayName)) { DataManager.Persistance.Register(new UserInfo(c.Username, c.Password, c.Email, c.DisplayName, 7500)); ok = true; client.SendCommand(c.ResponseSuccess()); } else client.SendCommand(c.ResponseFailure(BluffinMessageId.NameAlreadyUsed, "The display name is already used on the server!")); } else client.SendCommand(c.ResponseFailure(BluffinMessageId.UsernameAlreadyUsed, "The username is already used on the server!")); Logger.LogInformation("> Client register to RegisteredMode Server as : {0}. Success={1}", c.Username, ok); }
private void OnAuthenticateUserCommandReceived(AbstractCommand command, IBluffinClient client) { var c = (AuthenticateUserCommand)command; var u = DataManager.Persistance.Get(c.Username); var ok = false; if (u != null) { client.PlayerName = u.DisplayName; if (DataManager.Persistance.Authenticate(c.Username, c.Password) != null) { if (!Lobby.IsNameUsed(client.PlayerName)) { Lobby.AddName(client.PlayerName); ok = true; client.SendCommand(c.ResponseSuccess()); } else client.SendCommand(c.ResponseFailure(BluffinMessageId.NameAlreadyUsed, "The name is already used on the server!")); } else client.SendCommand(c.ResponseFailure(BluffinMessageId.InvalidPassword, "Wrong Password!")); } else client.SendCommand(c.ResponseFailure(BluffinMessageId.UsernameNotFound, "Your username was not in the database!")); Logger.LogInformation("> Client authenticate to RegisteredMode Server as : {0}. Success={1}", c.Username, ok); }
private void OnGetUserCommandReceived(AbstractCommand command, IBluffinClient client) { var c = (GetUserCommand)command; var u = DataManager.Persistance.Get(client.PlayerName); if(u == null) client.SendCommand(c.ResponseFailure(BluffinMessageId.UsernameNotFound, "Your username was not in the database. That's weird !")); else { var r = c.ResponseSuccess(); r.Email = u.Email; r.DisplayName = u.DisplayName; r.Money = u.TotalMoney; client.SendCommand(r); } }