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); }
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); }
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); }
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); }