Botcraft 1.21.4
Loading...
Searching...
No Matches
BrigadierProperty.cpp
Go to the documentation of this file.
1#if PROTOCOL_VERSION > 344 /* > 1.12.2 */
4
13#if PROTOCOL_VERSION > 761 /* > 1.19.3 */
15#endif
16#if PROTOCOL_VERSION < 759 /* < 1.19 */
18#endif
20
21#include <stdexcept>
22
23namespace ProtocolCraft
24{
31#if PROTOCOL_VERSION < 759 /* < 1.19 */
32 DEFINE_NETWORK_TYPE(BrigadierPropertyRange);
33#endif
37#if PROTOCOL_VERSION > 761 /* > 1.19.3 */
39#endif
40
45
46#if PROTOCOL_VERSION < 759 /* < 1.19 */
47 std::shared_ptr<BrigadierProperty> BrigadierProperty::CreateProperties(const Identifier& parser_identifier)
48 {
49 if (parser_identifier.GetFull() == "brigadier:double")
50 {
51 return std::make_shared<BrigadierPropertyDouble>();
52 }
53 else if (parser_identifier.GetFull() == "brigadier:float")
54 {
55 return std::make_shared<BrigadierPropertyFloat>();
56 }
57 else if (parser_identifier.GetFull() == "brigadier:integer")
58 {
59 return std::make_shared<BrigadierPropertyInteger>();
60 }
61 else if (parser_identifier.GetFull() == "brigadier:long")
62 {
63 return std::make_shared<BrigadierPropertyLong>();
64 }
65 else if (parser_identifier.GetFull() == "brigadier:string")
66 {
67 return std::make_shared<BrigadierPropertyString>();
68 }
69 else if (parser_identifier.GetFull() == "minecraft:entity")
70 {
71 return std::make_shared<BrigadierPropertyEntity>();
72 }
73 else if (parser_identifier.GetFull() == "minecraft:resource_or_tag")
74 {
75 return std::make_shared<BrigadierPropertyResourceOrTag>();
76 }
77 else if (parser_identifier.GetFull() == "minecraft:resource")
78 {
79 return std::make_shared<BrigadierPropertyResourceOrTag>();
80 }
81 else if (parser_identifier.GetFull() == "minecraft:score_holder")
82 {
83 return std::make_shared<BrigadierPropertyScoreHolder>();
84 }
85 else if (parser_identifier.GetFull() == "minecraft:range")
86 {
87 return std::make_shared<BrigadierPropertyRange>();
88 }
89 else if (parser_identifier.GetFull() == "forge:modid" ||
90 parser_identifier.GetFull() == "forge:enum")
91 {
92 throw std::runtime_error("Unable to create command node parser with id: " + parser_identifier.GetFull() + ". Modded protocol is not supported.");
93 }
94 else
95 {
96 return std::make_shared<BrigadierPropertyNone>();
97 }
98 }
99#else
100 std::shared_ptr<BrigadierProperty> BrigadierProperty::CreateProperties(const BrigadierPropertyType parser_id)
101 {
102 if (parser_id <= BrigadierPropertyType::None || parser_id >= BrigadierPropertyType::NUM_BRIGADIER_PROPERTY_TYPE)
103 {
104 throw std::runtime_error("Unable to create command node parser with id: " + std::to_string(static_cast<int>(parser_id)) + ". Are you using a mod? Modded protocol is not supported.");
105 }
106 switch (parser_id)
107 {
109 return std::make_shared<BrigadierPropertyFloat>();
111 return std::make_shared<BrigadierPropertyDouble>();
113 return std::make_shared<BrigadierPropertyInteger>();
115 return std::make_shared<BrigadierPropertyLong>();
117 return std::make_shared<BrigadierPropertyString>();
119 return std::make_shared<BrigadierPropertyEntity>();
121 return std::make_shared<BrigadierPropertyScoreHolder>();
122#if PROTOCOL_VERSION > 761 /* > 1.19.3 */
124 return std::make_shared<BrigadierPropertyTime>();
125#endif
128#if PROTOCOL_VERSION > 760 /* > 1.19.2 */
131#endif
132 return std::make_shared<BrigadierPropertyResourceOrTag>();
133 default:
134 return std::make_shared<BrigadierPropertyNone>();
135 }
136 }
137#endif
138}
139#endif
#define DEFINE_NETWORK_TYPE(ClassName)
static std::shared_ptr< BrigadierProperty > CreateProperties(const BrigadierPropertyType parser_id)
std::string GetFull() const