/* * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef TRINITYCORE_PETITION_PACKETS_H #define TRINITYCORE_PETITION_PACKETS_H #include "Packet.h" #include "ObjectGuid.h" namespace WorldPackets { namespace Petition { class QueryPetition final : public ClientPacket { public: explicit QueryPetition(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_PETITION, std::move(packet)) { } void Read() override; ObjectGuid ItemGUID; uint32 PetitionID = 0; }; struct PetitionInfo { int32 PetitionID = 0; ObjectGuid Petitioner; std::string Title; std::string BodyText; int32 MinSignatures = 0; int32 MaxSignatures = 0; int32 DeadLine = 0; int32 IssueDate = 0; int32 AllowedGuildID = 0; int32 AllowedClasses = 0; int32 AllowedRaces = 0; int16 AllowedGender = 0; int32 AllowedMinLevel = 0; int32 AllowedMaxLevel = 0; int32 NumChoices = 0; int8 StaticType = 0; uint32 Muid = 0; std::array Choicetext; }; class QueryPetitionResponse final : public ServerPacket { public: explicit QueryPetitionResponse() : ServerPacket(SMSG_QUERY_PETITION_RESPONSE, 75) { } WorldPacket const* Write() override; uint32 PetitionID = 0; bool Allow = false; PetitionInfo Info; }; class PetitionShowList final : public ClientPacket { public: explicit PetitionShowList(WorldPacket&& packet) : ClientPacket(CMSG_PETITION_SHOW_LIST, std::move(packet)) { } void Read() override; ObjectGuid PetitionUnit; }; class ServerPetitionShowList final : public ServerPacket { public: explicit ServerPetitionShowList() : ServerPacket(SMSG_PETITION_SHOW_LIST, 20) { } WorldPacket const* Write() override; ObjectGuid Unit; uint32 Price = 0; }; class PetitionBuy final : public ClientPacket { public: explicit PetitionBuy(WorldPacket&& packet) : ClientPacket(CMSG_PETITION_BUY, std::move(packet)) { } void Read() override; ObjectGuid Unit; std::string Title; uint32 Muid = 0; }; class PetitionShowSignatures final : public ClientPacket { public: explicit PetitionShowSignatures(WorldPacket&& packet) : ClientPacket(CMSG_PETITION_SHOW_SIGNATURES, std::move(packet)) { } void Read() override; ObjectGuid Item; }; class ServerPetitionShowSignatures final : public ServerPacket { public: struct PetitionSignature { ObjectGuid Signer; int32 Choice = 0; }; explicit ServerPetitionShowSignatures() : ServerPacket(SMSG_PETITION_SHOW_SIGNATURES, 40) { } WorldPacket const* Write() override; ObjectGuid Item; ObjectGuid Owner; ObjectGuid OwnerAccountID; int32 PetitionID = 0; std::vector Signatures; }; class SignPetition final : public ClientPacket { public: explicit SignPetition(WorldPacket&& packet) : ClientPacket(CMSG_SIGN_PETITION, std::move(packet)) { } void Read() override; ObjectGuid PetitionGUID; uint8 Choice = 0; }; class PetitionSignResults final : public ServerPacket { public: explicit PetitionSignResults() : ServerPacket(SMSG_PETITION_SIGN_RESULTS, 33) { } WorldPacket const* Write() override; ObjectGuid Item; ObjectGuid Player; int32 Error = 0; // PetitionError }; class PetitionAlreadySigned final : public ServerPacket { public: explicit PetitionAlreadySigned() : ServerPacket(SMSG_PETITION_ALREADY_SIGNED, 16) { } WorldPacket const* Write() override; ObjectGuid SignerGUID; }; class DeclinePetition final : public ClientPacket { public: explicit DeclinePetition(WorldPacket&& packet) : ClientPacket(CMSG_DECLINE_PETITION, std::move(packet)) { } void Read() override; ObjectGuid PetitionGUID; }; class TurnInPetition final : public ClientPacket { public: explicit TurnInPetition(WorldPacket&& packet) : ClientPacket(CMSG_TURN_IN_PETITION, std::move(packet)) { } void Read() override; ObjectGuid Item; }; class TurnInPetitionResult final : public ServerPacket { public: explicit TurnInPetitionResult() : ServerPacket(SMSG_TURN_IN_PETITION_RESULT, 4) { } WorldPacket const* Write() override; int32 Result = 0; // PetitionError }; class OfferPetition final : public ClientPacket { public: explicit OfferPetition(WorldPacket&& packet) : ClientPacket(CMSG_OFFER_PETITION, std::move(packet)) { } void Read() override; ObjectGuid TargetPlayer; ObjectGuid ItemGUID; }; class OfferPetitionError final : public ServerPacket { public: explicit OfferPetitionError() : ServerPacket(SMSG_OFFER_PETITION_ERROR, 16) { } WorldPacket const* Write() override; ObjectGuid PlayerGUID; }; class PetitionRenameGuild final : public ClientPacket { public: explicit PetitionRenameGuild(WorldPacket&& packet) : ClientPacket(CMSG_PETITION_RENAME_GUILD, std::move(packet)) { } void Read() override; ObjectGuid PetitionGuid; std::string NewGuildName; }; class PetitionRenameGuildResponse final : public ServerPacket { public: explicit PetitionRenameGuildResponse() : ServerPacket(SMSG_PETITION_RENAME_GUILD_RESPONSE, 20) { } WorldPacket const* Write() override; ObjectGuid PetitionGuid; std::string NewGuildName; }; } } #endif // TRINITYCORE_PETITION_PACKETS_H