34#define CHARTER_DISPLAY_ID 16161
35#define GUILD_CHARTER_ITEM_ID 5863
45 TC_LOG_DEBUG(
"network",
"WORLD: HandlePetitionBuyOpcode - {} not found or you can't interact with him.", packet.
Unit.
ToString());
109 TC_LOG_DEBUG(
"network",
"Invalid petition {}", petition->PetitionGuid.ToString());
145 signaturePkt.
Signer = signature.second;
147 signaturesPacket.
Signatures.push_back(signaturePkt);
167 responsePacket.
Allow =
false;
170 TC_LOG_DEBUG(
"network",
"CMSG_PETITION_QUERY failed for petition ({})", petitionguid.
ToString());
183 responsePacket.
Allow =
true;
293 item->SetPetitionNumSignatures(signs);
397 if (signatures.size() < requiredSignatures)
428 for (
Signature const& signature : signatures)
429 guild->
AddMember(trans, signature.second);
454 TC_LOG_DEBUG(
"network",
"WORLD: HandlePetitionShowListOpcode - {} not found or you can't interact with him.", guid.
ToString());
463 TC_LOG_DEBUG(
"network",
"Sent SMSG_PETITION_SHOW_LIST");
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
@ GUILD_COMMAND_CREATE_GUILD
@ GUILD_COMMAND_INVITE_PLAYER
@ ERR_GUILD_COMMAND_SUCCESS
@ BUY_ERR_NOT_ENOUGHT_MONEY
#define TC_LOG_DEBUG(filterType__,...)
#define TC_LOG_ERROR(filterType__,...)
@ PETITION_SIGN_ALREADY_SIGNED
@ PETITION_TURN_NEED_MORE_SIGNATURES
@ PETITION_TURN_ALREADY_IN_GUILD
std::pair< uint32, ObjectGuid > Signature
std::vector< Signature > SignaturesVector
#define GUILD_CHARTER_ITEM_ID
std::vector< ItemPosCount > ItemPosCountVec
@ ERR_ALREADY_INVITED_TO_GUILD_S
@ ERR_GUILD_NAME_EXISTS_S
@ UNIT_NPC_FLAG_PETITIONER
bool AddMember(CharacterDatabaseTransaction trans, ObjectGuid guid, Optional< GuildRankId > rankId={})
static void SendCommandResult(WorldSession *session, GuildCommandType type, GuildCommandError errCode, std::string_view param="")
bool Create(Player *pLeader, std::string_view name)
void SetState(ItemUpdateState state, Player *forplayer=nullptr)
void SetPetitionId(uint32 petitionId)
LowType GetCounter() const
std::string ToString() const
static bool IsValidCharterName(std::string_view name)
static ObjectGuid GetGUID(Object const *o)
void SendEquipError(InventoryResult msg, Item const *item1=nullptr, Item const *item2=nullptr, uint32 itemId=0) const
Item * StoreNewItem(ItemPosCountVec const &pos, uint32 itemId, bool update, ItemRandomBonusListId randomBonusListId=0, GuidSet const &allowedLooters=GuidSet(), ItemContext context=ItemContext::NONE, std::vector< int32 > const *bonusListIDs=nullptr, bool addToCollection=true)
bool ModifyMoney(int64 amount, bool sendError=true)
Creature * GetNPCIfCanInteractWith(ObjectGuid const &guid, NPCFlags npcFlags, NPCFlags2 npcFlags2) const
void SendDirectMessage(WorldPacket const *data) const
void DestroyItem(uint8 bag, uint8 slot, bool update)
void SendBuyError(BuyResult msg, Creature *creature, uint32 item, uint32 param) const
ObjectGuid::LowType GetGuildId() const
ObjectGuid::LowType GetGuildIdInvited() const
Item * GetItemByGuid(ObjectGuid guid) const
InventoryResult CanStoreNewItem(uint8 bag, uint8 slot, ItemPosCountVec &dest, uint32 item, uint32 count, uint32 *no_space_count=nullptr) const
bool HasEnoughMoney(uint64 amount) const
void SendNewItem(Item *item, uint32 quantity, bool received, bool created, bool broadcast=false, uint32 dungeonEncounterId=0)
void RemoveAurasByType(AuraType auraType, std::function< bool(AuraApplication const *)> const &check, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
std::string const & GetName() const
WorldPacket const * GetRawPacket() const
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
std::vector< PetitionSignature > Signatures
ObjectGuid OwnerAccountID
WorldPacket const * Write() override
WorldPacket const * Write() override
void SendPetitionShowList(ObjectGuid guid)
void HandleDeclinePetition(WorldPackets::Petition::DeclinePetition &packet)
void HandlePetitionBuy(WorldPackets::Petition::PetitionBuy &packet)
void HandleTurnInPetition(WorldPackets::Petition::TurnInPetition &packet)
void HandleSignPetition(WorldPackets::Petition::SignPetition &packet)
void HandlePetitionShowList(WorldPackets::Petition::PetitionShowList &packet)
Player * GetPlayer() const
void HandlePetitionRenameGuild(WorldPackets::Petition::PetitionRenameGuild &packet)
void HandleQueryPetition(WorldPackets::Petition::QueryPetition &packet)
void SendPetitionSigns(Petition const *petition, Player *sendTo)
void SendPetitionQueryOpcode(ObjectGuid petitionguid)
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
uint32 GetAccountId() const
void HandleOfferPetition(WorldPackets::Petition::OfferPetition &packet)
void HandlePetitionShowSignatures(WorldPackets::Petition::PetitionShowSignatures &packet)
@ CONFIG_CHARTER_COST_GUILD
@ CONFIG_MIN_PETITION_SIGNS
@ CONFIG_ALLOW_TWO_SIDE_INTERACTION_GUILD
TC_GAME_API bool GetName(uint32 accountId, std::string &name)
TC_GAME_API Player * FindConnectedPlayer(ObjectGuid const &)
std::string ToString(Type &&val, Params &&... params)
uint32 GetBuyCount() const
void UpdateName(std::string const &newName)
SignaturesVector Signatures
bool IsPetitionSignedByAccount(uint32 accountId) const
void AddSignature(uint32 accountId, ObjectGuid playerGuid, bool isLoading)