Ejemplo n.º 1
0
        public static RemoveFriend read(BinaryReader binaryReader)
        {
            RemoveFriend newObj = new RemoveFriend();

            newObj.i_friendID = binaryReader.ReadUInt32();
            Util.readToAlign(binaryReader);
            return(newObj);
        }
Ejemplo n.º 2
0
 public WebSocketApi(string uri)
 {
     _client        = new Client(uri);
     _login         = new Login(_client);
     _changePwd     = new ChangePwd(_client);
     _forgotPwd     = new ForgotPwd(_client);
     _resetPwd      = new ResetPwd(_client);
     _validMail     = new ValidMail(_client);
     _register      = new Register(_client);
     _getFriends    = new GetFriends(_client);
     _getPFriends   = new GetPendingFriends(_client);
     _removeFriend  = new RemoveFriend(_client);
     _addFriend     = new AddFriend(_client);
     _confirmFriend = new ConfirmFriend(_client);
 }
Ejemplo n.º 3
0
        private void OnRemoveFriend(RemoveFriend msg)
        {
            if (_friends.ContainsKey(msg.FriendName))
            {
                Context.System.EventStream.Unsubscribe(_friends[msg.FriendName], typeof(GreetFriendFrom));
                Context.System.EventStream.Unsubscribe(_friends[msg.FriendName], typeof(BlameMe));
                Context.Stop(_friends[msg.FriendName]);
                _friends.Remove(msg.FriendName);

                Sender.Tell(new RemoveFriendSuccesfully(msg.FriendName, Name));
            }
            else
            {
                Sender.Tell(new RemoveFriendError(msg.FriendName, Name));
            }
        }
Ejemplo n.º 4
0
        public void TestFriends()
        {
            var accept = new AcceptFriend("targetid");

            Assert.IsNotNullOrEmpty(accept.RequestMethod.ToString());
            Assert.IsTrue(accept.EndPoint.Contains("targetid"));
            Assert.IsNotNull(accept.BodyParameters);

            var add = new AddFriend("targetid");

            Assert.IsNotNullOrEmpty(add.RequestMethod.ToString());
            Assert.IsTrue(add.EndPoint.Contains("targetid"));
            Assert.IsNotNull(add.BodyParameters);

            var toast = new ToastUntoast("targetid");

            Assert.IsNotNullOrEmpty(toast.RequestMethod.ToString());
            Assert.IsTrue(toast.EndPoint.Contains("targetid"));
            Assert.IsNotNull(toast.BodyParameters);

            var remove = new RemoveFriend("targetid");

            Assert.IsNotNullOrEmpty(remove.RequestMethod.ToString());
            Assert.IsTrue(remove.EndPoint.Contains("targetid"));
            Assert.IsNotNull(remove.BodyParameters);

            var removeWish = new RemoveFromWishList(1);

            Assert.IsNotNullOrEmpty(removeWish.RequestMethod.ToString());
            Assert.IsNotNullOrEmpty(removeWish.EndPoint);
            Assert.AreEqual(removeWish.BodyParameters["bid"], 1);


            var addWish = new AddToWishList(1);

            Assert.IsNotNullOrEmpty(addWish.RequestMethod.ToString());
            Assert.IsNotNullOrEmpty(addWish.EndPoint);
            Assert.AreEqual(addWish.BodyParameters["bid"], 1);

            var comment = new AddComment("checkin", "shout");

            Assert.IsNotNullOrEmpty(comment.RequestMethod.ToString());
            Assert.IsTrue(comment.EndPoint.Contains("checkin"));
            Assert.AreEqual(comment.BodyParameters["shout"], "shout");
        }
Ejemplo n.º 5
0
        public WebSocketApi(string uri)
        {
            _client = new Client(uri);
            var dataExchange = new DataExchange(_client);

            _login         = new Login(dataExchange);
            _changePwd     = new ChangePwd(dataExchange);
            _forgotPwd     = new ForgotPwd(dataExchange);
            _resetPwd      = new ResetPwd(dataExchange);
            _validMail     = new ValidMail(dataExchange);
            _register      = new Register(dataExchange);
            _getFriends    = new GetFriends(dataExchange);
            _getPFriends   = new GetPendingFriends(dataExchange);
            _removeFriend  = new RemoveFriend(dataExchange);
            _addFriend     = new AddFriend(dataExchange);
            _confirmFriend = new ConfirmFriend(dataExchange);
            _logger        = LoggerFactory.GetLogger();
        }
Ejemplo n.º 6
0
        async Task ProcessAsync(HttpListenerContext ctx)
        {
            if (ctx.Request.UserAgent != "osu!")
            {
                return;
            }
            if (ctx.Request.Url.AbsolutePath.StartsWith("/web/"))
            {
                return;
            }

            if (string.IsNullOrEmpty(ctx.Request.Headers["osu-token"]))
            {
                await Login.Handle(ctx);

                return;
            }

            Player p = Global.FindPlayer(ctx.Request.Headers["osu-token"]);

            if (p == null) // if they arent part of the player collection, force them to relogin
            {
                ctx.Response.StatusCode = 403;
                ctx.Response.OutputStream.Write(Packets.Packets.SingleIntPacket(5, -5));
                ctx.Response.Close();
                return;
            }

            using (MemoryStream ms = new MemoryStream())
                using (BinaryReader r = new BinaryReader(ms))
                {
                    await ctx.Request.InputStream.CopyToAsync(ms);

                    ms.Position = 0;
                    while (ms.Position < ctx.Request.ContentLength64 - 6)
                    {
                        short Id = r.ReadInt16();
                        ms.Position += 1;
                        int Length = r.ReadInt32();
                        if (ms.Position + Length > ctx.Request.ContentLength64)
                        {
                            break;
                        }
                        if (Id == 68 || Id == 79)
                        {
                            ms.Position += Length;
                            continue;
                        }

                        byte[] Data = r.ReadBytes(Length);
                        switch (Id)
                        {
                        case 4: p.Ping = DateTime.Now.Ticks; break;

                        case 0:
                            StatusUpdate.Handle(p, Data);
                            break;

                        case 1:
                            IrcMessage.Handle(p, Data);
                            break;

                        case 2:
                            Player.RemovePlayer(p);
                            break;

                        case 3:
                            await StatsUpdateRequest.Handle(p);

                            break;

                        case 16:
                            StartSpectating.Handle(p, Data);
                            break;

                        case 17:
                            StopSpectating.Handle(p);
                            break;

                        case 18:
                            SpectatorFrames.Handle(p, Data);
                            break;

                        case 25:
                            IrcMessage.HandlePrivate(p, Data);
                            break;

                        case 29:
                            Global.LeaveLobby(p);
                            break;

                        case 30:
                            Global.JoinLobby(p);
                            break;

                        case 31:
                            CreateMatch.Handle(p, Data);
                            break;

                        case 32:
                            JoinMatch.Handle(p, Data);
                            break;

                        case 33:
                            LeaveMatch.Handle(p);
                            break;

                        case 38:
                            ChangeSlot.Handle(p, Data);
                            break;

                        case 39:
                            MatchReady.Handle(p);
                            break;

                        case 40:
                            SlotLock.Handle(p, Data);
                            break;

                        case 41:
                            MatchSettings.Handle(p, Data);
                            break;

                        case 44:
                            MatchStart.Handle(p, Data);
                            break;

                        case 49:
                            MatchFinished.Handle(p);
                            break;

                        case 51:
                            ModsChange.Handle(p, Data);
                            break;

                        case 52:
                            MatchLoaded.Handle(p);
                            break;

                        case 54:
                            NoBeatmap.Handle(p);
                            break;

                        case 55:
                            MatchReady.Handle(p);
                            break;

                        case 56:
                            MatchFailed.Handle(p);
                            break;

                        case 59:
                            HasBeatmap.Handle(p);
                            break;

                        case 60:
                            MatchSkip.Handle(p);
                            break;

                        case 63:
                            ChannelJoinEvent.Handle(p, Data);
                            break;

                        case 70:
                            ChangeHost.Handle(p, Data);
                            break;

                        case 73:
                            AddFriend.Handle(p, Data);
                            break;

                        case 74:
                            RemoveFriend.Handle(p, Data);
                            break;

                        case 77:
                            ChangeTeam.Handle(p, Data);
                            break;

                        case 78:
                            ChannelLeaveEvent.Handle(p, Data);
                            break;

                        case 85:
                            StatsUpdateRequest.Handle(p, Data);
                            break;

                        case 90:
                            MatchChangePassword.Handle(p, Data);
                            break;

                        default:
                            Log.LogFormat($"%#FFFF%Unhandled Packet {Id} with {Length}");
                            break;
                        }
                    }
                }

            if (p.StreamLength != 0)
            {
                p.StreamCopyTo(ctx.Response.OutputStream);
            }
            ctx.Response.Close();
        }
Ejemplo n.º 7
0
    public override bool acceptMessageData(BinaryReader messageDataReader, TreeView outputTreeView)
    {
        bool handled = true;

        PacketOpcode opcode = Util.readOpcode(messageDataReader);

        switch (opcode)
        {
        case PacketOpcode.Evt_Social__ClearFriends_ID: {
            EmptyMessage message = new EmptyMessage(opcode);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__RemoveFriend_ID: {
            RemoveFriend message = RemoveFriend.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__AddFriend_ID: {
            AddFriend message = AddFriend.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__FriendsUpdate_ID: {
            FriendsUpdate message = FriendsUpdate.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        // TODO: AddCharacterTitle
        case PacketOpcode.Evt_Social__CharacterTitleTable_ID: {
            CharacterTitleTable message = CharacterTitleTable.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__AddOrSetCharacterTitle_ID: {
            AddOrSetCharacterTitle message = AddOrSetCharacterTitle.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__SetDisplayCharacterTitle_ID: {
            SetDisplayCharacterTitle message = SetDisplayCharacterTitle.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__SendClientContractTrackerTable_ID: {
            SendClientContractTrackerTable message = SendClientContractTrackerTable.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__SendClientContractTracker_ID: {
            SendClientContractTracker message = SendClientContractTracker.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Social__AbandonContract_ID: {
            AbandonContract message = AbandonContract.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        default: {
            handled = false;
            break;
        }
        }

        return(handled);
    }