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/threading/Async.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9
10// auto generated forward declare list
11// clang-format off
13class IAppPlatform;
14class IClientInstance;
17class IThirdPartyServerRepository;
18class ProgressHandler;
19class ServerLocator;
20class TaskGroup;
22struct NetworkWorldInfo;
24namespace Network { struct ServerID; }
25namespace OreUI { class Router; }
26namespace Parties { class IPartyProvider; }
27namespace Social { class IUserManager; }
28namespace Social { class User; }
29namespace World { class ExternalServerWorldList; }
30namespace World { class FriendServerWorldList; }
31namespace World { class IServerURLResolver; }
32namespace World { class LanServerWorldList; }
33namespace World { class ThirdPartyWorldList; }
34// clang-format on
35
36namespace World {
37
39public:
40 // ServerWorldJoiner inner types define
41 enum class ServerType : int {
42 ThirdParty = 0,
43 ExternalServer = 1,
44 ExperienceServer = 2,
45 };
46
47public:
48 // member variables
49 // NOLINTBEGIN
50 ::ll::TypedStorage<8, 8, ::IClientInstance&> mClient;
51 ::ll::TypedStorage<8, 8, ::IMinecraftEventing&> mMinecraftEventing;
52 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::Social::IUserManager>> mUserManager;
53 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IAppPlatform>> mAppPlatform;
54 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IThirdPartyServerRepository>> mThirdPartyServerRepository;
55 ::ll::TypedStorage<8, 8, ::ServerLocator&> mServerLocator;
56 ::ll::TypedStorage<8, 8, ::World::IServerURLResolver&> mServerURLResolver;
57 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mTaskGroup;
58 ::ll::TypedStorage<8, 8, ::INetworkGameConnector&> mNetworkGameConnector;
59 ::ll::TypedStorage<8, 8, ::World::ExternalServerWorldList&> mExternalServerWorldList;
60 ::ll::TypedStorage<8, 8, ::World::FriendServerWorldList&> mFriendServerWorldList;
61 ::ll::TypedStorage<8, 8, ::World::LanServerWorldList&> mLanServerWorldList;
62 ::ll::TypedStorage<8, 8, ::World::ThirdPartyWorldList&> mThirdPartyWorldList;
63 ::ll::TypedStorage<1, 1, bool> mIsEduMode;
64 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::GatheringManager>> mGatheringManager;
65 ::ll::TypedStorage<8, 64, ::std::function<::Bedrock::NonOwnerPointer<::Parties::IPartyProvider>()>>
66 mGetPartyProvider;
67 ::ll::TypedStorage<8, 8, ::OreUI::Router&> mRouter;
68 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mServerConnectionTime;
69 // NOLINTEND
70
71public:
72 // prevent constructor by default
73 ServerWorldJoiner& operator=(ServerWorldJoiner const&);
74 ServerWorldJoiner(ServerWorldJoiner const&);
75 ServerWorldJoiner();
76
77public:
78 // member functions
79 // NOLINTBEGIN
80 MCAPI ::Bedrock::Threading::Async<::World::JoinServerWorldResult> _joinExperienceWorld(
81 ::ExperienceJoinRequestInfo const& connectionData,
82 ::PlayerJoinWorldContext const& joinContext
83 );
84
85 MCAPI void _joinFriendWorld(
86 ::NetworkWorldInfo const& world,
87 ::std::function<void(::World::JoinServerWorldResult)> onCompleteCallback
88 );
89
90 MCAPI void _joinNetworkWorld(
91 ::NetworkWorldInfo& world,
92 ::World::ServerWorldJoiner::ServerType const serverType,
93 ::std::function<void(::std::deque<::std::unique_ptr<::ProgressHandler>>, bool)> onJoinServerCompleted,
94 ::std::function<void()> onJoinServerCancelled,
95 ::std::function<void(::World::JoinServerWorldResult)> onErrorCallback
96 );
97
98 MCAPI bool _validateInternetConnection(::Social::User& user) const;
99
100 MCAPI void joinExternalNetworkWorld(
101 ::std::string const& id,
102 ::std::function<void(::std::deque<::std::unique_ptr<::ProgressHandler>>, bool)> onJoinServerCompleted,
103 ::std::function<void(::World::JoinServerWorldResult)> onErrorCallback
104 );
105
106 MCAPI void joinExternalServer(
107 ::std::string const& server,
108 ushort port,
109 ::std::string const& externalServerName,
110 ::std::function<void(::World::JoinServerWorldResult)> onErrorCallback
111 );
112
113 MCAPI void joinFriendServerWorld(
114 ::Network::ServerID const& serverId,
115 ::std::function<void(::World::JoinServerWorldResult)> onCompleteCallback
116 );
117
118 MCAPI void joinLANServerWorld(
119 ::Network::ServerID const& serverId,
120 ::std::function<void(::std::unique_ptr<::ProgressHandler>)> onCompleteCallback,
121 ::std::function<void(::World::JoinServerWorldResult)> onErrorCallback
122 );
123 // NOLINTEND
124};
125
126} // namespace World
Definition GatheringManager.h:5
Definition IAppPlatform.h:15
Definition IClientInstance.h:5
Definition IMinecraftEventing.h:145
Definition INetworkGameConnector.h:5
Definition Router.h:7
Definition IPartyProvider.h:7
Definition ProgressHandler.h:5
Definition ServerLocator.h:20
Definition IUserManager.h:7
Definition User.h:7
Definition TaskGroup.h:61
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 ExperienceJoinRequestInfo.h:5
Definition NetworkWorldInfo.h:5
Definition ServerID.h:7
Definition PlayerJoinWorldContext.h:5