LeviLamina
Loading...
Searching...
No Matches
RealmWorldJoiner.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/screens/ProgressScreenNavigation.h"
7#include "mc/client/network/realms/FailureReason.h"
8#include "mc/client/network/realms/GenericStatus.h"
9#include "mc/client/network/realms/RealmsAPI.h"
10#include "mc/client/realms/PlayerRoleActions.h"
11#include "mc/client/world/JoinRealmWorldResult.h"
12#include "mc/deps/core/http/StatusCode.h"
13#include "mc/deps/core/utility/NonOwnerPointer.h"
14#include "mc/deps/core/utility/pub_sub/Publisher.h"
15#include "mc/events/IMinecraftEventing.h"
16#include "mc/options/option_types/OptionID.h"
17
18// auto generated forward declare list
19// clang-format off
20class AsyncTracker;
21class IAppPlatform;
22class IClientInstance;
25class ProgressHandler;
26class RealmsAPI;
28namespace Bedrock::PubSub { class Subscription; }
29namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
30namespace Parties { class IPartyProvider; }
31namespace Realms { struct RealmId; }
32namespace Realms { struct World; }
33namespace Social { class GameConnectionInfo; }
34namespace Social { class IUserManager; }
35namespace World { struct RealmsJoinData; }
36// clang-format on
37
38namespace World {
39
40class RealmWorldJoiner {
41public:
42 // member variables
43 // NOLINTBEGIN
44 ::ll::TypedStorage<8, 8, ::IClientInstance&> mClient;
45 ::ll::TypedStorage<8, 8, ::INetworkGameConnector&> mNetworkGameConnector;
46 ::ll::TypedStorage<8, 8, ::IGameServerShutdown&> mGameServerShutdown;
47 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mMinecraftEventing;
48 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::RealmsAPI>> mRealmsAPI;
49 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::Social::IUserManager>> mUserManager;
50 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IAppPlatform>> mAppPlatform;
51 ::ll::TypedStorage<
52 8,
53 128,
54 ::Bedrock::PubSub::
55 Publisher<void(::World::JoinRealmWorldResult), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
56 mJoinRealmWorldResultPublisher;
57 ::ll::TypedStorage<8, 104, ::ui::ProgressScreenNavigation> mProgressScreenNavigation;
58 ::ll::TypedStorage<8, 64, ::std::function<::Bedrock::NonOwnerPointer<::Parties::IPartyProvider>()>>
59 mGetPartyProvider;
60 ::ll::TypedStorage<8, 64, ::std::function<bool(::Realms::World const&, ::Realms::PlayerRoleActions)>>
61 mCanUserDoRealmRoleAction;
62 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::AsyncTracker>> mAsyncTracker;
63 ::ll::TypedStorage<1, 1, bool> mJoinRealmWorldInProgress;
64 ::ll::TypedStorage<1, 1, bool> mIsEditorMode;
65 ::ll::TypedStorage<8, 32, ::std::string> mRealmName;
66 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mRealmXuids;
67 // NOLINTEND
68
69public:
70 // prevent constructor by default
71 RealmWorldJoiner& operator=(RealmWorldJoiner const&);
72 RealmWorldJoiner(RealmWorldJoiner const&);
73 RealmWorldJoiner();
74
75public:
76 // member functions
77 // NOLINTBEGIN
78 MCAPI RealmWorldJoiner(
79 ::IClientInstance& client,
80 ::INetworkGameConnector& networkGameConnector,
81 ::IGameServerShutdown& gameServerShutdown,
82 ::IMinecraftEventing& minecraftEventing,
83 ::Bedrock::NotNullNonOwnerPtr<::Social::IUserManager> const& userManager,
84 ::Bedrock::NonOwnerPointer<::IAppPlatform> const& appPlatform,
85 ::std::weak_ptr<::RealmsAPI> realmsAPI,
86 ::ui::ProgressScreenNavigation progressScreenNavigation,
87 ::std::function<::Bedrock::NonOwnerPointer<::Parties::IPartyProvider>()> getPartyProvider,
88 ::std::function<bool(::Realms::World const&, ::Realms::PlayerRoleActions)> canUserDoRealmRoleAction
89 );
90
91 MCAPI ::World::JoinRealmWorldResult _fetchWorldByRealmId(
92 ::Realms::RealmId realmId,
93 ::IMinecraftEventing::RealmConnectionFlow fromFlow,
94 ::std::function<void(::std::unique_ptr<::ProgressHandler>, ::std::unique_ptr<::ProgressHandler>)>
95 onRealmFetched,
96 ::std::function<void(
97 ::IMinecraftEventing::RealmConnectionResult,
98 ::std::optional<::Realms::FailureReason>,
99 ::std::optional<::World::RealmsJoinData>
100 )> onRealmJoined
101 );
102
103 MCAPI bool _isUserWorldOwner(::Realms::World const& world) const;
104
105 MCAPI void _joinRealm(
106 ::IMinecraftEventing::RealmConnectionFlow fromFlow,
107 ::Realms::World& world,
108 ::std::function<void(::std::unique_ptr<::ProgressHandler>, ::std::unique_ptr<::ProgressHandler>)>
109 onRealmFetchedCallback,
110 ::std::function<void(
111 ::IMinecraftEventing::RealmConnectionResult,
112 ::std::optional<::Realms::FailureReason>,
113 ::std::optional<::World::RealmsJoinData>
114 )> onRealmJoinedCallback
115 );
116
117 MCAPI void _joinRealmConnectionHandler(
118 ::IMinecraftEventing::RealmConnectionResult result,
119 ::std::optional<::Realms::FailureReason> failureReason,
120 ::std::optional<::World::RealmsJoinData> realmsJoinData,
121 ::std::optional<::std::string> realmId
122 );
123
124 MCAPI ::std::optional<::World::JoinRealmWorldResult> _joinRealmValidations();
125
126 MCAPI void _joinRealmsWorld(
127 ::Realms::World world,
128 ::std::function<void(::Social::GameConnectionInfo const&, bool)> successCallback,
129 ::std::function<void(::Realms::GenericStatus, ::RealmsAPI::JoinStatus, ::Realms::FailureReason)> failCallback,
130 ::std::function<void(int)> retryCallback,
131 ::IMinecraftEventing::RealmConnectionFlow realmConnectionFlow,
132 ::std::function<void(::IMinecraftEventing::RealmConnectionFlow)> broadcastConnectionEventRealmsRequestFunction,
133 ::std::function<void(::IMinecraftEventing::RealmConnectionFlow, ::Bedrock::Http::StatusCode)>
134 broadcastConnectionEventRealmsResponseFunction
135 );
136
137 MCAPI bool _shouldShowHardcoreWarning() const;
138
139 MCAPI bool _shouldShowRealmWarning(::OptionID optionID) const;
140
141 MCAPI void joinRealmWorld(
142 ::Realms::RealmId realmId,
143 ::IMinecraftEventing::RealmConnectionFlow fromFlow,
144 ::std::function<void(::World::JoinRealmWorldResult)> onRealmResult,
145 ::std::function<void(::std::unique_ptr<::ProgressHandler>, ::std::unique_ptr<::ProgressHandler>)>
146 onRealmFetched,
147 ::std::function<void(
148 ::IMinecraftEventing::RealmConnectionResult,
149 ::std::optional<::Realms::FailureReason>,
150 ::std::optional<::World::RealmsJoinData>
151 )> onRealmJoined
152 );
153
154 MCAPI void joinRealmWorldV2(::std::string const& realmIdString, ::IMinecraftEventing::RealmConnectionFlow fromFlow);
155
156 MCAPI void resetPartyJoinRealmsWarnings();
157
158 MCFOLD ::Bedrock::PubSub::Subscription subscribeToJoinRealmWorldResultPublisher(
159 ::std::function<void(::World::JoinRealmWorldResult)> onJoinRealmWorldResult
160 );
161
162 MCAPI ~RealmWorldJoiner();
163 // NOLINTEND
164
165public:
166 // constructor thunks
167 // NOLINTBEGIN
168 MCAPI void* $ctor(
169 ::IClientInstance& client,
170 ::INetworkGameConnector& networkGameConnector,
171 ::IGameServerShutdown& gameServerShutdown,
172 ::IMinecraftEventing& minecraftEventing,
173 ::Bedrock::NotNullNonOwnerPtr<::Social::IUserManager> const& userManager,
174 ::Bedrock::NonOwnerPointer<::IAppPlatform> const& appPlatform,
175 ::std::weak_ptr<::RealmsAPI> realmsAPI,
176 ::ui::ProgressScreenNavigation progressScreenNavigation,
177 ::std::function<::Bedrock::NonOwnerPointer<::Parties::IPartyProvider>()> getPartyProvider,
178 ::std::function<bool(::Realms::World const&, ::Realms::PlayerRoleActions)> canUserDoRealmRoleAction
179 );
180 // NOLINTEND
181
182public:
183 // destructor thunk
184 // NOLINTBEGIN
185 MCAPI void $dtor();
186 // NOLINTEND
187};
188
189} // namespace World
Definition AsyncTracker.h:5
Definition Subscription.h:10
Definition IAppPlatform.h:15
Definition IClientInstance.h:5
Definition IMinecraftEventing.h:138
Definition INetworkGameConnector.h:5
Definition IPartyProvider.h:7
Definition ProgressHandler.h:5
Definition RealmsAPI.h:5
Definition GameConnectionInfo.h:23
Definition IUserManager.h:7
Definition RealmWorldJoiner.h:7
Definition IGameServerShutdown.h:5
Definition RealmId.h:7
Definition World.h:7
Definition RealmsJoinData.h:7