LeviLamina
Loading...
Searching...
No Matches
ServerWorldJoiner.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/world/JoinServerWorldResult.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8
9// auto generated forward declare list
10// clang-format off
12class IAppPlatform;
13class IClientInstance;
16class IThirdPartyServerRepository;
17class ProgressHandler;
18class ServerLocator;
19class TaskGroup;
21struct NetworkWorldInfo;
24namespace Network { struct ServerID; }
25namespace Social { class GameConnectionInfo; }
26namespace Social { class IUserManager; }
27namespace Social { class User; }
28namespace World { class ExternalServerWorldList; }
29namespace World { class FriendServerWorldList; }
30namespace World { class IServerURLResolver; }
31namespace World { class LanServerWorldList; }
32namespace World { class ThirdPartyWorldList; }
33// clang-format on
34
35namespace World {
36
38public:
39 // ServerWorldJoiner inner types define
40 enum class ServerType : int {
41 ThirdParty = 0,
42 ExternalServer = 1,
43 ExperienceServer = 2,
44 };
45
46public:
47 // member variables
48 // NOLINTBEGIN
49 ::ll::TypedStorage<8, 8, ::IClientInstance&> mClient;
50 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mMinecraftEventing;
51 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::Social::IUserManager>> mUserManager;
52 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IAppPlatform>> mAppPlatform;
53 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IThirdPartyServerRepository>> mThirdPartyServerRepository;
54 ::ll::TypedStorage<8, 8, ::ServerLocator&> mServerLocator;
55 ::ll::TypedStorage<8, 8, ::World::IServerURLResolver&> mServerURLResolver;
56 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mTaskGroup;
57 ::ll::TypedStorage<8, 8, ::INetworkGameConnector&> mNetworkGameConnector;
58 ::ll::TypedStorage<8, 8, ::World::ExternalServerWorldList&> mExternalServerWorldList;
59 ::ll::TypedStorage<8, 8, ::World::FriendServerWorldList&> mFriendServerWorldList;
60 ::ll::TypedStorage<8, 8, ::World::LanServerWorldList&> mLanServerWorldList;
61 ::ll::TypedStorage<8, 8, ::World::ThirdPartyWorldList&> mThirdPartyWorldList;
62 ::ll::TypedStorage<1, 1, bool> mIsEduMode;
63 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::GatheringManager>> mGatheringManager;
64 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mServerConnectionTime;
65 // NOLINTEND
66
67public:
68 // prevent constructor by default
69 ServerWorldJoiner& operator=(ServerWorldJoiner const&);
70 ServerWorldJoiner(ServerWorldJoiner const&);
71 ServerWorldJoiner();
72
73public:
74 // member functions
75 // NOLINTBEGIN
76 MCAPI ServerWorldJoiner(
77 ::IClientInstance& client,
78 ::IMinecraftEventing& minecraftEventing,
79 ::Bedrock::NotNullNonOwnerPtr<::Social::IUserManager> const& userManager,
80 ::Bedrock::NonOwnerPointer<::IAppPlatform> const& appPlatform,
81 ::Bedrock::NotNullNonOwnerPtr<::IThirdPartyServerRepository> thirdPartyServerRepository,
82 ::ServerLocator& serverLocator,
83 ::World::IServerURLResolver& serverURLResolver,
84 ::INetworkGameConnector& networkGameConnector,
85 ::World::ExternalServerWorldList& externalServerWorldList,
86 ::World::FriendServerWorldList& friendServerWorldList,
87 ::World::LanServerWorldList& lanServerWorldList,
88 ::World::ThirdPartyWorldList& thirdPartyWorldList,
89 bool isEduMode,
90 ::Bedrock::NotNullNonOwnerPtr<::GatheringManager> const& gatheringManager
91 );
92
93 MCAPI ::Social::GameConnectionInfo
94 _getGameConnectionInfo(::NetworkWorldInfo& world, ::World::ServerWorldJoiner::ServerType serverType);
95
96 MCAPI void _joinFriendWorld(
97 ::NetworkWorldInfo const& world,
98 ::std::function<void(::World::JoinServerWorldResult)> onCompleteCallback
99 );
100
101 MCAPI void _joinLanWorld(
102 ::PingedCompatibleServer const* world,
103 ::std::function<void(::std::unique_ptr<::ProgressHandler>)> onCompleteCallback,
104 ::std::function<void(::World::JoinServerWorldResult)> onErrorCallback
105 );
106
107 MCAPI void _joinNetworkWorld(
108 ::NetworkWorldInfo& world,
109 ::World::ServerWorldJoiner::ServerType serverType,
110 ::std::function<void(::std::deque<::std::unique_ptr<::ProgressHandler>>, bool)> onJoinServerCompleted,
111 ::std::function<void(::World::JoinServerWorldResult)> onErrorCallback
112 );
113
114 MCAPI bool _validateInternetConnection(::Social::User& user) const;
115
116 MCAPI void
117 joinExperienceWorld(::ExperienceConnectionData const& connectionData, ::PlayerJoinWorldContext const& joinContext);
118
119 MCAPI void joinExternalNetworkWorld(
120 ::std::string const& id,
121 ::std::function<void(::std::deque<::std::unique_ptr<::ProgressHandler>>, bool)> onJoinServerCompleted,
122 ::std::function<void(::World::JoinServerWorldResult)> onErrorCallback
123 );
124
125 MCAPI void joinFriendServerWorld(
126 ::Network::ServerID const& serverId,
127 ::std::function<void(::World::JoinServerWorldResult)> onCompleteCallback
128 );
129
130 MCAPI void joinLANServerWorld(
131 ::Network::ServerID const& serverId,
132 ::std::function<void(::std::unique_ptr<::ProgressHandler>)> onCompleteCallback,
133 ::std::function<void(::World::JoinServerWorldResult)> onErrorCallback
134 );
135
136 MCAPI void joinThirdPartyServerWorld(
137 ::std::string const& id,
138 ::std::function<void(::std::deque<::std::unique_ptr<::ProgressHandler>>, bool)> onJoinServerCompleted,
139 ::std::function<void(::World::JoinServerWorldResult)> onErrorCallback
140 );
141
142 MCAPI ~ServerWorldJoiner();
143 // NOLINTEND
144
145public:
146 // constructor thunks
147 // NOLINTBEGIN
148 MCAPI void* $ctor(
149 ::IClientInstance& client,
150 ::IMinecraftEventing& minecraftEventing,
151 ::Bedrock::NotNullNonOwnerPtr<::Social::IUserManager> const& userManager,
152 ::Bedrock::NonOwnerPointer<::IAppPlatform> const& appPlatform,
153 ::Bedrock::NotNullNonOwnerPtr<::IThirdPartyServerRepository> thirdPartyServerRepository,
154 ::ServerLocator& serverLocator,
155 ::World::IServerURLResolver& serverURLResolver,
156 ::INetworkGameConnector& networkGameConnector,
157 ::World::ExternalServerWorldList& externalServerWorldList,
158 ::World::FriendServerWorldList& friendServerWorldList,
159 ::World::LanServerWorldList& lanServerWorldList,
160 ::World::ThirdPartyWorldList& thirdPartyWorldList,
161 bool isEduMode,
162 ::Bedrock::NotNullNonOwnerPtr<::GatheringManager> const& gatheringManager
163 );
164 // NOLINTEND
165
166public:
167 // destructor thunk
168 // NOLINTBEGIN
169 MCAPI void $dtor();
170 // NOLINTEND
171};
172
173} // namespace World
Definition GatheringManager.h:5
Definition IAppPlatform.h:15
Definition IClientInstance.h:5
Definition IMinecraftEventing.h:138
Definition INetworkGameConnector.h:5
Definition ProgressHandler.h:5
Definition ServerLocator.h:19
Definition GameConnectionInfo.h:23
Definition IUserManager.h:7
Definition User.h:7
Definition TaskGroup.h:55
Definition ExternalServerWorldList.h:7
Definition FriendServerWorldList.h:7
Definition IServerURLResolver.h:7
Definition LanServerWorldList.h:7
Definition ServerWorldJoiner.h:7
Definition ThirdPartyWorldList.h:7
Definition ExperienceConnectionData.h:5
Definition NetworkWorldInfo.h:5
Definition ServerID.h:7
Definition PingedCompatibleServer.h:5
Definition PlayerJoinWorldContext.h:5