11#pragma once
22#include " api/CommandCompatibleAPI.h"
3- #include " legacyapi/command/DynamicCommand.h"
3+ #include " ll/api/command/CommandHandle.h"
4+ #include " ll/api/command/runtime/ParamKind.h"
45
56extern ClassDefine<void > ParamTypeStaticBuilder;
67extern ClassDefine<void > PermissionStaticBuilder;
@@ -17,12 +18,20 @@ enum class OldCommandPermissionLevel : schar {
1718 Internal = 0x5 ,
1819};
1920
21+ struct ParamInfo {
22+ ll::command::ParamKind::Kind type;
23+ bool optional;
24+ std::string enumName;
25+ };
26+
2027class CommandClass : public ScriptClass {
21- std::unique_ptr<DynamicCommandInstance> uptr;
22- DynamicCommandInstance* ptr;
23- bool registered = false ;
24- inline DynamicCommandInstance* get () { return ptr; }
25- inline std::vector<std::string> parseStringList (Local<Array> arr) {
28+ std::string commandName;
29+ std::string description;
30+ std::unordered_map<std::string, ParamInfo> paramMaps;
31+ inline ll::command::CommandHandle& get () {
32+ return ll::command::CommandRegistrar::getInstance ().getOrCreateCommand (commandName);
33+ }
34+ inline std::vector<std::string> parseStringList (Local<Array> arr) {
2635 if (arr.size () == 0 || !arr.get (0 ).isString ()) return {};
2736 std::vector<std::string> strs;
2837 for (size_t i = 0 ; i < arr.size (); ++i) {
@@ -39,10 +48,8 @@ class CommandClass : public ScriptClass {
3948 }
4049
4150public:
42- CommandClass (std::unique_ptr<DynamicCommandInstance>&& p);
43- CommandClass (DynamicCommandInstance* p);
44- static Local<Object> newCommand (std::unique_ptr<DynamicCommandInstance>&& p);
45- static Local<Object> newCommand (DynamicCommandInstance* p);
51+ CommandClass (std::string& name);
52+ static Local<Object> newCommand (std::string& name);
4653 Local<Value> getName ();
4754 Local<Value> setAlias (const Arguments& args);
4855 Local<Value> setEnum (const Arguments& args);
0 commit comments