LeviLamina
Loading...
Searching...
No Matches
ItemStackNetManagerServer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/events/TextProcessingEventOrigin.h"
8#include "mc/util/CallbackToken.h"
9#include "mc/util/CallbackTokenContext.h"
10#include "mc/world/containers/ContainerEnumName.h"
11#include "mc/world/inventory/network/ItemStackNetManagerBase.h"
12#include "mc/world/inventory/network/TypedClientNetId.h"
13#include "mc/world/level/Tick.h"
14
15// auto generated forward declare list
16// clang-format off
22class ServerPlayer;
27// clang-format on
28
29class ItemStackNetManagerServer : public ::ItemStackNetManagerBase {
30public:
31 // ItemStackNetManagerServer inner types define
32 enum class TextFilterState : int {
33 None = 0,
34 Waiting = 1,
35 Timedout = 2,
36 };
37
38 using RetainScope = ::gsl::final_action<::std::function<void()>>;
39
40public:
41 // member variables
42 // NOLINTBEGIN
43 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ItemStackRequestActionHandler>> mRequestActionHandler;
44 ::ll::TypedStorage<1, 1, bool> mRetainSetItemStackNetIdVariants;
45 ::ll::TypedStorage<4, 4, ::ItemStackNetManagerServer::TextFilterState> mTextFilterState;
46 ::ll::TypedStorage<
47 8,
48 40,
49 ::std::
50 queue<::std::unique_ptr<::ItemStackRequestData>, ::std::deque<::std::unique_ptr<::ItemStackRequestData>>>>
51 mRequestsQueue;
52 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::TextFilteringProcessor>> mTextFilteringProcessor;
53 ::ll::TypedStorage<8, 8, ::Tick> mTextFilterRequestTimer;
54 ::ll::TypedStorage<8, 8, ::Tick const> mTextFilterRequestTimeout;
55 ::ll::TypedStorage<8, 16, ::CallbackToken> mTextFilterRequestToken;
56 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CallbackTokenContext<::std::function<void()>>>>
57 mOnContainerScreenCloseCB;
58 // NOLINTEND
59
60public:
61 // prevent constructor by default
62 ItemStackNetManagerServer();
63
64public:
65 // virtual functions
66 // NOLINTBEGIN
67 virtual ~ItemStackNetManagerServer() /*override*/;
68
69 virtual ::ItemStackRequestId getRequestId() const /*override*/;
70
71 virtual bool retainSetItemStackNetIdVariant() const /*override*/;
72
73 virtual bool allowInventoryTransactionManager() const /*override*/;
74
75 virtual void onContainerScreenOpen(::ContainerScreenContext const& screenContext) /*override*/;
76
77 virtual void _initScreen(::ItemStackNetManagerScreen& screen) /*override*/;
78 // NOLINTEND
79
80public:
81 // member functions
82 // NOLINTBEGIN
83 MCAPI ItemStackNetManagerServer(::ServerPlayer& serverPlayer, bool isEnabled);
84
85 MCAPI void _filterStrings(
86 ::ItemStackRequestId requestId,
87 ::std::vector<::std::string> const& stringsToFilter,
88 ::TextProcessingEventOrigin const& stringsToFilterOrigin
89 );
90
91 MCAPI void _handleLegacyTransactionRequest(
92 ::ItemStackLegacyRequestId const& legacyClientRequestId,
93 ::std::vector<::std::pair<::ContainerEnumName, ::std::vector<uchar>>> const& legacySetItemSlots
94 );
95
96 MCAPI void
97 _handleRequestData(::std::vector<::ItemStackResponseInfo>& responses, ::ItemStackRequestData const* requestData);
98
99 MCAPI void _processQueue();
100
101 MCAPI void _queueRequest(::std::unique_ptr<::ItemStackRequestData> request);
102
103 MCAPI void _queueRequests(::ItemStackRequestBatch const& requestBatch);
104
105 MCAPI void _sendResponsePacket(::std::vector<::ItemStackResponseInfo>&& responses);
106
107 MCAPI void _setTextFilterState(::ItemStackNetManagerServer::TextFilterState state);
108
109 MCAPI bool _tryFilterText(::ItemStackRequestData const* requestData);
110
111#ifdef LL_PLAT_C
112 MCAPI void handleRequest(
113 ::std::unique_ptr<::ItemStackRequestData> request,
115 );
116#endif
117
118 MCAPI ::CallbackToken tryCloseContainerScreen(::std::function<void()> onContainerScreenCloseCB);
119 // NOLINTEND
120
121public:
122 // constructor thunks
123 // NOLINTBEGIN
124 MCAPI void* $ctor(::ServerPlayer& serverPlayer, bool isEnabled);
125 // NOLINTEND
126
127public:
128 // destructor thunk
129 // NOLINTBEGIN
130 MCAPI void $dtor();
131 // NOLINTEND
132
133public:
134 // virtual function thunks
135 // NOLINTBEGIN
136 MCAPI ::ItemStackRequestId $getRequestId() const;
137
138 MCAPI bool $retainSetItemStackNetIdVariant() const;
139
140 MCAPI bool $allowInventoryTransactionManager() const;
141
142 MCFOLD void $onContainerScreenOpen(::ContainerScreenContext const& screenContext);
143
144 MCAPI void $_initScreen(::ItemStackNetManagerScreen& screen);
145
146
147 // NOLINTEND
148
149public:
150 // vftables
151 // NOLINTBEGIN
152 MCAPI static void** $vftable();
153 // NOLINTEND
154};
Definition NonOwnerPointer.h:9
Definition CallbackTokenContext.h:6
Definition ContainerScreenContext.h:17
static MCAPI void ** $vftable()
Definition ItemStackNetManagerScreen.h:9
Definition ItemStackRequestActionHandler.h:41
Definition ItemStackRequestBatch.h:14
Definition ItemStackRequestData.h:18
Definition ServerPlayer.h:68
Definition TextFilteringProcessor.h:18
Definition ItemStackLegacyRequestIdTag.h:5
Definition ItemStackRequestIdTag.h:5
Definition ItemStackResponseInfo.h:15