LiteLoaderBDS-1.16.40/LiteLoader/Header/MC/CommandParameterData.hpp

91 lines
2.5 KiB
C++

// This Header is auto generated by BDSLiteLoader Toolchain
#pragma once
#define AUTO_GENERATED
#include "../Global.h"
#define BEFORE_EXTRA
// Include Headers or Declare Types Here
#include <string_view>
#include "CommandRegistry.hpp"
enum class CommandParameterDataType {
NORMAL,
ENUM,
SOFT_ENUM,
POSIFIX,
};
enum SemanticConstraint: unsigned char
{
NoneConstraint = 0,
RequiresCheatsEnabled=1,
RequiresElevatedPermissions=2,
RequiresHostPermissions=4,
VALUE_MASK=8,
};
enum CommandParameterOption : unsigned char
{
None = 0,
EnumAutocompleteExpansion = 1,
HasSemanticConstraint = 2, //be used in block or item name enum
EnumAsChainedCommand = 4, //be used in NewExecuteCommand
};
class CommandRegistry;
#undef BEFORE_EXTRA
class CommandParameterData {
#define AFTER_EXTRA
// Add Member There
#define DISABLE_CONSTRUCTOR_PREVENTION_COMMANDPARAMETERDATA
using ParseFn = bool (CommandRegistry::*)(
void*, CommandRegistry::ParseToken const&, CommandOrigin const&, int, std::string&,
std::vector<std::string>&) const;
public:
typeid_t<CommandRegistry> tid; // 0
ParseFn parser; // 8
std::string name; // 16
char const* desc; // 48
int unk56; // 56
CommandParameterDataType type; // 60
int offset; // 64
int flag_offset; // 68
bool mand; // 72
unsigned char options; // 73
CommandParameterData()
: tid(tid){};
CommandParameterData(
typeid_t<CommandRegistry> tid, ParseFn parser, std::string_view describe,
CommandParameterDataType type, char const* enumName, int offset, bool optional, int flag_offset)
: tid(tid)
, parser(parser)
, name(describe)
, desc(enumName)
, unk56(-1)
, type(type)
, offset(offset)
, flag_offset(flag_offset)
, mand(optional)
, options(0){};
CommandParameterData & addOptions(enum CommandParameterOption options){
this->options = this->options | options;
return *this;
};
#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_COMMANDPARAMETERDATA
public:
class CommandParameterData& operator=(class CommandParameterData const &) = delete;
CommandParameterData() = delete;
#endif
public:
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_COMMANDPARAMETERDATA
#endif
MCAPI CommandParameterData(class CommandParameterData const &);
MCAPI ~CommandParameterData();
};