Esempio n. 1
0
        private void menuMainProgramTest_Click(object sender, EventArgs e)
        {
            string        chatMessageData = "<body><message xmlns=\"jabber:client\" type=\"groupchat\" from=\"[email protected]/masterast\" to=\"[email protected]/xiff-bosh\" id=\"m_466\"><body>Tool|230|Marble|100</body><bbmsg xmlns=\"bbmsg\" playerid=\"1033067\" playername=\"Masterast\" playertag=\"\"/></message></body>";
            DsoChatPacket chatPacket      = DsoChatPacket.Parse(chatMessageData);

            AddPacket(chatPacket);
        }
Esempio n. 2
0
        private void AddPacket(DsoChatPacket packet)
        {
            foreach (DsoChatPacketMessage msg in packet.Messages)
            {
                switch (msg.Type)
                {
                case EDsoMsgTypes.ChatGlobal:
                    chatGlobal.AddMessage(msg);
                    HighlightTab(tabPageChatGlobal);
                    break;

                case EDsoMsgTypes.ChatHelp:
                    chatHelp.AddMessage(msg);
                    HighlightTab(tabPageChatHelp);
                    break;

                case EDsoMsgTypes.Trade:
                    // Build trade instance
                    // @EDIT: Trade now is a simple chat

                    /*
                     * DsoTrade trade = DsoTrade.Create(msg, (msg.MessageDetails != null ? msg.MessageDetails.Player : "<unknown?>"));
                     * if (trade != null) {
                     *      // Add to statistics
                     *      ItemStats.CountAverage(trade.OfferedItem, trade.DemandedItem, trade.Ratio);
                     *      // Add to trade list
                     *      listTrades.AddTrade(trade);
                     *      // highlight tab
                     *      HighlightTab(tabPageTrades);
                     *      // Refresh count
                     *      lblStatusTrades.Text = string.Format("Trades: {0}", listTrades.GetItemCount());
                     * }
                     */
                    break;
                }

                // Delete trades
                if ((msg.Type & EDsoMsgTypes.Clear) == EDsoMsgTypes.Clear)
                {
                    if ((msg.Type & EDsoMsgTypes.Trade) == EDsoMsgTypes.Trade)
                    {
                        DsoTrade trade = DsoTrade.Create(msg, (msg.MessageDetails != null ? msg.MessageDetails.Player : "<unknown?>"));
                        if (trade != null && listTrades.RemoveTrade(trade) == false)
                        {
                            //SetStatus("Failed to remove trade from player \"" + trade.Player + "\".");
                        }
                        else
                        {
                            // Refresh count
                            lblStatusTrades.Text = string.Format("Trades: {0}", listTrades.GetItemCount());
                        }
                    }
                }

                // Count captured packets
                mCapturedPackets++;
                lblStatusPackets.Text = string.Format("Packets: {0}", mCapturedPackets);
            }
        }
Esempio n. 3
0
        private void mWorkingThread_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            DsoChatPacket packet = (DsoChatPacket)e.UserState;

            if (packet == null)
            {
                return;
            }

            AddPacket(packet);
        }
Esempio n. 4
0
        private void mWorkingThread_DoWork(object sender, DoWorkEventArgs e)
        {
            PacketDevice packetDevice = (PacketDevice)e.Argument;

            // Open the device
            PacketCommunicator communicator = packetDevice.Open(65536, PacketDeviceOpenAttributes.Promiscuous | PacketDeviceOpenAttributes.NoCaptureLocal | PacketDeviceOpenAttributes.MaximumResponsiveness, 30000);

            communicator.SetFilter("net (87.119.203.0/24 or 94.236.0.0/16 or 31.222.148.0/24) and port 80");
            Debug.WriteLine("Worker listening on " + packetDevice.Description + "...");

            // Retrieve the packets
            Packet        packet;
            DsoChatPacket chatPacket = null;

            do
            {
                // Thread should exit/cancel work
                if (mWorkingThread.CancellationPending == true)
                {
                    communicator.Break();
                    break;
                }

                // Pause?
                if (mPauseCapture)
                {
                    Thread.Sleep(1000);
                    continue;
                }

                // Wait for next packet
                PacketCommunicatorReceiveResult result = communicator.ReceivePacket(out packet);
                switch (result)
                {
                case PacketCommunicatorReceiveResult.Timeout:
                    continue;

                case PacketCommunicatorReceiveResult.Ok:
                    if (packet.Buffer != null && packet.Length > 0)
                    {
                        chatPacket = DsoChatPacket.Parse(packet.Buffer);
                        if (chatPacket == null || chatPacket.Messages.Count == 0)
                        {
                            // Failed to parse
                            mWorkingThread.ReportProgress(0);
                        }
                        else
                        {
                            mWorkingThread.ReportProgress(0, chatPacket.Clone());
                        }
                    }

                    break;

                default:
                    throw new InvalidOperationException("The result " + result + " should never be reached here");
                }
            } while (true);

            // Set result object to handle "Cancel" correctly
            e.Result = true;
        }
Esempio n. 5
0
 public static void Main(string[] args)
 {
     string        xml    = "<body xmlns='http://jabber.org/protocol/httpbind'><message xmlns=\"jabber:client\" type=\"groupchat\" from=\"[email protected]/monika5\" id=\"m_45\" to=\"[email protected]/xiff-bosh\"><body>Plank|200|Coin|50</body><bbmsg xmlns=\"bbmsg\" playername=\"monika5\" playerid=\"1003212\" playertag=\"\"/></message><message xmlns=\"jabber:client\" type=\"groupchat\" to=\"[email protected]/xiff-bosh\" from=\"[email protected]/warkanoid\" id=\"m_295\"><body>GEILO!!</body></body><bbmsg xmlns=\"bbmsg\" playername=\"Warkanoid\" playertag=\"\" playerid=\"1096507\"/></message><presence xmlns=\"jabber:client\" to=\"[email protected]/xiff-bosh\" from=\"[email protected]/thorhaus\" type=\"unavailable\"><priority>0</priority><x xmlns=\"http://jabber.org/protocol/muc#user\"><item affiliation=\"none\" role=\"none\"/></x></presence><message xmlns=\"jabber:client\" id=\"m_1740\" from=\"[email protected]/maniac83\" to=\"[email protected]/xiff-bosh\" type=\"groupchat\"><body>guter mann:)</body><bbmsg xmlns=\"bbmsg\" playertag=\"\" playerid=\"1046129\" playername=\"Maniac83\"/></message></body>";
     DsoChatPacket packet = DsoChatPacket.Parse(Encoding.UTF8.GetBytes(xml));
 }
Esempio n. 6
0
 public void AddMessages(DsoChatPacket packet)
 {
     AddMessages(packet.Messages);
 }