Beispiel #1
0
        public static void OnPartyMemberRequest(WorldClient client, INetPacketStream packet)
        {
            var partyMemberRequestPacket    = new PartyMemberRequestPacket(packet);
            var partyMemberRequestEventArgs = new PartyMemberRequestEventArgs(partyMemberRequestPacket);

            client.Player.NotifySystem <PartySystem>(partyMemberRequestEventArgs);
        }
Beispiel #2
0
        private void OnPartyMemberRequest(IPlayerEntity player, PartyMemberRequestEventArgs e)
        {
            var worldServer = DependencyContainer.Instance.Resolve <IWorldServer>();

            if (player.PlayerData.Id != e.PlayerId)
            {
                return;
            }

            var member = worldServer.GetPlayerEntityByCharacterId(e.MemberId);

            if (member == null)
            {
                WorldPacketFactory.SendAddPartyRequestCancel(player, e.MemberId, PartyRequestCancelMode.OtherServer);
                return;
            }

            // TODO: Check if in GW, Duel or other stuff that might disturb the player.

            if (member.Party.IsInParty)
            {
                WorldPacketFactory.SendAddPartyRequestCancel(player, e.MemberId, PartyRequestCancelMode.OtherParty);
                return;
            }

            // Send Request to other player
            WorldPacketFactory.SendAddPartyRequest(player, member, e.Troup);
        }