LeviLamina
Loading...
Searching...
No Matches
CommandParameterData.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/typeid_t.h"
7#include "mc/server/commands/CommandParameterDataType.h"
8#include "mc/server/commands/CommandParameterOption.h"
9#include "mc/server/commands/CommandRegistry.h"
10
11// auto generated forward declare list
12// clang-format off
13class Command;
14class CommandOrigin;
15class CommandRegistry;
16// clang-format on
17
18class CommandParameterData {
19public:
20 // CommandParameterData inner types define
21 using CustomStorageGetFn = void* (*)(::Command*, int);
22
23 using CustomStorageIsSetFn = bool* (*)(::Command*, int);
24
25 using ParseFunction = bool (CommandRegistry::*)(
26 void*,
28 ::CommandOrigin const&,
29 int,
30 ::std::string&,
31 ::std::vector<::std::string>&
32 ) const;
33
34public:
35 // member variables
36 // NOLINTBEGIN
38 ParseFunction mParse;
39 ::std::string mName;
40 char const* mEnumNameOrPostfix;
41 CommandRegistry::Symbol mEnumOrPostfixSymbol;
42 char const* mChainedSubcommand;
43 CommandRegistry::Symbol mChainedSubcommandSymbol;
44 ::CommandParameterDataType mParamType;
45 int mOffset;
46 int mSetOffset;
47 bool mIsOptional;
48 ::CommandParameterOption mOptions;
49 ::ll::TypedStorage<8, 8, void* (*)(::Command*, int)> mValueGetFn{};
50 ::ll::TypedStorage<8, 8, bool* (*)(::Command*, int)> mValueIsSetFn{};
51 // NOLINTEND
52
53public:
54 void addOptions(::CommandParameterOption option) {
55 using T = std::underlying_type_t<::CommandParameterOption>;
56 mOptions = static_cast<::CommandParameterOption>((T)option | (T)mOptions);
57 }
58
59 CommandParameterData() = default;
60
61 LLNDAPI CommandParameterData(
63 ParseFunction parser,
64 std::string name,
65 ::CommandParameterDataType type,
66 char const* enumNameOrPostfix,
67 char const* subChain,
68 int offset,
69 bool optional,
70 int flagOffset,
71 CommandParameterOption options
72 );
73
74 LLNDAPI bool operator==(CommandParameterData const& other) const;
75
76 CommandParameterData(CommandParameterData const&) = default;
77 CommandParameterData& operator=(CommandParameterData const&) = default;
78
79public:
80 // destructor thunk
81 // NOLINTBEGIN
82 MCFOLD void $dtor();
83 // NOLINTEND
84};
Definition typeid_t.h:25
Definition CommandOrigin.h:32
Definition CommandRegistry.h:225
Definition CommandRegistry.h:50
Definition Command.h:17
Definition CommandRegistry.h:371