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
17class BlockPos;
19class ItemStack;
24class ServerPlayer;
30// clang-format on
31
32class ItemStackNetManagerServer : public ::ItemStackNetManagerBase {
33public:
34 // ItemStackNetManagerServer inner types define
35 enum class TextFilterState : int {
36 None = 0,
37 Waiting = 1,
38 Timedout = 2,
39 };
40
41 using RetainScope = ::gsl::final_action<::std::function<void()>>;
42
43public:
44 // member variables
45 // NOLINTBEGIN
46 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ItemStackRequestActionHandler>> mRequestActionHandler;
47 ::ll::TypedStorage<1, 1, bool> mRetainSetItemStackNetIdVariants;
48 ::ll::TypedStorage<4, 4, ::ItemStackNetManagerServer::TextFilterState> mTextFilterState;
49 ::ll::TypedStorage<
50 8,
51 40,
52 ::std::
53 queue<::std::unique_ptr<::ItemStackRequestData>, ::std::deque<::std::unique_ptr<::ItemStackRequestData>>>>
54 mRequestsQueue;
55 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::TextFilteringProcessor>> mTextFilteringProcessor;
56 ::ll::TypedStorage<8, 8, ::Tick> mTextFilterRequestTimer;
57 ::ll::TypedStorage<8, 8, ::Tick const> mTextFilterRequestTimeout;
58 ::ll::TypedStorage<8, 16, ::CallbackToken> mTextFilterRequestToken;
59 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CallbackTokenContext<::std::function<void()>>>>
60 mOnContainerScreenCloseCB;
61 // NOLINTEND
62
63public:
64 // prevent constructor by default
65 ItemStackNetManagerServer();
66
67public:
68 // virtual functions
69 // NOLINTBEGIN
70 virtual ~ItemStackNetManagerServer() /*override*/;
71
72 virtual ::ItemStackRequestId getRequestId() const /*override*/;
73
74 virtual bool retainSetItemStackNetIdVariant() const /*override*/;
75
76 virtual bool allowInventoryTransactionManager() const /*override*/;
77
78 virtual void onContainerScreenOpen(::ContainerScreenContext const& screenContext) /*override*/;
79
80 virtual void _initScreen(::ItemStackNetManagerScreen& screen) /*override*/;
81 // NOLINTEND
82
83public:
84 // member functions
85 // NOLINTBEGIN
86 MCAPI ItemStackNetManagerServer(::ServerPlayer& serverPlayer, bool isEnabled);
87
88 MCAPI void _filterStrings(
89 ::ItemStackRequestId requestId,
90 ::std::vector<::std::string> const& stringsToFilter,
91 ::TextProcessingEventOrigin const& stringsToFilterOrigin
92 );
93
94 MCAPI void _handleLegacyTransactionRequest(
95 ::ItemStackLegacyRequestId const& legacyClientRequestId,
96 ::std::vector<::std::pair<::ContainerEnumName, ::std::vector<uchar>>> const& legacySetItemSlots
97 );
98
99 MCAPI void
100 _handleRequestData(::std::vector<::ItemStackResponseInfo>& responses, ::ItemStackRequestData const* requestData);
101
102 MCAPI void _processQueue();
103
104 MCAPI void _queueRequest(::std::unique_ptr<::ItemStackRequestData> request);
105
106 MCAPI void _queueRequests(::ItemStackRequestBatch const& requestBatch);
107
108 MCAPI ::gsl::final_action<::std::function<void()>> _retainSetItemStackNetIdVariantScope();
109
110 MCAPI void _sendResponsePacket(::std::vector<::ItemStackResponseInfo>&& responses);
111
112 MCAPI void _setTextFilterState(::ItemStackNetManagerServer::TextFilterState state);
113
114 MCAPI bool _tryFilterText(::ItemStackRequestData const* requestData);
115
116 MCAPI void handleRequest(
117 ::std::unique_ptr<::ItemStackRequestData> request,
119 );
120
121 MCAPI void handleRequestBatch(
122 ::ItemStackRequestBatch const& requestBatch,
124 );
125
126 MCAPI bool itemMatches(::ItemStackRequestSlotInfo const& slotInfo, ::ItemStack const& expectedItem);
127
128 MCAPI void normalTick();
129
130 MCAPI void startCrafting(bool workbench, ::BlockPos const& pos);
131
132 MCAPI ::CallbackToken tryCloseContainerScreen(::std::function<void()> onContainerScreenCloseCB);
133 // NOLINTEND
134
135public:
136 // constructor thunks
137 // NOLINTBEGIN
138 MCAPI void* $ctor(::ServerPlayer& serverPlayer, bool isEnabled);
139 // NOLINTEND
140
141public:
142 // destructor thunk
143 // NOLINTBEGIN
144 MCAPI void $dtor();
145 // NOLINTEND
146
147public:
148 // virtual function thunks
149 // NOLINTBEGIN
150 MCAPI ::ItemStackRequestId $getRequestId() const;
151
152 MCAPI bool $retainSetItemStackNetIdVariant() const;
153
154 MCAPI bool $allowInventoryTransactionManager() const;
155
156 MCAPI void $onContainerScreenOpen(::ContainerScreenContext const& screenContext);
157
158 MCAPI void $_initScreen(::ItemStackNetManagerScreen& screen);
159
160
161 // NOLINTEND
162
163public:
164 // vftables
165 // NOLINTBEGIN
166 MCAPI static void** $vftable();
167 // NOLINTEND
168};
Definition NonOwnerPointer.h:9
Definition BlockPos.h:21
Definition CallbackTokenContext.h:6
Definition ContainerScreenContext.h:19
static MCAPI void ** $vftable()
Definition ItemStackNetManagerScreen.h:9
Definition ItemStackRequestActionHandler.h:41
Definition ItemStackRequestBatch.h:15
Definition ItemStackRequestData.h:20
Definition ItemStack.h:35
Definition ServerPlayer.h:74
Definition TextFilteringProcessor.h:20
Definition ItemStackLegacyRequestIdTag.h:5
Definition ItemStackRequestIdTag.h:5
Definition ItemStackRequestSlotInfo.h:11
Definition ItemStackResponseInfo.h:15