35 if (request->type().name() ==
"guild")
58 club::v1::SubscribeNotification subscribeNotification;
70 subscribeNotification.set_club_id(guild->
GetId());
73 club::v1::Club* guildClub = subscribeNotification.mutable_club();
75 guildClub->set_id(guild->
GetId());
77 guildClub->set_name(guild->
GetName());
86 club::v1::MemberDescription* guildLeaderDescription = guildClub->add_leader();
88 guildLeaderDescription->mutable_id()->mutable_account_id()->set_id(guildLeader->
GetAccountId());
89 guildLeaderDescription->mutable_id()->set_unique_id(guildLeader->
GetGUID().
GetCounter());
91 club::v1::Member* subscriber = subscribeNotification.mutable_member();
110 subscriber->set_active(
true);
112 WorldserverService<club::v1::ClubListener>(
_session).OnSubscribe(&subscribeNotification,
true,
true);
115 club::v1::SubscriberStateChangedNotification subscriberStateChangedNotification;
117 subscriberStateChangedNotification.set_club_id(guild->
GetId());
119 club::v1::SubscriberStateAssignment* assignment = subscriberStateChangedNotification.add_assignment();
124 assignment->set_active(
true);
126 WorldserverService<club::v1::ClubListener>(
_session).OnSubscriberStateChanged(&subscriberStateChangedNotification,
true,
true);
146 for (
auto const& [guid, member] : guild->
GetMembers())
148 club::v1::Member* clubMember = response->add_member();
163 clubMember->set_note(member.GetPublicNote());
164 clubMember->set_active(member.IsOnline());
184 club::v1::Stream* generalGuildChannelStream = response->add_stream();
186 generalGuildChannelStream->set_club_id(guild->
GetId());
189 v2::Attribute* generalStreamAttribute = generalGuildChannelStream->add_attribute();
191 generalStreamAttribute->
set_name(
"global_strings_tag");
194 generalGuildChannelStream->set_name(
"Guild");
208 club::v1::Stream* officerGuildChannelStream = response->add_stream();
210 officerGuildChannelStream->set_club_id(guild->
GetId());
213 v2::Attribute* officerStreamAttribute = officerGuildChannelStream->add_attribute();
215 officerStreamAttribute->
set_name(
"global_strings_tag");
218 officerGuildChannelStream->set_name(
"Officer");
231 club::v1::StreamView* generalView = response->add_view();
233 generalView->set_club_id(guild->
GetId());
236 club::v1::StreamView* officerView = response->add_view();
238 officerView->set_club_id(guild->
GetId());
305 std::function<
void(
ServiceBase*,
uint32, google::protobuf::Message
const*)>& continuation)
342 std::chrono::microseconds messageTime = std::chrono::duration_cast<std::chrono::microseconds>(
GameTime::GetSystemTime().time_since_epoch());
346 club::v1::StreamMessageAddedNotification messageAddedNotification;
348 messageAddedNotification.set_club_id(guild->
GetId());
349 messageAddedNotification.set_stream_id(request->stream_id());
350 FillStreamMessage(messageAddedNotification.mutable_message(), request->options().content(), messageTime, player->
GetGUID());
361 WorldserverService<club::v1::ClubListener>(receiver->
GetSession()).OnStreamMessageAdded(&messageAddedNotification,
true,
true);
368 continuation =
nullptr;
375 std::unique_ptr<club::v1::UniqueClubType> type = std::make_unique<club::v1::UniqueClubType>();
376 type->set_program(5730135);
377 type->set_name(
"guild");
383 message->mutable_id()->set_epoch(messageTime.count());
384 message->mutable_id()->set_position(0);
391 contentChain->set_edit_time(messageTime.count());
@ ERROR_CLUB_NO_SUCH_MEMBER
@ ERROR_CLUB_STREAM_NO_SUCH_MESSAGE
@ ERROR_CLUB_STREAM_NO_STREAM
if(posix_memalign(&__mallocedMemory, __align, __size)) return NULL
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
static std::unique_ptr< club::v1::MemberId > CreateClubMemberId(ObjectGuid guid)
uint32 HandleGetMembers(club::v1::GetMembersRequest const *request, club::v1::GetMembersResponse *response, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation) override
uint32 HandleGetClubType(club::v1::GetClubTypeRequest const *request, club::v1::GetClubTypeResponse *response, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation) override
uint32 HandleSetStreamFocus(club::v1::SetStreamFocusRequest const *request, NoData *response, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation) override
uint32 HandleCreateMessage(club::v1::CreateMessageRequest const *request, club::v1::CreateMessageResponse *response, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation) override
ClubService(WorldSession *session)
uint32 HandleUnsubscribeStream(club::v1::UnsubscribeStreamRequest const *request, NoData *response, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation) override
uint32 HandleSubscribeStream(club::v1::SubscribeStreamRequest const *request, NoData *response, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation) override
uint32 HandleAdvanceStreamViewTime(club::v1::AdvanceStreamViewTimeRequest const *request, NoData *response, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation) override
uint32 HandleSubscribe(club::v1::SubscribeRequest const *request, NoData *response, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation) override
static void FillStreamMessage(club::v1::StreamMessage *message, std::string_view msg, std::chrono::microseconds messageTime, ObjectGuid author)
static std::unique_ptr< club::v1::UniqueClubType > CreateGuildClubType()
uint32 HandleGetStreams(club::v1::GetStreamsRequest const *request, club::v1::GetStreamsResponse *response, std::function< void(ServiceBase *, uint32, ::google::protobuf::Message const *)> &continuation) override
GuildRankId GetRankId() const
uint32 GetAccountId() const
bool IsRank(GuildRankId rankId) const
ObjectGuid const & GetGUID() const
ObjectGuid GetLeaderGUID() const
ObjectGuid::LowType GetId() const
std::string const & GetName() const
void BroadcastWorker(Do &&_do, Player const *except=nullptr) const
std::unordered_map< ObjectGuid, Member > const & GetMembers() const
bool HasAnyRankRight(GuildRankId rankId, GuildRankRights rights) const
Member const * GetMember(ObjectGuid const &guid) const
uint32 GetMembersCount() const
LowType GetCounter() const
static ObjectGuid GetGUID(Object const *o)
bool HasIgnore(ObjectGuid const &ignoreGuid, ObjectGuid const &ignoreAccountGuid)
PlayerSocial * GetSocial() const
WorldSession * GetSession() const
Player session in the World.
ObjectGuid GetAccountGUID() const
Player * GetPlayer() const
ChatMessageResult HandleChatMessage(ChatMsg type, Language lang, std::string msg, std::string target="", Optional< ObjectGuid > channelGuid={})
void set_content(const ::std::string &value)
inline ::bgs::protocol::v2::Variant * mutable_value()
void set_name(const ::std::string &value)
void set_string_value(const ::std::string &value)
SystemTimePoint GetSystemTime()
Current chrono system_clock time point.
@ VISIBILITY_LEVEL_PRIVATE