3#include "ll/api/base/Meta.h"
4#include "ll/api/command/Optional.h"
5#include "ll/api/command/ParamTraits.h"
6#include "ll/api/command/Runtime/RuntimeEnum.h"
8#include "mc/deps/core/utility/AutomaticID.h"
9#include "mc/deps/core/utility/typeid_t.h"
10#include "mc/deps/json/Value.h"
11#include "mc/server/commands/BlockStateCommandParam.h"
12#include "mc/server/commands/Command.h"
13#include "mc/server/commands/CommandBlockName.h"
14#include "mc/server/commands/CommandFilePath.h"
15#include "mc/server/commands/CommandIntegerRange.h"
16#include "mc/server/commands/CommandItem.h"
17#include "mc/server/commands/CommandMessage.h"
18#include "mc/server/commands/CommandPositionFloat.h"
19#include "mc/server/commands/CommandRawText.h"
20#include "mc/server/commands/CommandWildcardInt.h"
21#include "mc/server/commands/RelativeFloat.h"
22#include "mc/server/commands/WildcardCommandSelector.h"
23#include "mc/world/actor/ActorDefinitionIdentifier.h"
24#include "mc/world/actor/player/Player.h"
25#include "mc/world/effect/MobEffect.h"
27namespace ll::command {
29using ParamKindType = size_t;
33enum Kind : ParamKindType {
64using ParamKindList = meta::TypeList<
81 std::vector<BlockStateCommandParam>,
84 std::unique_ptr<::Command>,
97 ParamKindType index()
const {
return mValue.index(); }
98 bool hold(ParamKindType kind)
const {
return has_value() && kind == index(); }
100 decltype(
auto) get()
const {
101 return std::get<N>(value());
Definition AutomaticID.h:6
Definition BlockState.h:11
Definition CommandBlockName.h:12
Definition CommandFilePath.h:5
Definition CommandIntegerRange.h:5
Definition CommandItem.h:11
Definition CommandMessage.h:15
Definition CommandPositionFloat.h:8
Definition CommandPosition.h:13
Definition CommandRawText.h:5
Definition CommandSelector.h:11
Definition CommandWildcardInt.h:5
Definition Dimension.h:83
Definition MobEffect.h:27
Definition RelativeFloat.h:5
Definition WildcardCommandSelector.h:7
Definition ParamKind.h:93
Definition ActorDefinitionIdentifier.h:13