Skip to content

Commit

Permalink
Add Offline Score API for LLSE (LiteLDev#984)
Browse files Browse the repository at this point in the history
  • Loading branch information
KobeBryant114514 authored Jan 7, 2023
1 parent 737301a commit 28c02ad
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 0 deletions.
4 changes: 4 additions & 0 deletions ScriptEngine/src/api/McAPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ ClassDefine<void> McClassBuilder =
.function("setPlayerNbt", &McClass::setPlayerNbt)
.function("setPlayerNbtTags", &McClass::setPlayerNbtTags)
.function("deletePlayerNbt", &McClass::deletePlayerNbt)
.function("getPlayerScore", &McClass::getPlayerScore)
.function("setPlayerScore", &McClass::setPlayerScore)
.function("addPlayerScore", &McClass::addPlayerScore)
.function("reducePlayerScore", &McClass::reducePlayerScore)

// For Compatity
.function("getAllScoreObjective", &McClass::getAllScoreObjectives)
Expand Down
4 changes: 4 additions & 0 deletions ScriptEngine/src/api/McAPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,9 @@ class McClass {
static Local<Value> setPlayerNbt(const Arguments& args);
static Local<Value> setPlayerNbtTags(const Arguments& args);
static Local<Value> deletePlayerNbt(const Arguments& args);
static Local<Value> getPlayerScore(const Arguments& args);
static Local<Value> setPlayerScore(const Arguments& args);
static Local<Value> addPlayerScore(const Arguments& args);
static Local<Value> reducePlayerScore(const Arguments& args);
};
extern ClassDefine<void> McClassBuilder;
58 changes: 58 additions & 0 deletions ScriptEngine/src/api/PlayerAPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,64 @@ Local<Value> McClass::deletePlayerNbt(const Arguments& args) {
CATCH("Fail in deletePlayerNbt!")
}

Local<Value> McClass::getPlayerScore(const Arguments& args) {
CHECK_ARGS_COUNT(args, 2);
CHECK_ARG_TYPE(args[0], ValueKind::kString);
CHECK_ARG_TYPE(args[1], ValueKind::kString);
try {
auto uuid = mce::UUID::fromString(args[0].asString().toString());
auto obj = args[1].asString().toString();
auto score = Scoreboard::queryPlayerScore(uuid,obj).value();
return Number::newNumber(score);
}
CATCH("Fail in getPlayerScore!")
}

Local<Value> McClass::setPlayerScore(const Arguments& args) {
CHECK_ARGS_COUNT(args, 3);
CHECK_ARG_TYPE(args[0], ValueKind::kString);
CHECK_ARG_TYPE(args[1], ValueKind::kString);
CHECK_ARG_TYPE(args[2], ValueKind::kNumber);
try {
auto uuid = mce::UUID::fromString(args[0].asString().toString());
auto obj = args[1].asString().toString();
auto value = args[2].asNumber().toInt32();
auto res = Scoreboard::forceModifyPlayerScore(uuid, obj, value, PlayerScoreSetFunction::Set);
return Boolean::newBoolean(res);
}
CATCH("Fail in setPlayerScore!")
}

Local<Value> McClass::addPlayerScore(const Arguments& args) {
CHECK_ARGS_COUNT(args, 3);
CHECK_ARG_TYPE(args[0], ValueKind::kString);
CHECK_ARG_TYPE(args[1], ValueKind::kString);
CHECK_ARG_TYPE(args[2], ValueKind::kNumber);
try {
auto uuid = mce::UUID::fromString(args[0].asString().toString());
auto obj = args[1].asString().toString();
auto value = args[2].asNumber().toInt32();
auto res = Scoreboard::forceModifyPlayerScore(uuid, obj, value, PlayerScoreSetFunction::Add);
return Boolean::newBoolean(res);
}
CATCH("Fail in addPlayerScore!")
}

Local<Value> McClass::reducePlayerScore(const Arguments& args) {
CHECK_ARGS_COUNT(args, 3);
CHECK_ARG_TYPE(args[0], ValueKind::kString);
CHECK_ARG_TYPE(args[1], ValueKind::kString);
CHECK_ARG_TYPE(args[2], ValueKind::kNumber);
try {
auto uuid = mce::UUID::fromString(args[0].asString().toString());
auto obj = args[1].asString().toString();
auto value = args[2].asNumber().toInt32();
auto res = Scoreboard::forceModifyPlayerScore(uuid, obj, value, PlayerScoreSetFunction::Remove);
return Boolean::newBoolean(res);
}
CATCH("Fail in reducePlayerScore!")
}

Local<Value> McClass::getPlayer(const Arguments& args) {
CHECK_ARGS_COUNT(args, 1)
CHECK_ARG_TYPE(args[0], ValueKind::kString)
Expand Down

0 comments on commit 28c02ad

Please sign in to comment.