51class CommandRegistry {
79 using ParseFunction = bool (::CommandRegistry::*)(
85 ::std::vector<::std::string>&
88 enum class HardNonTerminal :
int {
94 WildcardInt = 1048581,
96 CompareOperator = 1048583,
98 StandaloneSelection = 1048585,
99 WildcardSelection = 1048586,
100 NonIdSelector = 1048587,
102 ScoresArgs = 1048589,
103 ScoreSelectParam = 1048590,
104 ScoreSelector = 1048591,
105 TagSelector = 1048592,
107 FilePathVal = 1048594,
108 FilePathCont = 1048595,
109 IntegerRangeVal = 1048596,
110 IntegerRangePostVal = 1048597,
111 IntegerRange = 1048598,
112 FullIntegerRange = 1048599,
113 RationalRangeVal = 1048600,
114 RationalRangePostVal = 1048601,
115 RationalRange = 1048602,
116 FullRationalRange = 1048603,
125 HasPermissionArg = 1048612,
126 HasPermissionArgs = 1048613,
127 HasPermissionSelector = 1048614,
128 HasPermissionElement = 1048615,
129 HasPermissionElements = 1048616,
131 HasItemElement = 1048618,
132 HasItemElements = 1048619,
133 HasItemArg = 1048620,
134 HasItemArgs = 1048621,
135 HasItemSelector = 1048622,
136 EquipmentSlotEnum = 1048623,
137 PropertyValue = 1048624,
138 HasPropertyParamValue = 1048625,
139 HasPropertyParamEnumValue = 1048626,
140 HasPropertyArg = 1048627,
141 HasPropertyArgs = 1048628,
142 HasPropertyElement = 1048629,
143 HasPropertyElements = 1048630,
144 HasPropertySelector = 1048631,
150 CoordXFloat = 1048637,
151 CoordYFloat = 1048638,
152 CoordZFloat = 1048639,
154 PositionFloat = 1048641,
155 MessageExp = 1048642,
157 MessageRoot = 1048644,
158 PostSelector = 1048645,
160 RawTextCont = 1048647,
163 JsonObject = 1048650,
164 JsonObjectFields = 1048651,
165 JsonObjectCont = 1048652,
167 JsonArrayValues = 1048654,
168 JsonArrayCont = 1048655,
170 BlockStateKey = 1048657,
171 BlockStateValue = 1048658,
172 BlockStateValues = 1048659,
173 BlockStateArray = 1048660,
174 BlockStateArrayCont = 1048661,
175 ClockTimeMarkerName = 1048662,
177 SlashCommand = 1048664,
178 CodeBuilderArg = 1048665,
179 CodeBuilderArgs = 1048666,
180 CodeBuilderSelectParam = 1048667,
181 CodeBuilderSelector = 1048668,
184 struct RegistryState {
188 ::ll::TypedStorage<4, 4, uint> signatureCount;
189 ::ll::TypedStorage<4, 4, uint> enumValueCount;
190 ::ll::TypedStorage<4, 4, uint> postfixCount;
191 ::ll::TypedStorage<4, 4, uint> enumCount;
192 ::ll::TypedStorage<4, 4, uint> enumLookupCount;
193 ::ll::TypedStorage<4, 4, uint> typeLookupCount;
194 ::ll::TypedStorage<4, 4, uint> factorizationCount;
195 ::ll::TypedStorage<4, 4, uint> optionalCount;
196 ::ll::TypedStorage<4, 4, uint> ruleCount;
197 ::ll::TypedStorage<4, 4, uint> softEnumCount;
198 ::ll::TypedStorage<4, 4, uint> constraintCount;
199 ::ll::TypedStorage<4, 4, uint> chainedSubcommandCount;
200 ::ll::TypedStorage<4, 4, uint> chainedSubcommandValueCount;
201 ::ll::TypedStorage<8, 24, ::std::vector<uint>> enumValuesCount;
202 ::ll::TypedStorage<8, 24, ::std::vector<uint>> constrainedValueCount;
203 ::ll::TypedStorage<8, 24, ::std::vector<uint>> softEnumValuesCount;
210 RegistryState& operator=(RegistryState
const&);
221 MCAPI ~RegistryState();
244 ::std::vector<::std::string> mValues;
249 SoftEnum() =
default;
254 MCAPI SoftEnum(::std::string
const& name, ::std::vector<::std::string> values);
260 MCAPI
void* $ctor(::std::string
const& name, ::std::vector<::std::string> values);
268 static int const NonTerminalBit = 0x100000;
269 static int const EnumBit = 0x200000;
270 static int const OptionalBit = 0x400000;
271 static int const FactorizationBit = 0x800000;
272 static int const PostfixBit = 0x1000000;
273 static int const EnumValueBit = 0x2000000;
274 static int const SoftEnumBit = 0x4000000;
278 Symbol(
int val) : mValue(val) {}
281 Symbol(Symbol
const& other) : mValue(other.mValue) {}
283 Symbol(HardNonTerminal data) : mValue(
static_cast<int>(data)) {}
285 Symbol(CommandLexer::TokenType data) : mValue(
static_cast<int>(data)) {}
287 Symbol& operator=(Symbol
const& other) {
288 mValue = other.mValue;
292 [[nodiscard]]
inline bool operator==(Symbol
const& other)
const {
return mValue == other.mValue; }
294 uint64 toIndex()
const {
return mValue & 0xffffffffe00fffffull; }
301 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> mValue;
302 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> mEnum;
303 ::ll::TypedStorage<8, 24, ::std::vector<uchar>> mConstraints;
311 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> commandSymbol;
315 struct LexicalToken {
323 ::CommandRegistry
const& mRegistry;
328 LexicalToken& operator=(LexicalToken
const&);
329 LexicalToken(LexicalToken
const&);
343 ::ll::TypedStorage<4, 4, int> parameterCount;
344 ::ll::TypedStorage<4, 4, int> followingRuleIndex;
345 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> paramSymbol;
359 ::std::vector<::CommandParameterData> params;
362 ::std::vector<::CommandRegistry::Symbol> paramsSymbol;
370 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> x;
371 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> y;
372 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> z;
373 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> dx;
374 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> dy;
375 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> dz;
376 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> r;
377 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> rm;
378 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> rx;
379 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> rxm;
380 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> ry;
381 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> rym;
382 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> l;
383 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> lm;
384 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> c;
385 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> m;
386 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> name;
387 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> type;
388 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> family;
389 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> score;
390 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> tag;
391 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> hasitem;
392 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> haspermission;
393 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> hasproperty;
394 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> codebuilder;
402 ::std::unique_ptr<::CommandRegistry::ParseToken> child;
403 ::std::unique_ptr<::CommandRegistry::ParseToken> next;
413 MCAPI ::std::string toString()
const;
432 ::std::vector<::std::pair<uint64, uint>> values;
455 ::std::vector<::std::pair<uint64, uint64>> values;
478 bool (CommandRegistry::*)(
484 ::std::vector<::std::string>&
487 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> symbol;
495 ::ll::TypedStorage<4, 4, ::CommandRegistry::Symbol> nonTerminal;
501 ::ll::TypedStorage<8, 24, ::std::vector<::CommandRegistry::Symbol>> derivation;
502 ::ll::TypedStorage<4, 8, ::CommandVersion> versions;
507 ParseRule& operator=(ParseRule
const&);
508 ParseRule(ParseRule
const&);
522 ::ll::TypedStorage<1, 1, bool> mIsValid;
523 ::ll::TypedStorage<8, 24, ::std::vector<::CommandRegistry::Symbol>> mConstrainedParams;
524 ::ll::TypedStorage<8, 32, ::std::string> mSoftEnumText;
525 ::ll::TypedStorage<8, 32, ::std::string> mSoftEnumEscapeCharExceptions;
526 ::ll::TypedStorage<8, 16, ::std::set<::CommandRegistry::Symbol>> mAlreadyCompletedSymbols;
556 ::entt::dense_set<::CommandRegistry::Symbol, ::CommandRegistry::SymbolHasher, ::std::equal_to<void>>>
561 ::entt::dense_set<::CommandRegistry::Symbol, ::CommandRegistry::SymbolHasher, ::std::equal_to<void>>>
565 ::std::pair<::CommandRegistry::Symbol, ::CommandRegistry::Symbol>,
568 ::std::equal_to<void>>
570 ::std::chrono::nanoseconds buildDuration;
591 ::std::string description;
592 ::std::vector<::CommandRegistry::Overload> overloads;
593 ::std::vector<uint> chainedSubcommandIndexes;
594 ::CommandPermissionLevel permissionLevel;
599 int firstFactorization;
613 ::std::string
const& name_,
614 char const* description_,
615 ::CommandPermissionLevel level_,
618 uint64 initialRuleCount
628 ::std::string
const& name_,
629 char const* description_,
630 ::CommandPermissionLevel level_,
633 uint64 initialRuleCount
648 ::ll::TypedStorage<8, 8, ::CommandRegistry const&> mRegistry;
649 ::ll::TypedStorage<8, 8, ::CommandRegistry::ParseTable const*> mParseTable;
650 ::ll::TypedStorage<8, 40, ::std::deque<::std::pair<::CommandRegistry::Symbol, ::CommandRegistry::ParseToken*>>>
652 ::ll::TypedStorage<8, 32, ::CommandRegistry::LexicalToken> mNext;
653 ::ll::TypedStorage<8, 32, ::std::string> mInput;
654 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CommandRegistry::ParseToken>> mRoot;
655 ::ll::TypedStorage<8, 32, ::std::string> mError;
656 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mErrorParams;
657 ::ll::TypedStorage<4, 4, int> mVersion;
658 ::ll::TypedStorage<1, 1, bool> mGenerateParams;
659 ::ll::TypedStorage<1, 1, bool> mBreakAtEnd;
664 Parser& operator=(Parser
const&);
665 Parser(Parser
const&);
671 MCAPI Parser(::CommandRegistry
const& registry,
int version);
673 MCAPI ::entt::internal::dense_map_iterator<::entt::internal::dense_map_node<
674 ::std::pair<::CommandRegistry::Symbol, ::CommandRegistry::Symbol>,
676 _findParsePrediction(
681 MCAPI
bool _parse(::std::string
const& in);
683 MCAPI ::std::unique_ptr<::Command> createCommand(
::CommandOrigin const& origin);
685 MCAPI ::std::unique_ptr<::CommandSelector<::Actor>>
686 createSelector(::std::string
const& selectorString,
::CommandOrigin const& origin);
688 MCFOLD ::std::string
const& getErrorMessage()
const;
690 MCAPI ::std::vector<::std::string> getErrorParams()
const;
692 MCAPI
bool parseCommand(::std::string
const& in);
694 MCAPI
bool parseSelector(::std::string
const& in);
702 MCAPI
void* $ctor(::CommandRegistry
const& registry,
int version);
712 using ChainedSubcommandConversionFunction = ::std::function<void(
void*, uint64)>;
714 using ChainedSubcommandID = uint;
716 using ChainedSubcommandValueID = uint64;
718 using CommandOverrideFunctor =
719 ::std::function<void(::std::string
const&,
::CommandFlag&, ::CommandPermissionLevel&)>;
723 using ConstrainedValueID = uint;
725 using ConstrainedValueLookupKey = ::std::pair<uint64, uint>;
727 using CustomStorageGetFn =
void* (*)(
::Command*,
int);
729 using CustomStorageIsSetFn =
bool* (*)(
::Command*,
int);
731 using EnumConversionFunction = ::std::function<void(
void*, uint64)>;
735 using EnumValueID = uint64;
737 using HardTerminal = ::CommandLexer::TokenType;
739 using ParamVisitCallback = ::std::function<
742 using ParseMap = ::std::map<
744 ::entt::dense_set<::CommandRegistry::Symbol, ::CommandRegistry::SymbolHasher, ::std::equal_to<void>>>;
746 using ParseTableMap = ::std::map<uint, ::CommandRegistry::ParseTable>;
748 using PredictTable = ::entt::dense_map<
749 ::std::pair<::CommandRegistry::Symbol, ::CommandRegistry::Symbol>,
752 ::std::equal_to<void>>;
754 using ProcessFunction =
757 using RuleIndex = int;
759 using ScoreboardScoreAccessor = ::std::function<int(
bool&, ::std::string
const&,
::Actor const&)>;
761 using SemanticConstraintID = uchar;
763 using SoftEnumID = uint;
768 ::entt::dense_set<::CommandRegistry::Symbol, ::CommandRegistry::SymbolHasher, ::std::equal_to<void>>;
770 using SymbolVector = ::std::vector<::CommandRegistry::Symbol>;
774 using ValueTypeID = uint64;
779 ::std::function<void(
::Packet const&)> mNetworkUpdateCallback;
780 ScoreboardScoreAccessor mGetScoreForObjective;
782 ::std::vector<::CommandRegistry::ParseRule> mRules;
783 ::std::map<uint, ::CommandRegistry::ParseTable> mParseTables;
784 ::std::vector<::CommandRegistry::OptionalParameterChain> mOptionals;
785 ::std::vector<::std::string> mEnumValues;
786 ::std::vector<::CommandRegistry::Enum> mEnums;
787 ::std::vector<::std::string> mChainedSubcommandValues;
788 ::std::vector<::CommandRegistry::ChainedSubcommand> mChainedSubcommands;
789 ::std::vector<::CommandRegistry::Factorization> mFactorizations;
790 ::std::vector<::std::string> mPostfixes;
791 ::std::map<::std::string, uint> mEnumLookup;
792 ::std::map<::std::string, uint64> mEnumValueLookup;
793 ::std::map<::std::string, uint> mChainedSubcommandLookup;
794 ::std::map<::std::string, uint64> mChainedSubcommandValueLookup;
795 ::std::vector<::CommandRegistry::Symbol> mCommandSymbols;
796 ::std::map<::std::string, ::CommandRegistry::Signature> mSignatures;
797 ::std::map<::Bedrock::typeid_t<::CommandRegistry>,
int> mTypeLookup;
798 ::std::map<::std::string, ::std::string> mAliases;
799 ::std::vector<::SemanticConstraint> mSemanticConstraints;
800 ::std::map<::SemanticConstraint, uchar> mSemanticConstraintLookup;
801 ::std::vector<::CommandRegistry::ConstrainedValue> mConstrainedValues;
802 ::std::map<::std::pair<uint64, uint>, uint> mConstrainedValueLookup;
803 ::std::vector<::CommandRegistry::SoftEnum> mSoftEnums;
804 ::std::map<::std::string, uint> mSoftEnumLookup;
805 ::std::vector<::CommandRegistry::RegistryState> mStateStack;
807 ::std::unordered_set<int> mSkipOnEpsAutocompleteSymbols;
808 ::std::unordered_set<int> mAllowEmptySymbols;
809 CommandOverrideFunctor mCommandOverrideFunctor;
810 ::std::unique_ptr<::CommandRunStats> mCommandRunStats;
815 ::std::string
const&,
816 ::std::unordered_map<::mce::UUID, ::PlayerListEntry>
const&,
819 mAutoCompletePlayerMention;
829 std::vector<std::string>& errorParams
832 template <
class E,
class C>
839 std::vector<std::string>& errorParams
842 uint64 getEnumData(
ParseToken const& token)
const {
843 auto& values = mEnums[token.type.toIndex()].values;
844 return std::lower_bound(
847 token.child->type.toIndex(),
848 [](
auto& pair,
auto& child) { return pair.first < child; }
861 MCAPI ::CommandRegistry::Symbol _addChainedSubcommandValuesInternal(
862 ::std::string
const& name,
863 ::std::vector<::std::pair<::std::string, uint>>
const& strings,
871 ::std::vector<::std::string>&
876 MCAPI ::CommandRegistry::Symbol _addChainedSubcommandValuesInternal(
877 ::std::string
const& name,
878 ::std::vector<::std::pair<uint64, uint>>
const& values,
886 ::std::vector<::std::string>&
891 MCAPI
void _addEnumValueConstraintsInternal(
892 ::std::vector<::std::pair<uint64, uint>>
const& constrainedValueKeys,
893 ::SemanticConstraint constraints
896 MCAPI
void _addEnumValueConstraintsToExisting(uint constrainedValueId, ::SemanticConstraint constraints);
898 MCAPI ::CommandRegistry::Symbol _addEnumValuesInternal(
899 ::std::string
const& name,
900 ::std::vector<::std::pair<::std::string, uint64>>
const& strings,
908 ::std::vector<::std::string>&
912 MCAPI ::CommandRegistry::Symbol _addEnumValuesInternal(
913 ::std::string
const& name,
914 ::std::vector<::std::pair<uint64, uint64>>
const& values,
922 ::std::vector<::std::string>&
926 MCAPI ::CommandRegistry::Symbol _addFunctionSoftEnum();
928 MCAPI ::std::unique_ptr<::CommandSelector<::Actor>> _createSelector(
932 ::std::string& error,
933 ::std::vector<::std::string>& errorParams
938 MCAPI
bool _matchesEnumConstraintsSet(
942 ::SemanticConstraint requiredConstraints
946 MCAPI ::std::vector<::CommandRegistry::Symbol> _reconstructParseStack(
951 MCAPI ::std::vector<::CommandRegistry::Symbol> _reconstructParseStack(
952 ::std::vector<::CommandParameterData>
const& params,
959 MCAPI
void addChainedSubcommandValuesToExisting(uint index, ::std::vector<::std::pair<uint64, uint>>
const& values);
961 MCAPI
void addEnumValueConstraints(
962 ::std::string
const& enumName,
963 ::std::vector<::std::string>
const& values,
964 ::SemanticConstraint constraints
967 MCAPI
int addEnumValues(::std::string
const& name, ::std::vector<::std::string>
const& values);
969 MCAPI
void addEnumValuesToExisting(uint index, ::std::vector<::std::pair<uint64, uint64>>
const& values);
971 MCAPI ::CommandRegistry::Symbol addPostfix(::std::string
const& name);
975 ::std::vector<::CommandRegistry::Symbol> derivation,
981 MCAPI
void addSemanticConstraint(::SemanticConstraint constraintType);
983 MCAPI
int addSoftEnum(::std::string
const& name, ::std::vector<::std::string> values);
985 MCAPI
void addSoftEnumValues(::std::string
const& enumName, ::std::vector<::std::string> values);
987 MCAPI ::CommandRegistry::Symbol addSoftTerminal(::std::string
const& name);
990 MCAPI
void autoComplete(
992 ::std::string
const& cmdLine,
993 ::std::string
const& partialMatch,
1000 MCAPI
void autoCompleteCommand(
1001 ::std::string
const& partialMatch,
1009 MCAPI
void buildFollowSet(
1013 ::std::set<::CommandRegistry::Symbol>& workingSet
1016 MCAPI ::CommandRegistry::Symbol buildOptionalRuleChain(
1018 ::std::vector<::CommandParameterData>
const& params,
1019 ::std::vector<::CommandRegistry::Symbol>
const& symbols
1022 MCAPI ::CommandRegistry::Symbol buildOptionalRuleChain(
1024 ::std::vector<::CommandParameterData>
const& params,
1029 MCAPI
void buildParseTable(uint version)
const;
1033 MCAPI ::CommandRegistry::Symbol buildRules(
1035 ::std::vector<::gsl::not_null<::CommandRegistry::Overload*>>
const& overloads,
1043 MCAPI
bool canCommandBeUsed(
1044 ::std::string
const& commandLine,
1045 ::CommandPermissionLevel
const& permissionLevel,
1051 MCAPI
bool checkOriginCommandFlags(
1054 ::CommandPermissionLevel permissionLevel
1057 MCAPI ::std::unique_ptr<::Command> createCommand(
1061 ::std::string& error,
1062 ::std::vector<::std::string>& errorParams
1069 MCAPI ::std::string describe(
1071 ::std::string
const& overload,
1078 MCAPI
bool enabledInEditor(::std::string
const& nameIn)
const;
1080 MCAPI
void finalizeChainedSubcommandOverloadRules(
char const* command);
1082 MCFOLD ::CommandRegistry::Signature
const* findCommand(::std::string
const& name)
const;
1084 MCFOLD ::CommandRegistry::Signature* findCommand(::std::string
const& name);
1086 MCAPI ::CommandRegistry::Symbol findIdentifierInfo(::std::string
const& name)
const;
1088 MCAPI ::CommandRegistry::Symbol findPostfix(::std::string
const& input)
const;
1090 MCAPI
void fireCommandParseTableTelemetry(
::IMinecraftEventing const& eventing,
bool isServer)
const;
1094 MCAPI ::Json::Value generateDocumentationMetadata(
bool generateInternalMetadata)
const;
1096 MCAPI ::std::vector<::std::string> getAliases(::std::string
const& command)
const;
1098 MCAPI ::std::vector<::std::string> getAlphabeticalLookup(
::CommandOrigin const& origin)
const;
1101 MCAPI ::std::unique_ptr<::AutoCompleteInformation> getAutoCompleteOptions(
1103 ::std::string
const& _cmdLine,
1104 uint cursorPositionUnsafe
1108 MCAPI ::std::string getCommandName(::std::string
const& commandLine)
const;
1110 MCAPI ::CommandSyntaxInformation
1111 getCommandOverloadSyntaxInformation(
::CommandOrigin const& origin, ::std::string
const& commandName)
const;
1113 MCAPI ::CommandRunStats& getCommandRunStats()
const;
1115 MCAPI ::CommandStatus getCommandStatus(::std::string
const& nameIn)
const;
1120 MCAPI ::CommandSyntaxInformation getOverloadSyntaxInformation(
1122 ::std::string
const& cmdLine,
1126 MCAPI
bool hasCommands()
const;
1128 MCAPI
bool hasState()
const;
1131 MCAPI
bool isCommandOfType(::std::string
const& nameIn, ::CommandTypeFlag commandType)
const;
1135 MCAPI
bool isValidCommand(::std::string
const& commandName)
const;
1146 MCAPI ::std::string parsePartialCommand(
1148 ::std::string
const& _cmdLine,
1149 uint cursorPosition,
1154 MCAPI
bool parseSelector(
1160 ::std::vector<::std::string>&
1163 MCAPI
bool parseSelector(
1168 ::std::string& error,
1169 ::std::vector<::std::string>& errorParams,
1174 MCAPI
void popState();
1176 MCAPI
void pushState();
1179 MCAPI
void registerAlias(::std::string name, ::std::string alias);
1181 MCAPI
void registerCommand(
1182 ::std::string
const& name,
1183 char const* description,
1184 ::CommandPermissionLevel requirement,
1189 MCAPI
void registerOverload(
1190 char const* command,
1191 ::CommandVersion version,
1192 ::std::function<::std::unique_ptr<::Command>()> allocFn,
1193 ::std::vector<::CommandParameterData> params
1196 MCAPI
void registerOverloadInternal(::CommandRegistry::Signature& signature, ::CommandRegistry::Overload& overload);
1198 MCAPI
void removeSoftEnumValues(::std::string
const& enumName, ::std::vector<::std::string> values);
1201 MCAPI
bool requiresCheatsEnabled(::std::string
const& nameIn)
const;
1204 MCAPI ::AvailableCommandsPacket serializeAvailableCommands()
const;
1206 MCAPI
void setCommandRegistrationOverride(CommandOverrideFunctor functor);
1208 MCAPI
void setScoreCallback(::std::function<
int(
bool&, ::std::string
const&, ::Actor
const&)> callback);
1210 MCAPI
void setSoftEnumValues(::std::string
const& enumName, ::std::vector<::std::string> values);
1212 MCAPI
void setupChainedSubcommandOverloadRules(::CommandRegistry::Signature& signature);
1214 MCAPI
void setupOverloadRules(::CommandRegistry::Signature& signature);
1216 MCAPI ::std::string symbolToString(::CommandRegistry::Symbol symbol)
const;
1218 MCAPI ~CommandRegistry();
1225 MCAPI static ::BlockType
const* _getBlockFromCmdParameters(::std::string
const& parameters);
1228 MCAPI static ::std::string _removeStringQuotes(::std::string
const& str);
1230 MCFOLD
static void buildOverload(::CommandRegistry::Overload& overload);
1232 MCFOLD static ::CommandRegistry::ParseToken*
1233 collapse(::CommandRegistry::ParseToken& parent, ::CommandRegistry::Symbol);
1235 MCAPI static ::CommandRegistry::ParseToken* collapseOn(
1236 ::CommandRegistry::ParseToken& parent,
1237 ::CommandRegistry::Symbol symbol,
1238 ::CommandRegistry::Symbol boundSymbol
1241 MCAPI static ::CommandRegistry::ParseToken*
1242 expand(::CommandRegistry::ParseToken& parent, ::CommandRegistry::Symbol symbol);
1244 MCAPI static ::CommandRegistry::ParseToken* expandExcept(
1245 ::CommandRegistry::ParseToken& parent,
1246 ::CommandRegistry::Symbol symbol,
1247 ::CommandRegistry::Symbol boundSymbol
1250 MCAPI static ::CommandRegistry::ParseToken* fold(
1251 ::CommandRegistry::ParseToken& parent,
1252 ::CommandRegistry::Symbol symbol,
1253 ::CommandRegistry::Symbol boundSymbol
1257 MCAPI
static bool isParseMatch(::CommandParameterData
const& param, ::CommandRegistry::Symbol in);
1260 MCAPI static ::CommandRegistry::ParseToken* kill(::CommandRegistry::ParseToken& parent, ::CommandRegistry::Symbol);
1262 MCAPI
static bool readFloat(
1264 ::CommandRegistry::ParseToken
const& token,
1265 ::std::string& error,
1266 ::std::vector<::std::string>& errorParams
1269 MCAPI
static bool readInt(
1271 ::CommandRegistry::ParseToken
const& token,
1272 ::std::string& error,
1273 ::std::vector<::std::string>& errorParams
1276 MCAPI
static bool readRelativeCoordinate(
1279 ::CommandRegistry::ParseToken
const& token,
1280 bool readIntegerAsCentered,
1281 ::std::string& error,
1282 ::std::vector<::std::string>& errorParams
1285 MCAPI
static bool readString(
1286 ::std::string& value,
1287 ::CommandRegistry::ParseToken
const& token,
1288 ::std::string& error,
1289 ::std::vector<::std::string>& errorParams
1296 MCAPI
static char const*& CODE_STATUS_PROPERTY_NAME();
1298 MCAPI
static char const*& COMMAND_NAME_ENUM_NAME();
1300 MCAPI
static char const*& FUNCTION_NAME_SOFTENUM_NAME();
1302 MCAPI
static char const*& HASITEM_PARAM_DATA();
1304 MCAPI
static char const*& HASITEM_PARAM_ITEM();
1306 MCAPI
static char const*& HASITEM_PARAM_LOCATION();
1308 MCAPI
static char const*& HASITEM_PARAM_QUANTITY();
1310 MCAPI
static char const*& HASITEM_PARAM_SLOT();
1312 MCAPI
static char const*& HASPERMISSIONSTATE_ENUM_DISABLED();
1314 MCAPI
static char const*& HASPERMISSIONSTATE_ENUM_ENABLED();
1316 MCAPI
static char const*& HASPROPERTY_PARAM_PROPERTY_NAME();
1318 MCAPI
static char const*& TAG_VALUES_SOFTENUM_NAME();
1320 MCAPI
static char const*& UNLOCKABLE_RECIPES_SOFTENUM_NAME();
1326 MCAPI
void* $ctor(::CommandRegistryArguments args);