refactor: remove shit copy

This commit is contained in:
Tsubasa6848
2024-05-20 00:52:53 +08:00
Unverified
parent dc834e4246
commit de325c0a1e
5 changed files with 266 additions and 182 deletions
+200 -136
View File
@@ -6,7 +6,7 @@ bool isInteger(const std::string& str) {
return std::regex_match(str, pattern);
}
ActorUniqueID parseScriptUniqueID(std::string uniqueId) {
ActorUniqueID parseScriptUniqueID(std::string const& uniqueId) {
if (!isInteger(uniqueId)) {
return ActorUniqueID::INVALID_ID;
}
@@ -14,14 +14,14 @@ ActorUniqueID parseScriptUniqueID(std::string uniqueId) {
}
void Export_Compatibility_API() {
RemoteCall::exportAs("GMLIB_API", "unregisterRecipe", [](std::string id) -> bool {
RemoteCall::exportAs("GMLIB_API", "unregisterRecipe", [](std::string const& id) -> bool {
auto level = GMLIB_Level::getInstance();
if (!level) {
return false;
}
return GMLIB::Mod::CustomRecipe::unregisterRecipe(id);
});
RemoteCall::exportAs("GMLIB_API", "setCustomPackPath", [](std::string path) -> void {
RemoteCall::exportAs("GMLIB_API", "setCustomPackPath", [](std::string const& path) -> void {
GMLIB::Mod::CustomPacks::addCustomPackPath(path);
});
RemoteCall::exportAs("GMLIB_API", "getServerMspt", []() -> float {
@@ -53,23 +53,27 @@ void Export_Compatibility_API() {
}
return result;
});
RemoteCall::exportAs("GMLIB_API", "getPlayerNbt", [](std::string uuid) -> std::unique_ptr<CompoundTag> {
RemoteCall::exportAs("GMLIB_API", "getPlayerNbt", [](std::string const& uuid) -> std::unique_ptr<CompoundTag> {
auto uid = mce::UUID::fromString(uuid);
return std::move(GMLIB_Player::getPlayerNbt(uid));
});
RemoteCall::exportAs("GMLIB_API", "setPlayerNbt", [](std::string uuid, CompoundTag* nbt, bool forceCreate) -> bool {
auto uid = mce::UUID::fromString(uuid);
return GMLIB_Player::setPlayerNbt(uid, *nbt, forceCreate);
});
RemoteCall::exportAs(
"GMLIB_API",
"setPlayerNbt",
[](std::string const& uuid, CompoundTag* nbt, bool forceCreate) -> bool {
auto uid = mce::UUID::fromString(uuid);
return GMLIB_Player::setPlayerNbt(uid, *nbt, forceCreate);
}
);
RemoteCall::exportAs(
"GMLIB_API",
"setPlayerNbtTags",
[](std::string uuid, CompoundTag* nbt, std::vector<std::string> tags) -> bool {
[](std::string const& uuid, CompoundTag* nbt, std::vector<std::string> tags) -> bool {
auto uid = mce::UUID::fromString(uuid);
return GMLIB_Player::setPlayerNbtTags(uid, *nbt, tags);
}
);
RemoteCall::exportAs("GMLIB_API", "deletePlayerNbt", [](std::string uuid) -> bool {
RemoteCall::exportAs("GMLIB_API", "deletePlayerNbt", [](std::string const& uuid) -> bool {
auto uid = mce::UUID::fromString(uuid);
return GMLIB_Player::deletePlayerNbt(uid);
});
@@ -91,12 +95,12 @@ void Export_Compatibility_API() {
RemoteCall::exportAs(
"GMLIB_API",
"createFloatingText",
[](std::pair<Vec3, int> pos, std::string text, bool papi) -> int {
[](std::pair<Vec3, int> pos, std::string const& text, bool papi) -> int {
auto ft = new GMLIB::Server::StaticFloatingText(text, pos.first, pos.second, papi);
return ft->getRuntimeID();
}
);
RemoteCall::exportAs("GMLIB_API", "setFloatingTextData", [](int id, std::string text) -> bool {
RemoteCall::exportAs("GMLIB_API", "setFloatingTextData", [](int id, std::string const& text) -> bool {
auto ft = GMLIB::Server::FloatingText::getFloatingText(id);
if (ft) {
ft->setText(text);
@@ -166,16 +170,16 @@ void Export_Compatibility_API() {
RemoteCall::exportAs(
"GMLIB_API",
"resourcePackDefaultTranslate",
[](std::string key, std::vector<std::string> params) -> std::string { return I18nAPI::get(key, params); }
[](std::string const& key, std::vector<std::string> params) -> std::string { return I18nAPI::get(key, params); }
);
RemoteCall::exportAs(
"GMLIB_API",
"resourcePackTranslate",
[](std::string key, std::vector<std::string> params, std::string code) -> std::string {
[](std::string const& key, std::vector<std::string> params, std::string const& code) -> std::string {
return I18nAPI::get(key, params, code);
}
);
RemoteCall::exportAs("GMLIB_API", "chooseResourcePackI18nLanguage", [](std::string code) -> void {
RemoteCall::exportAs("GMLIB_API", "chooseResourcePackI18nLanguage", [](std::string const& code) -> void {
if (GMLIB_Level::getInstance()) {
I18nAPI::chooseLanguage(code);
}
@@ -192,7 +196,7 @@ void Export_Compatibility_API() {
}
return {};
});
RemoteCall::exportAs("GMLIB_API", "loadLanguage", [](std::string code, std::string lang) -> void {
RemoteCall::exportAs("GMLIB_API", "loadLanguage", [](std::string const& code, std::string const& lang) -> void {
if (GMLIB_Level::getInstance()) {
I18nAPI::loadLanguage(code, lang);
}
@@ -200,18 +204,18 @@ void Export_Compatibility_API() {
RemoteCall::exportAs(
"GMLIB_API",
"updateOrCreateLanguageFile",
[](std::string code, std::string lang, std::string path) -> void {
[](std::string const& code, std::string const& lang, std::string const& path) -> void {
if (GMLIB_Level::getInstance()) {
I18nAPI::updateOrCreateLanguageFile(path, code, lang);
}
}
);
RemoteCall::exportAs("GMLIB_API", "loadLanguagePath", [](std::string path) -> void {
RemoteCall::exportAs("GMLIB_API", "loadLanguagePath", [](std::string const& path) -> void {
if (GMLIB_Level::getInstance()) {
I18nAPI::loadLanguagesFromDirectory(path);
}
});
RemoteCall::exportAs("GMLIB_API", "getPlayerPosition", [](std::string uuid) -> std::pair<BlockPos, int> {
RemoteCall::exportAs("GMLIB_API", "getPlayerPosition", [](std::string const& uuid) -> std::pair<BlockPos, int> {
auto uid = mce::UUID::fromString(uuid);
auto pos = GMLIB_Player::getPlayerPosition(uid);
if (pos.has_value()) {
@@ -222,78 +226,102 @@ void Export_Compatibility_API() {
-1
};
});
RemoteCall::exportAs("GMLIB_API", "setPlayerPosition", [](std::string uuid, std::pair<BlockPos, int> pos) -> bool {
auto uid = mce::UUID::fromString(uuid);
return GMLIB_Player::setPlayerPosition(uid, pos.first, pos.second);
});
RemoteCall::exportAs("GMLIB_API", "playerHasScore", [](std::string uuid, std::string obj) -> bool {
RemoteCall::exportAs(
"GMLIB_API",
"setPlayerPosition",
[](std::string const& uuid, std::pair<BlockPos, int> pos) -> bool {
auto uid = mce::UUID::fromString(uuid);
return GMLIB_Player::setPlayerPosition(uid, pos.first, pos.second);
}
);
RemoteCall::exportAs("GMLIB_API", "playerHasScore", [](std::string const& uuid, std::string const& obj) -> bool {
auto uid = mce::UUID::fromString(uuid);
if (auto result = GMLIB_Player::getPlayerScore(uid, obj)) {
return true;
}
return false;
});
RemoteCall::exportAs("GMLIB_API", "getPlayerScore", [](std::string uuid, std::string obj) -> int {
RemoteCall::exportAs("GMLIB_API", "getPlayerScore", [](std::string const& uuid, std::string const& obj) -> int {
auto uid = mce::UUID::fromString(uuid);
if (auto result = GMLIB_Player::getPlayerScore(uid, obj)) {
return result.value();
}
return 0;
});
RemoteCall::exportAs("GMLIB_API", "addPlayerScore", [](std::string uuid, std::string obj, int value) -> bool {
auto uid = mce::UUID::fromString(uuid);
if (auto res = GMLIB_Player::setPlayerScore(uid, obj, value, PlayerScoreSetFunction::Add)) {
return true;
}
return false;
});
RemoteCall::exportAs("GMLIB_API", "reducePlayerScore", [](std::string uuid, std::string obj, int value) -> bool {
auto uid = mce::UUID::fromString(uuid);
if (auto res = GMLIB_Player::setPlayerScore(uid, obj, value, PlayerScoreSetFunction::Subtract)) {
return true;
}
return false;
});
RemoteCall::exportAs("GMLIB_API", "setPlayerScore", [](std::string uuid, std::string obj, int value) -> bool {
auto uid = mce::UUID::fromString(uuid);
if (auto res = GMLIB_Player::setPlayerScore(uid, obj, value)) {
return true;
}
return false;
});
RemoteCall::exportAs("GMLIB_API", "resetPlayerScore", [](std::string uuid, std::string obj) -> bool {
auto uid = mce::UUID::fromString(uuid);
return GMLIB_Player::resetPlayerScore(uid, obj);
});
RemoteCall::exportAs("GMLIB_API", "resetPlayerScores", [](std::string uuid) -> bool {
auto uid = mce::UUID::fromString(uuid);
return GMLIB_Player::resetPlayerScore(uid);
});
RemoteCall::exportAs("GMLIB_API", "entityHasScore", [](std::string uniqueId, std::string obj) -> bool {
auto auid = parseScriptUniqueID(uniqueId);
if (auto result = GMLIB_Scoreboard::getInstance()->getScore(obj, auid)) {
return true;
}
return false;
});
RemoteCall::exportAs("GMLIB_API", "getEntityScore", [](std::string uniqueId, std::string obj) -> int {
auto auid = parseScriptUniqueID(uniqueId);
if (auto result = GMLIB_Scoreboard::getInstance()->getScore(obj, auid)) {
return result.value();
}
return 0;
});
RemoteCall::exportAs("GMLIB_API", "addEntityScore", [](std::string uniqueId, std::string obj, int value) -> bool {
auto auid = parseScriptUniqueID(uniqueId);
if (auto res = GMLIB_Scoreboard::getInstance()->setScore(obj, auid, value, PlayerScoreSetFunction::Add)) {
return true;
}
return false;
});
RemoteCall::exportAs(
"GMLIB_API",
"addPlayerScore",
[](std::string const& uuid, std::string const& obj, int value) -> bool {
auto uid = mce::UUID::fromString(uuid);
if (auto res = GMLIB_Player::setPlayerScore(uid, obj, value, PlayerScoreSetFunction::Add)) {
return true;
}
return false;
}
);
RemoteCall::exportAs(
"GMLIB_API",
"reducePlayerScore",
[](std::string const& uuid, std::string const& obj, int value) -> bool {
auto uid = mce::UUID::fromString(uuid);
if (auto res = GMLIB_Player::setPlayerScore(uid, obj, value, PlayerScoreSetFunction::Subtract)) {
return true;
}
return false;
}
);
RemoteCall::exportAs(
"GMLIB_API",
"setPlayerScore",
[](std::string const& uuid, std::string const& obj, int value) -> bool {
auto uid = mce::UUID::fromString(uuid);
if (auto res = GMLIB_Player::setPlayerScore(uid, obj, value)) {
return true;
}
return false;
}
);
RemoteCall::exportAs("GMLIB_API", "resetPlayerScore", [](std::string const& uuid, std::string const& obj) -> bool {
auto uid = mce::UUID::fromString(uuid);
return GMLIB_Player::resetPlayerScore(uid, obj);
});
RemoteCall::exportAs("GMLIB_API", "resetPlayerScores", [](std::string const& uuid) -> bool {
auto uid = mce::UUID::fromString(uuid);
return GMLIB_Player::resetPlayerScore(uid);
});
RemoteCall::exportAs(
"GMLIB_API",
"entityHasScore",
[](std::string const& uniqueId, std::string const& obj) -> bool {
auto auid = parseScriptUniqueID(uniqueId);
if (auto result = GMLIB_Scoreboard::getInstance()->getScore(obj, auid)) {
return true;
}
return false;
}
);
RemoteCall::exportAs("GMLIB_API", "getEntityScore", [](std::string const& uniqueId, std::string const& obj) -> int {
auto auid = parseScriptUniqueID(uniqueId);
if (auto result = GMLIB_Scoreboard::getInstance()->getScore(obj, auid)) {
return result.value();
}
return 0;
});
RemoteCall::exportAs(
"GMLIB_API",
"addEntityScore",
[](std::string const& uniqueId, std::string const& obj, int value) -> bool {
auto auid = parseScriptUniqueID(uniqueId);
if (auto res = GMLIB_Scoreboard::getInstance()->setScore(obj, auid, value, PlayerScoreSetFunction::Add)) {
return true;
}
return false;
}
);
RemoteCall::exportAs(
"GMLIB_API",
"reduceEntityScore",
[](std::string uniqueId, std::string obj, int value) -> bool {
[](std::string const& uniqueId, std::string const& obj, int value) -> bool {
auto auid = parseScriptUniqueID(uniqueId);
if (auto res =
GMLIB_Scoreboard::getInstance()->setScore(obj, auid, value, PlayerScoreSetFunction::Subtract)) {
@@ -302,43 +330,59 @@ void Export_Compatibility_API() {
return false;
}
);
RemoteCall::exportAs("GMLIB_API", "setEntityScore", [](std::string uniqueId, std::string obj, int value) -> bool {
auto auid = parseScriptUniqueID(uniqueId);
if (auto res = GMLIB_Scoreboard::getInstance()->setScore(obj, auid, value)) {
return true;
RemoteCall::exportAs(
"GMLIB_API",
"setEntityScore",
[](std::string const& uniqueId, std::string const& obj, int value) -> bool {
auto auid = parseScriptUniqueID(uniqueId);
if (auto res = GMLIB_Scoreboard::getInstance()->setScore(obj, auid, value)) {
return true;
}
return false;
}
return false;
});
RemoteCall::exportAs("GMLIB_API", "resetEntityScore", [](std::string uniqueId, std::string obj) -> bool {
auto auid = parseScriptUniqueID(uniqueId);
return GMLIB_Scoreboard::getInstance()->resetScore(obj, auid);
});
RemoteCall::exportAs("GMLIB_API", "resetEntityScores", [](std::string uniqueId) -> bool {
);
RemoteCall::exportAs(
"GMLIB_API",
"resetEntityScore",
[](std::string const& uniqueId, std::string const& obj) -> bool {
auto auid = parseScriptUniqueID(uniqueId);
return GMLIB_Scoreboard::getInstance()->resetScore(obj, auid);
}
);
RemoteCall::exportAs("GMLIB_API", "resetEntityScores", [](std::string const& uniqueId) -> bool {
auto auid = parseScriptUniqueID(uniqueId);
return GMLIB_Scoreboard::getInstance()->resetScore(auid);
});
RemoteCall::exportAs("GMLIB_API", "fakePlayerHasScore", [](std::string name, std::string obj) -> bool {
if (auto result = GMLIB_Scoreboard::getInstance()->getScore(obj, name)) {
return true;
RemoteCall::exportAs(
"GMLIB_API",
"fakePlayerHasScore",
[](std::string const& name, std::string const& obj) -> bool {
if (auto result = GMLIB_Scoreboard::getInstance()->getScore(obj, name)) {
return true;
}
return false;
}
return false;
});
RemoteCall::exportAs("GMLIB_API", "getFakePlayerScore", [](std::string name, std::string obj) -> int {
);
RemoteCall::exportAs("GMLIB_API", "getFakePlayerScore", [](std::string const& name, std::string const& obj) -> int {
if (auto result = GMLIB_Scoreboard::getInstance()->getScore(obj, name)) {
return result.value();
}
return 0;
});
RemoteCall::exportAs("GMLIB_API", "addFakePlayerScore", [](std::string name, std::string obj, int value) -> bool {
if (auto res = GMLIB_Scoreboard::getInstance()->setScore(obj, name, value, PlayerScoreSetFunction::Add)) {
return true;
RemoteCall::exportAs(
"GMLIB_API",
"addFakePlayerScore",
[](std::string const& name, std::string const& obj, int value) -> bool {
if (auto res = GMLIB_Scoreboard::getInstance()->setScore(obj, name, value, PlayerScoreSetFunction::Add)) {
return true;
}
return false;
}
return false;
});
);
RemoteCall::exportAs(
"GMLIB_API",
"reduceFakePlayerScore",
[](std::string name, std::string obj, int value) -> bool {
[](std::string const& name, std::string const& obj, int value) -> bool {
if (auto res =
GMLIB_Scoreboard::getInstance()->setScore(obj, name, value, PlayerScoreSetFunction::Subtract)) {
return true;
@@ -346,19 +390,27 @@ void Export_Compatibility_API() {
return false;
}
);
RemoteCall::exportAs("GMLIB_API", "setFakePlayerScore", [](std::string name, std::string obj, int value) -> bool {
if (auto res = GMLIB_Scoreboard::getInstance()->setScore(obj, name, value)) {
return true;
RemoteCall::exportAs(
"GMLIB_API",
"setFakePlayerScore",
[](std::string const& name, std::string const& obj, int value) -> bool {
if (auto res = GMLIB_Scoreboard::getInstance()->setScore(obj, name, value)) {
return true;
}
return false;
}
return false;
});
RemoteCall::exportAs("GMLIB_API", "resetFakePlayerScore", [](std::string name, std::string obj) -> bool {
return GMLIB_Scoreboard::getInstance()->resetScore(obj, name);
});
RemoteCall::exportAs("GMLIB_API", "resetFakePlayerScores", [](std::string name) -> bool {
);
RemoteCall::exportAs(
"GMLIB_API",
"resetFakePlayerScore",
[](std::string const& name, std::string const& obj) -> bool {
return GMLIB_Scoreboard::getInstance()->resetScore(obj, name);
}
);
RemoteCall::exportAs("GMLIB_API", "resetFakePlayerScores", [](std::string const& name) -> bool {
return GMLIB_Scoreboard::getInstance()->resetScore(name);
});
RemoteCall::exportAs("GMLIB_API", "addObjective", [](std::string obj) -> bool {
RemoteCall::exportAs("GMLIB_API", "addObjective", [](std::string const& obj) -> bool {
if (auto res = GMLIB_Scoreboard::getInstance()->addObjective(obj)) {
return true;
}
@@ -367,29 +419,37 @@ void Export_Compatibility_API() {
RemoteCall::exportAs(
"GMLIB_API",
"addObjectiveWithDisplayName",
[](std::string obj, std::string displayName) -> bool {
[](std::string const& obj, std::string const& displayName) -> bool {
if (auto res = GMLIB_Scoreboard::getInstance()->addObjective(obj, displayName)) {
return true;
}
return false;
}
);
RemoteCall::exportAs("GMLIB_API", "getDisplayName", [](std::string obj) -> std::string {
RemoteCall::exportAs("GMLIB_API", "getDisplayName", [](std::string const& obj) -> std::string {
if (auto result = GMLIB_Scoreboard::getInstance()->getObjectiveDisplayName(obj)) {
return result.value();
}
return "";
});
RemoteCall::exportAs("GMLIB_API", "setDisplayName", [](std::string obj, std::string displayName) -> bool {
return GMLIB_Scoreboard::getInstance()->setObjectiveDisplayName(obj, displayName);
});
RemoteCall::exportAs("GMLIB_API", "removeObjective", [](std::string obj) -> bool {
RemoteCall::exportAs(
"GMLIB_API",
"setDisplayName",
[](std::string const& obj, std::string const& displayName) -> bool {
return GMLIB_Scoreboard::getInstance()->setObjectiveDisplayName(obj, displayName);
}
);
RemoteCall::exportAs("GMLIB_API", "removeObjective", [](std::string const& obj) -> bool {
return GMLIB_Scoreboard::getInstance()->removeObjective(obj);
});
RemoteCall::exportAs("GMLIB_API", "setDisplayObjective", [](std::string obj, std::string slot, int order) -> void {
return GMLIB_Scoreboard::getInstance()->setObjectiveDisplay(obj, slot, (ObjectiveSortOrder)order);
});
RemoteCall::exportAs("GMLIB_API", "clearDisplayObjective", [](std::string slot) -> void {
RemoteCall::exportAs(
"GMLIB_API",
"setDisplayObjective",
[](std::string const& obj, std::string const& slot, int order) -> void {
return GMLIB_Scoreboard::getInstance()->setObjectiveDisplay(obj, slot, (ObjectiveSortOrder)order);
}
);
RemoteCall::exportAs("GMLIB_API", "clearDisplayObjective", [](std::string const& slot) -> void {
return GMLIB_Scoreboard::getInstance()->clearObjectiveDisplay(slot);
});
RemoteCall::exportAs("GMLIB_API", "getAllObjectives", []() -> std::vector<std::string> {
@@ -453,15 +513,15 @@ void Export_Compatibility_API() {
return result;
}
);
RemoteCall::exportAs("GMLIB_API", "getPlayerFromUuid", [](std::string uuid) -> Player* {
RemoteCall::exportAs("GMLIB_API", "getPlayerFromUuid", [](std::string const& uuid) -> Player* {
auto uid = mce::UUID::fromString(uuid);
return ll::service::getLevel()->getPlayer(uuid);
});
RemoteCall::exportAs("GMLIB_API", "getPlayerFromUniqueId", [](std::string uniqueId) -> Actor* {
RemoteCall::exportAs("GMLIB_API", "getPlayerFromUniqueId", [](std::string const& uniqueId) -> Actor* {
auto auid = parseScriptUniqueID(uniqueId);
return ll::service::getLevel()->getPlayer(auid);
});
RemoteCall::exportAs("GMLIB_API", "getEntityFromUniqueId", [](std::string uniqueId) -> Actor* {
RemoteCall::exportAs("GMLIB_API", "getEntityFromUniqueId", [](std::string const& uniqueId) -> Actor* {
auto auid = parseScriptUniqueID(uniqueId);
return ll::service::getLevel()->fetchEntity(auid);
});
@@ -488,39 +548,43 @@ void Export_Compatibility_API() {
auto player = (GMLIB_Player*)pl;
player->clearSpawnPoint();
});
RemoteCall::exportAs("GMLIB_API", "mergePatchJson", [](std::string oldJson, std::string patchJson) -> std::string {
auto oldData = nlohmann::ordered_json::parse(oldJson);
auto newData = nlohmann::ordered_json::parse(patchJson);
oldData.merge_patch(newData);
return oldData.dump();
});
RemoteCall::exportAs("GMLIB_API", "getXuidByUuid", [](std::string uuid) -> std::string {
RemoteCall::exportAs(
"GMLIB_API",
"mergePatchJson",
[](std::string const& oldJson, std::string const& patchJson) -> std::string {
auto oldData = nlohmann::ordered_json::parse(oldJson);
auto newData = nlohmann::ordered_json::parse(patchJson);
oldData.merge_patch(newData);
return oldData.dump();
}
);
RemoteCall::exportAs("GMLIB_API", "getXuidByUuid", [](std::string const& uuid) -> std::string {
auto uid = mce::UUID::fromString(uuid);
auto result = GMLIB::UserCache::getXuidByUuid(uid);
return result ? result.value() : "";
});
RemoteCall::exportAs("GMLIB_API", "getNameByUuid", [](std::string uuid) -> std::string {
RemoteCall::exportAs("GMLIB_API", "getNameByUuid", [](std::string const& uuid) -> std::string {
auto uid = mce::UUID::fromString(uuid);
auto result = GMLIB::UserCache::getNameByUuid(uid);
return result ? result.value() : "";
});
RemoteCall::exportAs("GMLIB_API", "getUuidByXuid", [](std::string xuid) -> std::string {
RemoteCall::exportAs("GMLIB_API", "getUuidByXuid", [](std::string const& xuid) -> std::string {
auto result = GMLIB::UserCache::getUuidByXuid(xuid);
return result ? result.value().asString() : "";
});
RemoteCall::exportAs("GMLIB_API", "getNameByXuid", [](std::string xuid) -> std::string {
RemoteCall::exportAs("GMLIB_API", "getNameByXuid", [](std::string const& xuid) -> std::string {
auto result = GMLIB::UserCache::getNameByXuid(xuid);
return result ? result.value() : "";
});
RemoteCall::exportAs("GMLIB_API", "getXuidByName", [](std::string name) -> std::string {
RemoteCall::exportAs("GMLIB_API", "getXuidByName", [](std::string const& name) -> std::string {
auto result = GMLIB::UserCache::getXuidByName(name);
return result ? result.value() : "";
});
RemoteCall::exportAs("GMLIB_API", "getUuidByName", [](std::string name) -> std::string {
RemoteCall::exportAs("GMLIB_API", "getUuidByName", [](std::string const& name) -> std::string {
auto result = GMLIB::UserCache::getUuidByName(name);
return result ? result.value().asString() : "";
});
RemoteCall::exportAs("GMLIB_API", "getUuidByName", [](std::string name) -> std::string {
RemoteCall::exportAs("GMLIB_API", "getUuidByName", [](std::string const& name) -> std::string {
auto result = GMLIB::UserCache::getUuidByName(name);
return result ? result.value().asString() : "";
});
@@ -539,7 +603,7 @@ void Export_Compatibility_API() {
return result;
}
);
RemoteCall::exportAs("GMLIB_API", "getBlockRuntimeId", [](std::string blockName) -> uint {
RemoteCall::exportAs("GMLIB_API", "getBlockRuntimeId", [](std::string const& blockName) -> uint {
if (auto block = Block::tryGetFromRegistry(blockName)) {
return block->getRuntimeId();
}
+12 -10
View File
@@ -6,15 +6,16 @@ void Export_Event_API() {
RemoteCall::exportAs(
"GMLIB_API",
"callCustomEvent",
[eventBus](std::string eventName, std::string eventId) -> bool {
[eventBus](std::string const& eventName, std::string const& eventId) -> bool {
if (RemoteCall::hasFunc(eventName, eventId)) {
switch (doHash(eventName)) {
case doHash("onClientLogin"): {
auto Call = RemoteCall::importAs<
bool(std::string realName, std::string uuid, std::string serverXuid, std::string clientXuid)>(
eventName,
eventId
);
auto Call = RemoteCall::importAs<bool(
std::string const& realName,
std::string const& uuid,
std::string const& serverXuid,
std::string const& clientXuid
)>(eventName, eventId);
eventBus->emplaceListener<GMLIB::Event::PacketEvent::ClientLoginAfterEvent>(
[Call](GMLIB::Event::PacketEvent::ClientLoginAfterEvent& ev) {
try {
@@ -136,10 +137,11 @@ void Export_Event_API() {
return true;
}
case doHash("onDeathMessage"): {
auto Call = RemoteCall::importAs<bool(std::string message, std::vector<std::string>, Actor * dead)>(
eventName,
eventId
);
auto Call =
RemoteCall::importAs<bool(std::string const& message, std::vector<std::string>, Actor* dead)>(
eventName,
eventId
);
eventBus->emplaceListener<GMLIB::Event::EntityEvent::DeathMessageAfterEvent>(
[Call](GMLIB::Event::EntityEvent::DeathMessageAfterEvent& ev) {
auto msg = ev.getDeathMessage();
+30 -22
View File
@@ -2,7 +2,7 @@
std::unordered_set<std::string> HardCodedKeys = {"AlwaysUnlocked", "PlayerHasManyItems", "PlayerInWater", "None"};
std::variant<std::string, std::vector<RecipeIngredient>> makeRecipeUnlockingKey(std::string& key) {
std::variant<std::string, std::vector<RecipeIngredient>> makeRecipeUnlockingKey(std::string const& key) {
if (HardCodedKeys.count(key)) {
return key;
}
@@ -17,11 +17,11 @@ void Export_Legacy_GMLib_ModAPI() {
RemoteCall::exportAs(
"GMLib_ModAPI",
"registerShapelessRecipe",
[](std::string recipe_id,
[](std::string const& recipe_id,
std::vector<std::string> ingredients,
std::string result,
std::string const& result,
int count,
std::string unlock) -> void {
std::string const& unlock) -> void {
auto level = GMLIB_Level::getInstance();
if (!level) {
return;
@@ -39,12 +39,12 @@ void Export_Legacy_GMLib_ModAPI() {
RemoteCall::exportAs(
"GMLib_ModAPI",
"registerShapedRecipe",
[](std::string recipe_id,
[](std::string const& recipe_id,
std::vector<std::string> shape,
std::vector<std::string> ingredients,
std::string result,
std::string const& result,
int count,
std::string unlock) -> void {
std::string const& unlock) -> void {
auto level = GMLIB_Level::getInstance();
if (!level) {
return;
@@ -62,7 +62,10 @@ void Export_Legacy_GMLib_ModAPI() {
RemoteCall::exportAs(
"GMLib_ModAPI",
"registerFurnaceRecipe",
[](std::string recipe_id, std::string input, std::string output, std::vector<std::string> tags) -> void {
[](std::string const& recipe_id,
std::string const& input,
std::string const& output,
std::vector<std::string> tags) -> void {
auto level = GMLIB_Level::getInstance();
if (!level) {
return;
@@ -75,7 +78,8 @@ void Export_Legacy_GMLib_ModAPI() {
RemoteCall::exportAs(
"GMLib_ModAPI",
"registerBrewingMixRecipe",
[](std::string recipe_id, std::string input, std::string output, std::string reagent) -> void {
[](std::string const& recipe_id, std::string const& input, std::string const& output, std::string const& reagent
) -> void {
auto level = GMLIB_Level::getInstance();
if (!level) {
return;
@@ -87,7 +91,8 @@ void Export_Legacy_GMLib_ModAPI() {
RemoteCall::exportAs(
"GMLib_ModAPI",
"registerBrewingContainerRecipe",
[](std::string recipe_id, std::string input, std::string output, std::string reagent) -> void {
[](std::string const& recipe_id, std::string const& input, std::string const& output, std::string const& reagent
) -> void {
auto level = GMLIB_Level::getInstance();
if (!level) {
return;
@@ -101,11 +106,11 @@ void Export_Legacy_GMLib_ModAPI() {
RemoteCall::exportAs(
"GMLib_ModAPI",
"registerSmithingTransformRecipe",
[](std::string recipe_id,
std::string smithing_template,
std::string base,
std::string addition,
std::string result) -> void {
[](std::string const& recipe_id,
std::string const& smithing_template,
std::string const& base,
std::string const& addition,
std::string const& result) -> void {
auto level = GMLIB_Level::getInstance();
if (!level) {
return;
@@ -122,7 +127,10 @@ void Export_Legacy_GMLib_ModAPI() {
RemoteCall::exportAs(
"GMLib_ModAPI",
"registerSmithingTrimRecipe",
[](std::string recipe_id, std::string smithing_template, std::string base, std::string addition) -> void {
[](std::string const& recipe_id,
std::string const& smithing_template,
std::string const& base,
std::string const& addition) -> void {
auto level = GMLIB_Level::getInstance();
if (!level) {
return;
@@ -133,12 +141,12 @@ void Export_Legacy_GMLib_ModAPI() {
RemoteCall::exportAs(
"GMLib_ModAPI",
"registerStoneCutterRecipe",
[](std::string recipe_id,
std::string input,
int input_data,
std::string output,
int output_data,
int output_count) -> void {
[](std::string const& recipe_id,
std::string const& input,
int input_data,
std::string const& output,
int output_data,
int output_count) -> void {
auto level = GMLIB_Level::getInstance();
if (!level) {
return;
+22 -8
View File
@@ -23,7 +23,7 @@ void Export_Legacy_GMLib_ServerAPI() {
}
return level->getLevelName();
});
RemoteCall::exportAs("GMLib_ServerAPI", "setLevelName", [](std::string name) -> void {
RemoteCall::exportAs("GMLib_ServerAPI", "setLevelName", [](std::string const& name) -> void {
auto level = GMLIB_Level::getInstance();
if (!level) {
return;
@@ -33,13 +33,17 @@ void Export_Legacy_GMLib_ServerAPI() {
RemoteCall::exportAs("GMLib_ServerAPI", "setFakeSeed", [](int64_t seed) -> void {
return GMLIB_Level::setFakeSeed(seed);
});
RemoteCall::exportAs("GMLib_ServerAPI", "spawnEntity", [](std::pair<Vec3, int> pos, std::string name) -> Actor* {
return GMLIB_Spawner::spawnEntity(pos.first, pos.second, name);
});
RemoteCall::exportAs(
"GMLib_ServerAPI",
"spawnEntity",
[](std::pair<Vec3, int> pos, std::string const& name) -> Actor* {
return GMLIB_Spawner::spawnEntity(pos.first, pos.second, name);
}
);
RemoteCall::exportAs(
"GMLib_ServerAPI",
"shootProjectile",
[](Actor* owner, std::string name, float speed, float offset) -> Actor* {
[](Actor* owner, std::string const& name, float speed, float offset) -> Actor* {
auto ac = (GMLIB_Actor*)owner;
return ac->shootProjectile(name, speed, offset);
}
@@ -53,7 +57,17 @@ void Export_Legacy_GMLib_ServerAPI() {
}
);
RemoteCall::exportAs("GMLib_ServerAPI", "PlayerToEntity", [](Player* player) -> Actor* { return (Actor*)player; });
RemoteCall::exportAs("GMLib_ServerAPI", "addFakeList", [](const std::string& xuid,const std::string& name) -> bool { return GMLIB::Server::FakeList::addFakeList(name,xuid,ActorUniqueID(-1)); });
RemoteCall::exportAs("GMLib_ServerAPI", "removeFakeList", [](const std::string& nameOrXuid) -> bool { return GMLIB::Server::FakeList::removeFakeList(nameOrXuid); });
RemoteCall::exportAs("GMLib_ServerAPI", "removeAllFakeList", []() -> void { return GMLIB::Server::FakeList::removeAllFakeLists(); });
RemoteCall::exportAs(
"GMLib_ServerAPI",
"addFakeList",
[](const std::string& xuid, const std::string& name) -> bool {
return GMLIB::Server::FakeList::addFakeList(name, xuid, ActorUniqueID(-1));
}
);
RemoteCall::exportAs("GMLib_ServerAPI", "removeFakeList", [](const std::string& nameOrXuid) -> bool {
return GMLIB::Server::FakeList::removeFakeList(nameOrXuid);
});
RemoteCall::exportAs("GMLib_ServerAPI", "removeAllFakeList", []() -> void {
return GMLIB::Server::FakeList::removeAllFakeLists();
});
}
+2 -6
View File
@@ -8,7 +8,7 @@ std::string removeBrackets(std::string a1) {
return a1;
}
bool isParameters(std::string str) {
bool isParameters(std::string const& str) {
std::regex reg("[<]([^<>]+)[>]");
return std::regex_search(removeBrackets(str), reg);
}
@@ -64,11 +64,7 @@ bool registerServerPlaceholder(
);
} else {
auto Call = RemoteCall::importAs<std::string()>(PluginName, FuncName);
GMLIB::Server::PlaceholderAPI::registerServerPlaceholder(
PAPIName,
[Call]() { return Call(); },
PluginName
);
GMLIB::Server::PlaceholderAPI::registerServerPlaceholder(PAPIName, [Call]() { return Call(); }, PluginName);
}
return true;
}