Esempio n. 1
0
        void HandlePetitionShowSignatures(PetitionShowSignatures packet)
        {
            Log.outDebug(LogFilter.Network, "Received opcode CMSG_PETITION_SHOW_SIGNATURES");

            // if has guild => error, return;
            if (GetPlayer().GetGuildId() != 0)
            {
                return;
            }

            PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_PETITION_SIGNATURE);

            stmt.AddValue(0, packet.Item.GetCounter());
            SQLResult result = DB.Characters.Query(stmt);

            ServerPetitionShowSignatures signaturesPacket = new ServerPetitionShowSignatures();

            signaturesPacket.Item           = packet.Item;
            signaturesPacket.Owner          = GetPlayer().GetGUID();
            signaturesPacket.OwnerAccountID = ObjectGuid.Create(HighGuid.WowAccount, Global.CharacterCacheStorage.GetCharacterAccountIdByGuid(GetPlayer().GetGUID()));
            signaturesPacket.PetitionID     = (int)packet.Item.GetCounter(); // @todo verify that...

            do
            {
                ObjectGuid signerGUID = ObjectGuid.Create(HighGuid.Player, result.Read <ulong>(0));

                ServerPetitionShowSignatures.PetitionSignature signature = new ServerPetitionShowSignatures.PetitionSignature();
                signature.Signer = signerGUID;
                signature.Choice = 0;
                signaturesPacket.Signatures.Add(signature);
            }while (result.NextRow());

            SendPacket(signaturesPacket);
        }
Esempio n. 2
0
        void HandleOfferPetition(OfferPetition packet)
        {
            Player player = Global.ObjAccessor.FindConnectedPlayer(packet.TargetPlayer);

            if (!player)
            {
                return;
            }

            if (!WorldConfig.GetBoolValue(WorldCfg.AllowTwoSideInteractionGuild) && GetPlayer().GetTeam() != player.GetTeam())
            {
                Guild.SendCommandResult(this, GuildCommandType.CreateGuild, GuildCommandError.NotAllied);
                return;
            }

            if (player.GetGuildId() != 0)
            {
                Guild.SendCommandResult(this, GuildCommandType.InvitePlayer, GuildCommandError.AlreadyInGuild_S, GetPlayer().GetName());
                return;
            }

            if (player.GetGuildIdInvited() != 0)
            {
                Guild.SendCommandResult(this, GuildCommandType.InvitePlayer, GuildCommandError.AlreadyInvitedToGuild_S, GetPlayer().GetName());
                return;
            }

            PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_PETITION_SIGNATURE);

            stmt.AddValue(0, packet.ItemGUID.GetCounter());
            SQLResult result = DB.Characters.Query(stmt);

            ServerPetitionShowSignatures signaturesPacket = new ServerPetitionShowSignatures();

            signaturesPacket.Item           = packet.ItemGUID;
            signaturesPacket.Owner          = GetPlayer().GetGUID();
            signaturesPacket.OwnerAccountID = ObjectGuid.Create(HighGuid.WowAccount, player.GetSession().GetAccountId());
            signaturesPacket.PetitionID     = (int)packet.ItemGUID.GetCounter(); // @todo verify that...

            do
            {
                ObjectGuid signerGUID = ObjectGuid.Create(HighGuid.Player, result.Read <ulong>(0));

                ServerPetitionShowSignatures.PetitionSignature signature = new ServerPetitionShowSignatures.PetitionSignature();
                signature.Signer = signerGUID;
                signature.Choice = 0;
                signaturesPacket.Signatures.Add(signature);
            }while (result.NextRow());

            player.SendPacket(signaturesPacket);
        }
Esempio n. 3
0
        void SendPetitionSigns(Petition petition, Player sendTo)
        {
            ServerPetitionShowSignatures signaturesPacket = new ServerPetitionShowSignatures();

            signaturesPacket.Item           = petition.PetitionGuid;
            signaturesPacket.Owner          = petition.ownerGuid;
            signaturesPacket.OwnerAccountID = ObjectGuid.Create(HighGuid.WowAccount, Global.CharacterCacheStorage.GetCharacterAccountIdByGuid(petition.ownerGuid));
            signaturesPacket.PetitionID     = (int)petition.PetitionGuid.GetCounter();

            foreach (var signature in petition.signatures)
            {
                ServerPetitionShowSignatures.PetitionSignature signaturePkt = new ServerPetitionShowSignatures.PetitionSignature();
                signaturePkt.Signer = signature.PlayerGuid;
                signaturePkt.Choice = 0;
                signaturesPacket.Signatures.Add(signaturePkt);
            }

            SendPacket(signaturesPacket);
        }
Esempio n. 4
0
        void HandlePetitionShowSignatures(PetitionShowSignatures packet)
        {
            Log.outDebug(LogFilter.Network, "Received opcode CMSG_PETITION_SHOW_SIGNATURES");

            byte signs = 0;

            // if has guild => error, return;
            if (GetPlayer().GetGuildId() != 0)
            {
                return;
            }

            PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_PETITION_SIGNATURE);

            stmt.AddValue(0, packet.Item.GetCounter());
            SQLResult result = DB.Characters.Query(stmt);

            // result == NULL also correct in case no sign yet
            if (!result.IsEmpty())
            {
                signs = (byte)result.GetRowCount();
            }

            ServerPetitionShowSignatures signaturesPacket = new ServerPetitionShowSignatures();

            signaturesPacket.Item           = packet.Item;
            signaturesPacket.Owner          = GetPlayer().GetGUID();
            signaturesPacket.OwnerAccountID = ObjectGuid.Create(HighGuid.WowAccount, ObjectManager.GetPlayerAccountIdByGUID(GetPlayer().GetGUID()));
            signaturesPacket.PetitionID     = (int)packet.Item.GetCounter(); // @todo verify that...

            for (byte i = 1; i <= signs; ++i)
            {
                ObjectGuid signerGUID = ObjectGuid.Create(HighGuid.Player, result.Read <ulong>(0));

                ServerPetitionShowSignatures.PetitionSignature signature = new ServerPetitionShowSignatures.PetitionSignature();
                signature.Signer = signerGUID;
                signature.Choice = 0;
                signaturesPacket.Signatures.Add(signature);

                result.NextRow();
            }
            SendPacket(signaturesPacket);
        }