private void OnPlayerSitInCommandReceived(AbstractBluffinCommand command, IBluffinClient client, RemotePlayer p) { UserInfo userInfo = null; var c = (PlayerSitInCommand)command; if (p.Game.Params.Lobby.OptionType == LobbyTypeEnum.QuickMode) p.Player.MoneySafeAmnt = ((LobbyOptionsQuickMode) p.Game.Params.Lobby).StartingAmount; else { int money = c.MoneyAmount; userInfo = DataManager.Persistance.Get(p.Client.PlayerName); if (userInfo == null || userInfo.TotalMoney < money) p.Player.MoneySafeAmnt = -1; else { userInfo.TotalMoney -= money; p.Player.MoneySafeAmnt = money; } } var seat = p.Game.GameTable.SitIn(p.Player, c.NoSeat); if (seat == null) { client.SendCommand(c.ResponseFailure(BluffinMessageId.NoMoreSeats, "No seats available")); if (userInfo != null) userInfo.TotalMoney += p.Player.MoneySafeAmnt; } else { var r = (seat.NoSeat != c.NoSeat) ? c.ResponseSuccess(BluffinMessageId.SeatChanged, "The asked seat wasn't available, the server gave you another one.") : c.ResponseSuccess(); r.NoSeat = seat.NoSeat; client.SendCommand(r); p.Game.AfterPlayerSat(p.Player); } }
void OnDisconnectCommandReceived(AbstractBluffinCommand command, IBluffinClient client, RemotePlayer p) { if (p.Game.Params.Lobby.OptionType == LobbyTypeEnum.RegisteredMode) DataManager.Persistance.Get(p.Client.PlayerName).TotalMoney += p.Player.MoneySafeAmnt; client.RemovePlayer(p); p.Player.State = PlayerStateEnum.Zombie; var t = p.Game.Table; LogManager.Log(LogLevel.Message, "BluffinGameWorker.OnDisconnectCommandReceived", "> Client '{0}' left table: {2}:{1}", p.Player.Name, t.Params.TableName, p.TableId); p.Game.LeaveGame(p.Player); }
void OnIdentifyCommandReceived(AbstractBluffinCommand command, IBluffinClient client) { var c = (IdentifyCommand)command; client.PlayerName = c.Name; var ok = !Lobby.IsNameUsed(c.Name) && !DataManager.Persistance.IsDisplayNameExist(c.Name); LogManager.Log(LogLevel.Message, "BluffinLobbyWorker.OnIdentifyCommandReceived", "> Client indentifying QuickMode server as : {0}. Success={1}", c.Name, ok); if (ok) { client.SendCommand(c.ResponseSuccess()); Lobby.AddName(c.Name); } else { client.SendCommand(c.ResponseFailure(BluffinMessageId.NameAlreadyUsed,"The name is already used on the server!")); } }
private void OnCommandReceived(AbstractBluffinCommand command, IBluffinClient client, RemotePlayer p) { LogManager.Log(LogLevel.MessageVeryLow, "BluffinGameWorker.OnCommandReceived", "GameWorker RECV from {0} [{1}]", client.PlayerName, command.Encode()); LogManager.Log(LogLevel.MessageVeryLow, "BluffinGameWorker.OnCommandReceived", "-------------------------------------------"); }
private void OnPlayerPlayMoneyCommandReceived(AbstractBluffinCommand command, IBluffinClient client, RemotePlayer p) { var c = (PlayerPlayMoneyCommand)command; p.Game.PlayMoney(p.Player, c.Played); }
private void OnPlayerSitOutCommandReceived(AbstractBluffinCommand command, IBluffinClient client, RemotePlayer p) { var c = (PlayerSitOutCommand)command; client.SendCommand(c.ResponseSuccess()); p.Game.SitOut(p.Player); }
public void SendCommand(AbstractBluffinCommand command) { m_Server.ServerSendedCommands.Add(new CommandEntry() { Client = this, Command = command }); }
private void OnCheckCompatibilityCommandReceived(AbstractBluffinCommand command, IBluffinClient client) { var c = (CheckCompatibilityCommand)command; Version vClient; bool ok = Version.TryParse(c.ImplementedProtocolVersion,out vClient); if (!ok || vClient < new Version("1.0")) { var r = c.ResponseFailure(BluffinMessageId.NotSupported, "The client version must be at least 1.0"); r.ImplementedProtocolVersion = "1.0"; client.SendCommand(r); } else { var r = c.ResponseSuccess(); r.ImplementedProtocolVersion = "1.0"; r.SupportedLobbyTypes = new[] {LobbyTypeEnum.QuickMode, LobbyTypeEnum.RegisteredMode}; r.Rules = RuleFactory.SupportedRules; client.SendCommand(r); } }
void OnListTableCommandReceived(AbstractBluffinCommand command, IBluffinClient client) { var c = (ListTableCommand)command; var r = c.ResponseSuccess(); r.Tables = Lobby.ListTables(c.LobbyTypes); client.SendCommand(r); }
private void OnAuthenticateUserCommandReceived(AbstractBluffinCommand 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!")); LogManager.Log(LogLevel.Message, "BluffinLobbyWorker.OnAuthenticateUserCommandReceived", "> Client authenticate to RegisteredMode Server as : {0}. Success={1}", c.Username, ok); }
private void OnLeaveTableCommandReceived(AbstractBluffinCommand command, IBluffinClient client) { var c = (LeaveTableCommand)command; var game = Lobby.GetGame(c.TableId); game.LeaveGame(game.GameTable.Players.Single(x => x.Name == client.PlayerName)); }
private void OnJoinTableCommandReceived(AbstractBluffinCommand command, IBluffinClient client) { var c = (JoinTableCommand)command; var game = Lobby.GetGame(c.TableId); var table = game.GameTable; 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, c.TableId); if (!rp.JoinGame()) { client.SendCommand(c.ResponseFailure(BluffinMessageId.SpecificServerMessage, "Unknown failure")); return; } client.AddPlayer(rp); LogManager.Log(LogLevel.Message, "BluffinLobbyWorker.OnJoinTableCommandReceived", "> Client '{0}' joined {2}:{1}", client.PlayerName, table.Params.TableName, c.TableId, rp.Player.NoSeat); client.SendCommand(c.ResponseSuccess()); rp.SendTableInfo(); }
private void OnCreateTableCommandReceived(AbstractBluffinCommand command, IBluffinClient client) { var c = (CreateTableCommand)command; var res = Lobby.CreateTable(c); var r = c.ResponseSuccess(); LogManager.Log(LogLevel.Message, "BluffinLobbyWorker.OnCreateTableCommandReceived_{3}", "> Client '{0}' {3}: {2}:{1}", client.PlayerName, c.Params.TableName, res, c.Params.Lobby.OptionType); r.IdTable = res; client.SendCommand(r); }
private void OnCheckDisplayExistCommandReceived(AbstractBluffinCommand 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(AbstractBluffinCommand command, IBluffinClient client) { var c = (CheckUserExistCommand)command; var r = c.ResponseSuccess(); r.Exist = DataManager.Persistance.IsUsernameExist(c.Username); client.SendCommand(r); }
private void OnCreateUserCommandReceived(AbstractBluffinCommand 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!")); LogManager.Log(LogLevel.Message, "BluffinLobbyWorker.OnCreateUserCommandReceived", "> Client register to RegisteredMode Server as : {0}. Success={1}", c.Username, ok); }
void OnDisconnectCommandReceived(AbstractBluffinCommand command, IBluffinClient client) { LogManager.Log(LogLevel.Message, "BluffinLobbyWorker.OnDisconnectCommandReceived", "> Client disconnected: {0}", client.PlayerName); Lobby.RemoveName(client.PlayerName); }
private void OnGetUserCommandReceived(AbstractBluffinCommand 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); } }