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);
 }
示例#7
0
 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);
     }
 }