Skip to content

Commit c6a3097

Browse files
committed
refactor: removing old dynamic command completely
1 parent 17bb97c commit c6a3097

File tree

6 files changed

+245
-1941
lines changed

6 files changed

+245
-1941
lines changed

src/legacy/api/CommandAPI.cpp

Lines changed: 225 additions & 216 deletions
Large diffs are not rendered by default.

src/legacy/api/CommandAPI.h

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
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

56
extern ClassDefine<void> ParamTypeStaticBuilder;
67
extern 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+
2027
class 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

4150
public:
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

Comments
 (0)