public void HandleData(byte[] data)
        {
            string datastr = System.Text.Encoding.ASCII.GetString(data).Trim('\0');

            currentBuffer += datastr;
            char[] sep = { MultiplayerDataSettings.endChar };

            //If current buffer has no ending char, don't invoke incomplete commands.
            if (!currentBuffer.Contains(MultiplayerDataSettings.endChar.ToString()))
            {
                return;
            }

            string[] commands = currentBuffer.Split(sep, System.StringSplitOptions.RemoveEmptyEntries);

            foreach (string s in commands)
            {
                ThreadManager.ExecuteOnMainThread(() => { onGameData.Invoke(GameCommandTranslator.StringToCommand(s)); });
            }

            currentBuffer = "";
        }
Example #2
0
 public void Execute(IGameCommand cmd)
 {
     this.client.Send(GameCommandTranslator.CommandToString(cmd));
 }