Skip to content

Commit afb25e9

Browse files
committed
fix: fix the nbt get
1 parent 8ba3823 commit afb25e9

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

src/legacy/api/NbtAPI.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1516,12 +1516,10 @@ Local<Value> NbtCompoundClass::getTypeOf(const Arguments& args) {
15161516
CHECK_ARG_TYPE(args[0], ValueKind::kString);
15171517

15181518
try {
1519-
auto& list = getPtr()->mTags;
1520-
auto key = args[0].asString().toString();
1521-
1522-
return Number::newNumber(int(list.at(key).getId()));
1523-
} catch (const std::out_of_range&) {
1524-
return Local<Value>();
1519+
auto key = args[0].asString().toString();
1520+
if (auto* tag = getPtr(); tag && tag->contains(key)) {
1521+
return Number::newNumber(int(tag->at(key).getId()));
1522+
}
15251523
}
15261524
CATCH("Fail in NBT GetTypeOf!");
15271525
}
@@ -1723,9 +1721,9 @@ Local<Value> NbtCompoundClass::getData(const Arguments& args) {
17231721

17241722
try {
17251723
auto key = args[0].asString().toString();
1726-
1727-
return Tag2Value(getPtr()->at(key).get().as_ptr<Tag>());
1728-
} catch (const std::out_of_range&) {
1724+
if (auto* tag = getPtr(); tag && tag->contains(key)) {
1725+
return Tag2Value(tag->at(key).get().as_ptr<Tag>());
1726+
}
17291727
return Local<Value>();
17301728
}
17311729
CATCH("Fail in NBT GetData!")
@@ -1738,6 +1736,10 @@ Local<Value> NbtCompoundClass::getTag(const Arguments& args) {
17381736
try {
17391737
auto key = args[0].asString().toString();
17401738

1739+
if (auto* tag = getPtr(); !tag || !tag->contains(key)) {
1740+
return Local<Value>();
1741+
}
1742+
17411743
Local<Value> res;
17421744
// lse::LegacyScriptEngine::getLogger().info(
17431745
// "getCompoundTag Type {}",
@@ -1781,8 +1783,6 @@ Local<Value> NbtCompoundClass::getTag(const Arguments& args) {
17811783
break;
17821784
}
17831785
return res;
1784-
} catch (const std::out_of_range&) {
1785-
return Local<Value>();
17861786
}
17871787
CATCH("Fail in NBT GetTag!");
17881788
}

0 commit comments

Comments
 (0)