Skip to content

Commit b599bec

Browse files
committed
refactor: remove more macro
1 parent 731a502 commit b599bec

27 files changed

+404
-351
lines changed

src/legacy/api/APIHelp.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@ inline void PrintScriptStackTrace(std::string const& msg = "") {
2525
}
2626
}
2727

28-
// 方便提取类型
29-
#define toStr() asString().toString()
30-
#define toInt() asNumber().toInt32()
31-
3228
// 实例类类型检查
3329
template <typename T>
3430
bool inline IsInstanceOf(Local<Value> v) {
@@ -259,8 +255,10 @@ struct EnumDefineBuilder {
259255
try {
260256
if (args.size() < 1) return Local<Value>();
261257
if (args[0].isString())
262-
return magic_enum::enum_cast<Type>(args[0].toStr()).has_value() ? args[0] : Local<Value>();
263-
if (args[0].isNumber()) return String::newString(magic_enum::enum_name(static_cast<Type>(args[0].toInt())));
258+
return magic_enum::enum_cast<Type>(args[0].asString().toString()).has_value() ? args[0]
259+
: Local<Value>();
260+
if (args[0].isNumber())
261+
return String::newString(magic_enum::enum_name(static_cast<Type>(args[0].asNumber().toInt32())));
264262
return Local<Value>();
265263
} catch (const std::exception&) {
266264
lse::getSelfPluginInstance().getLogger().error("Error in " __FUNCTION__);

src/legacy/api/BaseAPI.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,12 @@ Local<Value> McClass::newIntPos(const Arguments& args) {
210210
CHECK_ARG_TYPE(args[3], ValueKind::kNumber)
211211

212212
try {
213-
return IntPos::newPos(args[0].toInt(), args[1].toInt(), args[2].toInt(), args[3].toInt());
213+
return IntPos::newPos(
214+
args[0].asNumber().toInt32(),
215+
args[1].asNumber().toInt32(),
216+
args[2].asNumber().toInt32(),
217+
args[3].asNumber().toInt32()
218+
);
214219
}
215220
CATCH("Fail in NewIntPos!")
216221
}
@@ -227,7 +232,7 @@ Local<Value> McClass::newFloatPos(const Arguments& args) {
227232
args[0].asNumber().toFloat(),
228233
args[1].asNumber().toFloat(),
229234
args[2].asNumber().toFloat(),
230-
args[3].toInt()
235+
args[3].asNumber().toInt32()
231236
);
232237
}
233238
CATCH("Fail in NewFloatPos!")

src/legacy/api/BlockAPI.cpp

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
#include "mc/world/level/Level.h"
1717
#include "mc/world/level/block/Block.h"
1818
#include "mc/world/level/block/actor/BlockActor.h"
19+
#include "mc/world/level/block/block_serialization_utils/BlockSerializationUtils.h"
1920
#include "mc/world/level/block/components/BlockLiquidDetectionComponent.h"
2021
#include "mc/world/level/dimension/Dimension.h"
21-
#include "mc/world/level/block/block_serialization_utils/BlockSerializationUtils.h"
2222

2323
#include <exception>
2424

@@ -412,7 +412,12 @@ Local<Value> McClass::getBlock(const Arguments& args) {
412412
CHECK_ARG_TYPE(args[1], ValueKind::kNumber);
413413
CHECK_ARG_TYPE(args[2], ValueKind::kNumber);
414414
CHECK_ARG_TYPE(args[3], ValueKind::kNumber);
415-
pos = {args[0].toInt(), args[1].toInt(), args[2].toInt(), args[3].toInt()};
415+
pos = {
416+
args[0].asNumber().toInt32(),
417+
args[1].asNumber().toInt32(),
418+
args[2].asNumber().toInt32(),
419+
args[3].asNumber().toInt32()
420+
};
416421
} else {
417422
LOG_WRONG_ARGS_COUNT();
418423
return Local<Value>();
@@ -450,7 +455,7 @@ Local<Value> McClass::setBlock(const Arguments& args) {
450455
if (args.size() == 3) {
451456
CHECK_ARG_TYPE(args[1], ValueKind::kString);
452457
CHECK_ARG_TYPE(args[2], ValueKind::kNumber);
453-
tileData = args[2].toInt();
458+
tileData = args[2].asNumber().toInt32();
454459
}
455460
if (IsInstanceOf<IntPos>(args[0])) {
456461
// IntPos
@@ -478,12 +483,17 @@ Local<Value> McClass::setBlock(const Arguments& args) {
478483
CHECK_ARG_TYPE(args[1], ValueKind::kNumber);
479484
CHECK_ARG_TYPE(args[2], ValueKind::kNumber);
480485
CHECK_ARG_TYPE(args[3], ValueKind::kNumber);
481-
pos = {args[0].toInt(), args[1].toInt(), args[2].toInt(), args[3].toInt()};
486+
pos = {
487+
args[0].asNumber().toInt32(),
488+
args[1].asNumber().toInt32(),
489+
args[2].asNumber().toInt32(),
490+
args[3].asNumber().toInt32()
491+
};
482492
block = args[4];
483493
if (args.size() == 6) {
484494
CHECK_ARG_TYPE(args[4], ValueKind::kString);
485495
CHECK_ARG_TYPE(args[5], ValueKind::kNumber);
486-
tileData = args[5].toInt();
496+
tileData = args[5].asNumber().toInt32();
487497
}
488498
} else {
489499
LOG_WRONG_ARGS_COUNT();
@@ -566,16 +576,19 @@ Local<Value> McClass::spawnParticle(const Arguments& args) {
566576
args[0].asNumber().toFloat(),
567577
args[1].asNumber().toFloat(),
568578
args[2].asNumber().toFloat(),
569-
args[3].toInt()
579+
args[3].asNumber().toInt32()
570580
};
571581
type = args[4];
572582
} else {
573583
LOG_WRONG_ARGS_COUNT();
574584
return Local<Value>();
575585
}
576586

577-
ll::service::getLevel()
578-
->spawnParticleEffect(type.toStr(), pos.getVec3(), ll::service::getLevel()->getDimension(pos.dim).get());
587+
ll::service::getLevel()->spawnParticleEffect(
588+
type.asString().toString(),
589+
pos.getVec3(),
590+
ll::service::getLevel()->getDimension(pos.dim).get()
591+
);
579592
return Boolean::newBoolean(true);
580593
}
581594
CATCH("Fail in SpawnParticle!")

src/legacy/api/CommandAPI.cpp

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,11 @@ Local<Value> convertResult(DynamicCommand::Result const& result) {
150150
template <typename T>
151151
std::enable_if_t<std::is_enum_v<T>, T> parseEnum(Local<Value> const& value) {
152152
if (value.isString()) {
153-
auto tmp = magic_enum::enum_cast<T>(value.toStr());
153+
auto tmp = magic_enum::enum_cast<T>(value.asString().toString());
154154
if (!tmp.has_value()) throw std::runtime_error("Unable to parse Enum value");
155155
return tmp.value();
156156
} else if (value.isNumber()) {
157-
return (T)value.toInt();
157+
return (T)value.asNumber().toInt32();
158158
}
159159
throw std::runtime_error("Unable to parse Enum value");
160160
}
@@ -225,7 +225,7 @@ Local<Value> McClass::newCommand(const Arguments& args) {
225225
CHECK_ARG_TYPE(args[1], ValueKind::kString);
226226

227227
try {
228-
auto name = args[0].toStr();
228+
auto name = args[0].asString().toString();
229229
auto instance = DynamicCommand::getInstance(name);
230230
if (instance) {
231231
lse::getSelfPluginInstance().getLogger().info(
@@ -236,18 +236,18 @@ Local<Value> McClass::newCommand(const Arguments& args) {
236236
return CommandClass::newCommand(instance);
237237
}
238238

239-
auto desc = args[1].toStr();
239+
auto desc = args[1].asString().toString();
240240
CommandPermissionLevel permission = CommandPermissionLevel::Admin;
241241
CommandFlag flag = {(CommandFlagValue)0x80};
242242
std::string alias;
243243
if (args.size() > 2) {
244244
permission = (CommandPermissionLevel)parseEnum<OldCommandPermissionLevel>(args[2]);
245245
if (args.size() > 3) {
246246
CHECK_ARG_TYPE(args[3], ValueKind::kNumber);
247-
flag = {(CommandFlagValue)args[3].toInt()};
247+
flag = {(CommandFlagValue)args[3].asNumber().toInt32()};
248248
if (args.size() > 4) {
249249
CHECK_ARG_TYPE(args[4], ValueKind::kString);
250-
alias = args[4].toStr();
250+
alias = args[4].asString().toString();
251251
}
252252
}
253253
}
@@ -269,13 +269,13 @@ CommandClass::CommandClass(std::unique_ptr<DynamicCommandInstance>&& p)
269269
: ScriptClass(ScriptClass::ConstructFromCpp<CommandClass>{}),
270270
uptr(std::move(p)),
271271
ptr(uptr.get()),
272-
registered(false){};
272+
registered(false) {};
273273

274274
CommandClass::CommandClass(DynamicCommandInstance* p)
275275
: ScriptClass(ScriptClass::ConstructFromCpp<CommandClass>{}),
276276
uptr(),
277277
ptr(p),
278-
registered(true){};
278+
registered(true) {};
279279

280280
Local<Object> CommandClass::newCommand(std::unique_ptr<DynamicCommandInstance>&& p) {
281281
auto newp = new CommandClass(std::move(p));
@@ -299,7 +299,7 @@ Local<Value> CommandClass::setAlias(const Arguments& args) {
299299
CHECK_ARG_TYPE(args[0], ValueKind::kString)
300300
try {
301301
if (registered) return Boolean::newBoolean(true); // TODO
302-
return Boolean::newBoolean(get()->setAlias(args[0].toStr()));
302+
return Boolean::newBoolean(get()->setAlias(args[0].asString().toString()));
303303
}
304304
CATCH("Fail in setAlias!")
305305
}
@@ -311,12 +311,12 @@ Local<Value> CommandClass::setEnum(const Arguments& args) {
311311
CHECK_ARG_TYPE(args[1], ValueKind::kArray)
312312
try {
313313
if (registered) return Local<Value>(); // TODO
314-
auto enumName = args[0].toStr();
314+
auto enumName = args[0].asString().toString();
315315
auto enumArr = args[1].asArray();
316316
if (enumArr.size() == 0 || !enumArr.get(0).isString()) return Local<Value>();
317317
vector<string> enumValues;
318318
for (int i = 0; i < enumArr.size(); ++i) {
319-
enumValues.push_back(enumArr.get(i).toStr());
319+
enumValues.push_back(enumArr.get(i).asString().toString());
320320
}
321321
return String::newString(get()->setEnum(enumName, std::move(enumValues)));
322322
}
@@ -332,17 +332,18 @@ Local<Value> CommandClass::newParameter(const Arguments& args) {
332332
CHECK_ARG_TYPE(args[0], ValueKind::kString);
333333
try {
334334
if (registered) return Boolean::newBoolean(true); // TODO
335-
auto name = args[0].toStr();
335+
auto name = args[0].asString().toString();
336336
DynamicCommand::ParameterType type = parseEnum<DynamicCommand::ParameterType>(args[1]);
337337
std::string description = "";
338338
bool optional = false;
339339
std::string identifier = "";
340340
size_t index = 2;
341341
CommandParameterOption option = (CommandParameterOption)0;
342342
if (args.size() > index && args[index].isBoolean()) optional = args[index++].asBoolean().value();
343-
if (args.size() > index && args[index].isString()) description = args[index++].toStr();
344-
if (args.size() > index && args[index].isString()) identifier = args[index++].toStr();
345-
if (args.size() > index && args[index].isNumber()) option = (CommandParameterOption)args[index++].toInt();
343+
if (args.size() > index && args[index].isString()) description = args[index++].asString().toString();
344+
if (args.size() > index && args[index].isString()) identifier = args[index++].asString().toString();
345+
if (args.size() > index && args[index].isNumber())
346+
option = (CommandParameterOption)args[index++].asNumber().toInt32();
346347
if (index != args.size()) throw std::runtime_error("Error Argument in newParameter");
347348
return Number::newNumber(
348349
(int64_t)get()->newParameter(name, type, optional, description, identifier, option).index
@@ -358,16 +359,17 @@ Local<Value> CommandClass::mandatory(const Arguments& args) {
358359
CHECK_ARG_TYPE(args[0], ValueKind::kString);
359360
try {
360361
if (registered) return Boolean::newBoolean(true); // TODO
361-
auto name = args[0].toStr();
362+
auto name = args[0].asString().toString();
362363
DynamicCommand::ParameterType type = parseEnum<DynamicCommand::ParameterType>(args[1]);
363364
std::string description = "";
364365
bool optional = false;
365366
std::string identifier = "";
366367
size_t index = 2;
367368
CommandParameterOption option = (CommandParameterOption)0;
368-
if (args.size() > index && args[index].isString()) description = args[index++].toStr();
369-
if (args.size() > index && args[index].isString()) identifier = args[index++].toStr();
370-
if (args.size() > index && args[index].isNumber()) option = (CommandParameterOption)args[index++].toInt();
369+
if (args.size() > index && args[index].isString()) description = args[index++].asString().toString();
370+
if (args.size() > index && args[index].isString()) identifier = args[index++].asString().toString();
371+
if (args.size() > index && args[index].isNumber())
372+
option = (CommandParameterOption)args[index++].asNumber().toInt32();
371373
if (index != args.size()) throw std::runtime_error("Error Argument in newParameter");
372374
return Number::newNumber(
373375
(int64_t)get()->newParameter(name, type, optional, description, identifier, option).index
@@ -383,16 +385,17 @@ Local<Value> CommandClass::optional(const Arguments& args) {
383385
CHECK_ARG_TYPE(args[0], ValueKind::kString);
384386
try {
385387
if (registered) return Boolean::newBoolean(true); // TODO
386-
auto name = args[0].toStr();
388+
auto name = args[0].asString().toString();
387389
DynamicCommand::ParameterType type = parseEnum<DynamicCommand::ParameterType>(args[1]);
388390
std::string description = "";
389391
bool optional = true;
390392
std::string identifier = "";
391393
size_t index = 2;
392394
CommandParameterOption option = (CommandParameterOption)0;
393-
if (args.size() > index && args[index].isString()) description = args[index++].toStr();
394-
if (args.size() > index && args[index].isString()) identifier = args[index++].toStr();
395-
if (args.size() > index && args[index].isNumber()) option = (CommandParameterOption)args[index++].toInt();
395+
if (args.size() > index && args[index].isString()) description = args[index++].asString().toString();
396+
if (args.size() > index && args[index].isString()) identifier = args[index++].asString().toString();
397+
if (args.size() > index && args[index].isNumber())
398+
option = (CommandParameterOption)args[index++].asNumber().toInt32();
396399
if (index != args.size()) throw std::runtime_error("Error Argument in newParameter");
397400
return Number::newNumber(
398401
(int64_t)get()->newParameter(name, type, optional, description, identifier, option).index
@@ -420,7 +423,7 @@ Local<Value> CommandClass::addOverload(const Arguments& args) {
420423
std::vector<std::string> params;
421424
for (int i = 0; i < args.size(); ++i) {
422425
CHECK_ARG_TYPE(args[i], ValueKind::kString);
423-
params.emplace_back(args[i].toStr());
426+
params.emplace_back(args[i].asString().toString());
424427
}
425428
return Boolean::newBoolean(command->addOverload(std::move(params)));
426429
} else if (args[0].isArray()) {
@@ -438,7 +441,7 @@ Local<Value> CommandClass::addOverload(const Arguments& args) {
438441
std::vector<std::string> params;
439442
for (int i = 0; i < arr.size(); ++i) {
440443
CHECK_ARG_TYPE(arr.get(i), ValueKind::kString);
441-
params.emplace_back(arr.get(i).toStr());
444+
params.emplace_back(arr.get(i).asString().toString());
442445
}
443446
return Boolean::newBoolean(command->addOverload(std::move(params)));
444447
}
@@ -556,7 +559,7 @@ Local<Value> CommandClass::setSoftEnum(const Arguments& args) {
556559
CHECK_ARG_TYPE(args[0], ValueKind::kString);
557560
CHECK_ARG_TYPE(args[1], ValueKind::kArray);
558561
try {
559-
auto name = args[0].toStr();
562+
auto name = args[0].asString().toString();
560563
auto enums = parseStringList(args[1].asArray());
561564
return String::newString(get()->setSoftEnum(name, std::move(enums)));
562565
}
@@ -568,7 +571,7 @@ Local<Value> CommandClass::addSoftEnumValues(const Arguments& args) {
568571
CHECK_ARG_TYPE(args[0], ValueKind::kString);
569572
CHECK_ARG_TYPE(args[1], ValueKind::kArray);
570573
try {
571-
auto name = args[0].toStr();
574+
auto name = args[0].asString().toString();
572575
auto enums = parseStringList(args[1].asArray());
573576
return Boolean::newBoolean(get()->addSoftEnumValues(name, std::move(enums)));
574577
}
@@ -580,7 +583,7 @@ Local<Value> CommandClass::removeSoftEnumValues(const Arguments& args) {
580583
CHECK_ARG_TYPE(args[0], ValueKind::kString);
581584
CHECK_ARG_TYPE(args[1], ValueKind::kArray);
582585
try {
583-
auto name = args[0].toStr();
586+
auto name = args[0].asString().toString();
584587
auto enums = parseStringList(args[1].asArray());
585588
return Boolean::newBoolean(get()->removeSoftEnumValues(name, std::move(enums)));
586589
}
@@ -591,7 +594,7 @@ Local<Value> CommandClass::getSoftEnumValues(const Arguments& args) {
591594
CHECK_ARGS_COUNT(args, 1);
592595
CHECK_ARG_TYPE(args[0], ValueKind::kString);
593596
try {
594-
auto name = args[0].toStr();
597+
auto name = args[0].asString().toString();
595598
return getStringArray(get()->softEnums[name]);
596599
}
597600
CATCH("Fail in getSoftEnumValues");

src/legacy/api/CommandAPI.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class CommandClass : public ScriptClass {
2626
if (arr.size() == 0 || !arr.get(0).isString()) return {};
2727
std::vector<std::string> strs;
2828
for (size_t i = 0; i < arr.size(); ++i) {
29-
strs.push_back(arr.get(i).toStr());
29+
strs.push_back(arr.get(i).asString().toString());
3030
}
3131
return std::move(strs);
3232
}

src/legacy/api/CommandCompatibleAPI.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ Local<Value> McClass::sendCmdOutput(const Arguments& args) {
111111
CHECK_ARG_TYPE(args[0], ValueKind::kString);
112112

113113
try {
114-
return Boolean::newBoolean(SendCmdOutput(args[0].toStr()));
114+
return Boolean::newBoolean(SendCmdOutput(args[0].asString().toString()));
115115
}
116116
CATCH("Fail in SendCmdOutput!");
117117
}

0 commit comments

Comments
 (0)