42class ItemStackRequestActionHandler {
53 enum class RemoveType :
int {
64 ::ll::TypedStorage<1, 1, ::ContainerEnumName const> mContainerName;
65 ::ll::TypedStorage<4, 4, ::ContainerRuntimeId const> mContainerRuntimeId;
66 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::ItemStackLegacyRequestId, ::ItemStackNetId>>> mSlots;
74 ::ll::TypedStorage<1, 1, uchar> mSlot;
75 ::ll::TypedStorage<4, 4, ::ItemStackNetId> mServerNetId;
83 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mExpireTime;
89 ::std::unordered_map<uchar, ::ItemStackRequestActionHandler::RequestSlotIdAssignment>>>
98 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ItemStackRequestActionCraftHandler>> mCraftRequestHandler;
99 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScreenHandlerBase>> mScreenHandler;
101 TypedStorage<8, 64, ::std::unordered_map<::ContainerRuntimeId, ::std::shared_ptr<::SimpleSparseContainer>>>
102 mRuntimeIdSparseContainerMap;
106 ::std::unordered_map<::ItemStackRequestId, ::ItemStackRequestActionHandler::RequestIdAssignments>>
114 ::ll::TypedStorage<8, 8, ::Player&> mPlayer;
115 ::ll::TypedStorage<8, 8, ::ItemStackNetManagerServer&> mItemStackNetManager;
116 ::ll::TypedStorage<4, 4, ::ContainerRuntimeId const> mPlayerArmorContainerRuntimeId;
117 ::ll::TypedStorage<4, 4, ::ContainerRuntimeId const> mPlayerHandContainerRuntimeId;
118 ::ll::TypedStorage<4, 4, ::ContainerRuntimeId const> mPlayerUIContainerRuntimeId;
119 ::ll::TypedStorage<8, 96, ::std::array<::ItemStackRequestActionHandler::PlayerLegacyRequestSlotIdAssignment, 3>>
120 mPlayerLegacyRequests;
121 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastTime;
122 ::ll::TypedStorage<8, 24, ::WeakRef<::EntityContext>> mCurrentRequestScreen;
123 ::ll::TypedStorage<8, 16, ::ItemStackRequestId> mClientRequestId;
124 ::ll::TypedStorage<8, 24, ::std::vector<::ItemStackResponseContainerInfo>> mResponseContainerInfos;
125 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::std::vector<::std::string>>> mFilteredStrings;
126 ::ll::TypedStorage<8, 16, ::std::map<::std::string, ::std::vector<::std::string>>> mStrings;
127 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContainerScreenValidation>> mScreenValidation;
132 ItemStackRequestActionHandler& operator=(ItemStackRequestActionHandler
const&);
133 ItemStackRequestActionHandler(ItemStackRequestActionHandler
const&);
134 ItemStackRequestActionHandler();
144 MCAPI
void _cacheLegacySlotIdAssignment(
145 ::ContainerEnumName containerName,
147 ::ItemStackLegacyRequestId
const& legacyClientRequestId,
148 ::ItemStackNetId
const& serverNetId
152 MCAPI
void _cacheSlotIdAssigment(
153 ::ContainerRuntimeId
const& containerRuntimeId,
156 ::ItemStackNetId
const& serverNetId
159 MCAPI ::std::shared_ptr<::SimpleSparseContainer>
168 MCAPI ::ItemStackNetResult _handleRemove(
171 ::ItemStackRequestActionHandler::RemoveType removeType
175 MCAPI ::ItemStackNetResult _handleTransfer(
184 MCAPI ::ItemStackNetResult _handleTransfer(
186 bool const isSrcHintSlot,
187 bool const isDstHintSlot,
196 MCAPI ::ItemStackRequestActionHandler::ScreenData* _tryGetCurrentScreenData()
const;
198 MCAPI ::ItemStackRequestHandlerSlotInfo
202 MCAPI
void addFilteredStrings(::ItemStackRequestId requestId, ::std::vector<::std::string> filteredStrings);
205 MCAPI
void addStrings(::ItemStackRequestId requestId, ::std::vector<::std::string> strings);
210 MCAPI ::std::tuple<::ItemStackNetResult, ::std::vector<::ItemStackResponseContainerInfo>>
211 endRequest(::ItemStackNetResult currentResult);
213 MCAPI ::std::vector<::std::string>
const& getFilteredStrings(::ItemStackRequestId requestId)
const;
216 MCAPI ::ContainerScreenContext
const& getScreenContext()
const;
219 MCAPI ::std::vector<::std::string>
const& getStrings(::ItemStackRequestId requestId)
const;
223 MCAPI
bool hasFilteredStrings(::ItemStackRequestId requestId)
const;
226 MCAPI
void normalTick();
228 MCAPI ::std::vector<::ItemInstance>
229 tryCraft(::std::unique_ptr<::ContainerValidationCraftInputs> craftInputs, uchar numCrafts);
231 MCAPI ~ItemStackRequestActionHandler();
Definition ContainerScreenContext.h:16
Definition EntityContext.h:15