AddString() public method

Adds a string to this packet
public AddString ( String s ) : void
s String The string
return void
示例#1
0
        public void DataReceived(Packet p)
        {
            switch (p.GetHeader())
            {
                case Headers.KEEP_ALIVE:
                    {
                        ChatServerConnectionManager.GetInstance().SendPacket(new Packet(Headers.KEEP_ALIVE));
                        break;
                    }
                case Headers.HANDSHAKE_2:
                    {
                        ChatServerConnectionManager.GetInstance().SetLoginStatus("Connected");
                        // Finish handshake
                        ChatServerConnectionManager.GetInstance().SendPacket(new Packet(Headers.HANDSHAKE_3));

                        // Request for a user ID
                        Packet newPacket = new Packet(Headers.CLIENT_USERNAME);
                        newPacket.AddString(ChatServerConnectionManager.GetInstance().user.username);
                        ChatServerConnectionManager.GetInstance().SendPacket(newPacket);

                        MenuManager.GetInstance().ShowMenu(MenuManager.Menu.MultiplayerLobby);
                        break;
                    }
                case Headers.SERVER_DISCONNECT:
                    {
                        ChatServerConnectionManager.GetInstance().DisconnectFromServer();
                        // Create a dialog, and add a listener to the OK button.
                        ChatServerConnectionManager.GetInstance().OnDisconnect();
                        break;
                    }
                case Headers.CLIENT_USER_ID:
                    {
                        // Set the received user ID.
                        ChatServerConnectionManager.GetInstance().user.id = PacketUtil.DecodePacketInt(p, 0);
                        // Console.Out.WriteLine("Received user ID from the server: " + ChatServerConnectionManager.GetInstance().user.id);
                        break;
                    }
                case Headers.CLIENT_CHANNEL:
                    {
                        UserManager.GetInstance().users.Clear();
                        // UserManager.GetInstance().users.Clear();
                        ChatServerConnectionManager.GetInstance().user.channelID = PacketUtil.DecodePacketInt(p, 0);
                        // Console.Out.WriteLine("Switched channel to: " + ChatServerConnectionManager.GetInstance().user.channelID);
                        break;
                    }
                case Headers.CHAT_MESSAGE:
                    {
                        // Get the channel
                        int channel = PacketUtil.DecodePacketInt(p, 0);
                        // Get the message
                        String message = PacketUtil.DecodePacketString(p, 4);
                        ParentComponent menu = MenuManager.GetInstance().GetCurrentlyDisplayedMenu();
                        if (menu is MultiplayerLobby)
                        {
                            MultiplayerLobby lobby = ((MultiplayerLobby)menu);
                            lobby.AddMessageToLog(message);
                        }
                        else if (menu is GameLobby)
                        {
                            GameLobby lobby = ((GameLobby)menu);
                            lobby.AddMessageToLog(message);
                        }
                        break;
                    }
                case Headers.NEW_USER:
                    {
                        int userID = PacketUtil.DecodePacketInt(p, 0);
                        String username = PacketUtil.DecodePacketString(p, 4);
                        User user = new User(username);
                        user.id = userID;
                        user.channelID = ChatServerConnectionManager.GetInstance().user.channelID;
                        ParentComponent menu = MenuManager.GetInstance().GetCurrentlyDisplayedMenu();
                        if (UserManager.GetInstance().GetUserByID(user.id) == null) UserManager.GetInstance().users.AddLast(user);

                        if (menu is MultiplayerLobby)
                        {
                            MultiplayerLobby lobby = ((MultiplayerLobby)menu);
                            lobby.AddUser(user);
                        }

                        break;
                    }
                case Headers.USER_LEFT:
                    {
                        int userID = PacketUtil.DecodePacketInt(p, 0);
                        User user = UserManager.GetInstance().GetUserByID(userID);
                        if (user != null)
                        {
                            ParentComponent menu = MenuManager.GetInstance().GetCurrentlyDisplayedMenu();
                            if (menu is MultiplayerLobby)
                            {
                                MultiplayerLobby lobby = ((MultiplayerLobby)menu);
                                lobby.RemoveUser(user);
                            }
                        }

                        break;
                    }
            }
        }
示例#2
0
        public void DataReceived(Packet p)
        {
            switch (p.GetHeader())
            {
                case Headers.KEEP_ALIVE:
                    {
                        ChatServerConnectionManager.GetInstance().SendPacket(new Packet(Headers.KEEP_ALIVE));
                        break;
                    }
                case Headers.HANDSHAKE_2:
                    {
                        ChatServerConnectionManager.GetInstance().SetLoginStatus("Connected");
                        // Finish handshake
                        ChatServerConnectionManager.GetInstance().SendPacket(new Packet(Headers.HANDSHAKE_3));

                        // Request for a user ID
                        Packet newPacket = new Packet(Headers.CLIENT_USERNAME);

                            newPacket.AddString(ChatServerConnectionManager.GetInstance().user.username);
                        // Random user names are for testing only, so we don't want to show the menu
                        if (!ChatServerConnectionManager.GetInstance().useRandomUsername)
                        {
                            MenuManager.GetInstance().ShowMenu(MenuManager.Menu.MultiplayerLobby);
                        }
                        ChatServerConnectionManager.GetInstance().SendPacket(newPacket);

                        break;
                    }
                case Headers.SERVER_DISCONNECT:
                    {
                        ChatServerConnectionManager.GetInstance().DisconnectFromServer();
                        // Create a dialog, and add a listener to the OK button.
                        ChatServerConnectionManager.GetInstance().OnDisconnect();
                        break;
                    }
                case Headers.CLIENT_USER_ID:
                    {
                        // Set the received user ID.
                        ChatServerConnectionManager.GetInstance().user.id = PacketUtil.DecodePacketInt(p, 0);
                        // Console.Out.WriteLine("Received user ID from the server: " + ChatServerConnectionManager.GetInstance().user.id);
                        break;
                    }
                case Headers.GAME_MAP_CHANGED:
                    {
                        int gameID = PacketUtil.DecodePacketInt(p, 0);
                        String mapName = PacketUtil.DecodePacketString(p, 4);

                        ParentComponent menu = MenuManager.GetInstance().GetCurrentlyDisplayedMenu();
                        if (menu is MultiplayerLobby)
                        {
                            MultiplayerLobby lobby = ((MultiplayerLobby)menu);
                            MultiplayerGame game = lobby.GetGameByID(gameID);
                            game.mapname = mapName;
                            for (int i = 0; i < lobby.gameList.Count(); i++)
                            {
                                GameDisplayPanel panel = lobby.GetGameDisplayPanelByIndex(i);
                                if (panel.multiplayerGame.id == gameID)
                                {
                                    panel.ChangeMap(mapName);
                                    break;
                                }
                            }
                        }
                        else if (menu is GameLobby)
                        {
                            GameLobby lobby = ((GameLobby)menu);
                            lobby.mapPreviewPanel.ChangeMap(mapName);
                        }
                        Console.Out.WriteLine("Received GAME_MAP_CHANGED packet");
                        break;
                    }
                case Headers.CLIENT_CHANNEL:
                    {
                        UserManager.GetInstance().users.Clear();
                        // UserManager.GetInstance().users.Clear();
                        ChatServerConnectionManager.GetInstance().user.channelID = PacketUtil.DecodePacketInt(p, 0);
                        // Console.Out.WriteLine("Switched channel to: " + ChatServerConnectionManager.GetInstance().user.channelID);
                        break;
                    }
                case Headers.CHAT_MESSAGE:
                    {
                        // Get the channel
                        int channel = PacketUtil.DecodePacketInt(p, 0);
                        // Get the message
                        String message = PacketUtil.DecodePacketString(p, 4);
                        ParentComponent menu = MenuManager.GetInstance().GetCurrentlyDisplayedMenu();
                        if (menu is MultiplayerLobby)
                        {
                            MultiplayerLobby lobby = ((MultiplayerLobby)menu);
                            lobby.AddMessageToLog(message);
                        }
                        else if (menu is GameLobby)
                        {
                            GameLobby lobby = ((GameLobby)menu);
                            lobby.AddMessageToLog(message);
                        }
                        break;
                    }
                case Headers.NEW_USER:
                    {
                        int userID = PacketUtil.DecodePacketInt(p, 0);
                        String username = PacketUtil.DecodePacketString(p, 4);
                        User user = new User(username);
                        user.id = userID;
                        user.channelID = ChatServerConnectionManager.GetInstance().user.channelID;
                        ParentComponent menu = MenuManager.GetInstance().GetCurrentlyDisplayedMenu();
                        if (UserManager.GetInstance().GetUserByID(user.id) == null) UserManager.GetInstance().users.AddLast(user);

                        if (menu is MultiplayerLobby)
                        {
                            MultiplayerLobby lobby = ((MultiplayerLobby)menu);
                            lobby.AddUser(user);
                        }

                        break;
                    }
                case Headers.USER_LEFT:
                    {
                        int userID = PacketUtil.DecodePacketInt(p, 0);
                        User user = UserManager.GetInstance().GetUserByID(userID);
                        if (user != null)
                        {
                            ParentComponent menu = MenuManager.GetInstance().GetCurrentlyDisplayedMenu();
                            if (menu is MultiplayerLobby)
                            {
                                MultiplayerLobby lobby = ((MultiplayerLobby)menu);
                                lobby.RemoveUser(user);
                            }
                        }

                        break;
                    }
            }
        }
示例#3
0
 /// <summary>
 /// User entered a game name and pressed OK
 /// </summary>
 /// <param name="source">The source</param>
 public void CreateGame(XNAButton source)
 {
     if (gameNameInput.textfield.text.Length < 4)
     {
         XNAMessageDialog.CreateDialog("Please enter a game name that is 4 characters or longer.", XNAMessageDialog.DialogType.OK);
         return;
     }
     Packet p = new Packet(Headers.CLIENT_CREATE_GAME);
     p.AddInt(ChatServerConnectionManager.GetInstance().user.id);
     p.AddString(gameNameInput.textfield.text);
     ChatServerConnectionManager.GetInstance().SendPacket(p);
 }
示例#4
0
        /// <summary>
        /// User pressed a key in the message textfield.
        /// </summary>
        /// <param name="e">The event</param>
        public void OnKeyPressed(KeyEvent e)
        {
            if (e.key.ToString() == "Enter")
            {
                ChatServerConnectionManager chat = ChatServerConnectionManager.GetInstance();
                String message = chat.user.username + ": " + messageTextField.text;
                messageTextField.text = "";
                // AddMessageToLog(message);
                Packet packet = new Packet();

                packet.SetHeader(Headers.CHAT_MESSAGE);
                packet.AddInt(chat.user.channelID);
                packet.AddString(message);
                chat.SendPacket(packet);
            }
        }
示例#5
0
        /// <summary>
        /// Called when the OK button was pressed.
        /// </summary>
        /// <param name="source">The XNA Button</param>
        public virtual void OnOKClick(XNAButton source)
        {
            if (!ChatServerConnectionManager.GetInstance().connection.Receiving) return;
            String map = this.GetSelectedMap();
            if (map != null)
            {
                // this.previewPanel.selectedMapLbl.text = map;

                Packet p = new Packet(Headers.GAME_MAP_CHANGED);
                p.AddInt(ChatServerConnectionManager.GetInstance().user.channelID);
                p.AddString(map);
                ChatServerConnectionManager.GetInstance().SendPacket(p);
                Console.Out.WriteLine("Sent GAME_MAP_CHANGED packet");
            }
            this.Dispose();
        }