This commit is contained in:
Tsubasa6848
2024-03-03 02:57:12 +08:00
Unverified
5 changed files with 81 additions and 108 deletions
+27 -21
View File
@@ -1,11 +1,14 @@
const PAPIgetValueAPI = ll.import("BEPlaceholderAPI", "GetValue") const PlaceholderAPI = {
const PAPIgetValueByPlayerAPI = ll.import("BEPlaceholderAPI", "GetValueWithPlayer") getValueAPI: ll.import("BEPlaceholderAPI", "GetValue"),
const PAPIregisterPlayerPlaceholderAPI = ll.import("BEPlaceholderAPI", "registerPlayerPlaceholder") getValueByPlayerAPI: ll.import("BEPlaceholderAPI", "GetValueWithPlayer"),
const PAPIregisterServerPlaceholderAPI = ll.import("BEPlaceholderAPI", "registerServerPlaceholder") registerPlayerPlaceholderAPI: ll.import("BEPlaceholderAPI", "registerPlayerPlaceholder"),
const PAPIregisterStaticPlaceholderAPI = ll.import("BEPlaceholderAPI", "registerStaticPlaceholder") registerServerPlaceholderAPI: ll.import("BEPlaceholderAPI", "registerServerPlaceholder"),
const PAPItranslateStringAPI = ll.import("BEPlaceholderAPI", "translateString") registerStaticPlaceholderAPI: ll.import("BEPlaceholderAPI", "registerStaticPlaceholder"),
const PAPIunRegisterPlaceholderAPI = ll.import("BEPlaceholderAPI", "unRegisterPlaceholder") translateStringAPI: ll.import("BEPlaceholderAPI", "translateString"),
const PAPIgetAllPAPI = ll.import("BEPlaceholderAPI", "getAllPAPI") translateStringWithPlayerAPI: ll.import("BEPlaceholderAPI", "translateStringWithPlayer"),
unRegisterPlaceholderAPI: ll.import("BEPlaceholderAPI", "unRegisterPlaceholder"),
getAllPAPI: ll.import("BEPlaceholderAPI", "getAllPAPI")
}
Function.prototype.getName = function () { Function.prototype.getName = function () {
return this.name || this.toString().match(/function\s*([^(]*)\(/)[1] return this.name || this.toString().match(/function\s*([^(]*)\(/)[1]
@@ -17,38 +20,41 @@ class PAPI {
} }
static registerPlayerPlaceholder(func, PluginName, PAPIName) { static registerPlayerPlaceholder(func, PluginName, PAPIName) {
ll.export(func, PluginName, func.getName()) ll.export(func, PluginName, func.getName());
PAPIregisterPlayerPlaceholderAPI(PluginName, func.getName(), PAPIName) PlaceholderAPI.registerPlayerPlaceholderAPI(PluginName, func.getName(), PAPIName);
} }
static registerServerPlaceholder(func, PluginName, PAPIName) { static registerServerPlaceholder(func, PluginName, PAPIName) {
ll.export(func, PluginName, func.getName()) ll.export(func, PluginName, func.getName());
PAPIregisterServerPlaceholderAPI(PluginName, func.getName(), PAPIName) PlaceholderAPI.registerServerPlaceholderAPI(PluginName, func.getName(), PAPIName);
} }
static registerStaticPlaceholder(func, PluginName, PAPIName, UpdateInterval = 50) { static registerStaticPlaceholder(func, PluginName, PAPIName, UpdateInterval = 50) {
ll.export(func, PluginName, func.getName()) ll.export(func, PluginName, func.getName());
PAPIregisterStaticPlaceholderAPI(PluginName, func.getName(), PAPIName, UpdateInterval) PlaceholderAPI.registerStaticPlaceholderAPI(PluginName, func.getName(), PAPIName, UpdateInterval);
} }
static getValue(key) { static getValue(key) {
return PAPIgetValueAPI(key) return PlaceholderAPI.getValueAPI(key);
} }
static getValueByPlayer(key, xuid) { static getValueByPlayer(key, pl) {
return PAPIgetValueByPlayerAPI(key, xuid) return PlaceholderAPI.getValueByPlayerAPI(key, pl);
} }
static translateString(str, xuid = "") { static translateString(str, pl = null) {
return PAPItranslateStringAPI(str, xuid) if (pl) {
return PlaceholderAPI.translateStringWithPlayerAPI(str, pl);
}
return PlaceholderAPI.translateStringAPI(str);
} }
static unRegisterPlaceholder(str) { static unRegisterPlaceholder(str) {
return PAPIunRegisterPlaceholderAPI(str) return PlaceholderAPI.unRegisterPlaceholderAPI(str);
} }
static getAllPAPI() { static getAllPAPI() {
return PAPIgetAllPAPI(); return PlaceholderAPI.getAllPAPI();
} }
} }
+2 -1
View File
@@ -1,9 +1,10 @@
#pragma once #pragma once
#include <include_all.h> #include <include_all.h>
#include <RemoteCallAPI.h> #include <RemoteCallAPI.h>
#define PLUGIN_NAME "GMLIB-LRCA" #define PLUGIN_NAME "GMLIB-LRCA"
#define LIB_VERSION SemVersion(0, 9, 0, "", "") #define LIB_VERSION SemVersion(0, 9, 1, "", "")
extern ll::Logger logger; extern ll::Logger logger;
+48 -82
View File
@@ -3,114 +3,79 @@
namespace PAPIRemoteCall { namespace PAPIRemoteCall {
std::string removeBrackets(std::string a1) {
a1.erase(a1.find_last_not_of("%") + 1);
return a1;
}
bool isParameters(std::string str) {
std::regex reg("[<]([^<>]+)[>]");
return std::regex_search(removeBrackets(str), reg);
}
std::string GetValue(std::string const& from) { return GMLIB::Server::PlaceholderAPI::getValue(from); } std::string GetValue(std::string const& from) { return GMLIB::Server::PlaceholderAPI::getValue(from); }
std::string GetValueWithPlayer(std::string const& a1, std::string const& a2) { std::string GetValueWithPlayer(std::string const& a1, std::string const& a2) {
return GMLIB::Server::PlaceholderAPI::getValue(a1, ll::service::bedrock::getLevel()->getPlayer(a2)); return GMLIB::Server::PlaceholderAPI::getValue(a1, ll::service::bedrock::getLevel()->getPlayer(a2));
} }
std::string bool registerPlayerPlaceholder(
registerPlayerPlaceholder(std::string const& PluginName, std::string const& FuncName, std::string const& PAPIName) { std::string const& PluginName,
std::string const& FuncName,
std::string const& PAPIName
) {
if (RemoteCall::hasFunc(PluginName, FuncName)) { if (RemoteCall::hasFunc(PluginName, FuncName)) {
if (isParameters(PAPIName)) { auto Call = RemoteCall::importAs<std::string(Player * pl)>(PluginName, FuncName);
auto Call = GMLIB::Server::PlaceholderAPI::registerPlayerPlaceholder(
RemoteCall::importAs<std::string(std::string const& arg, std::unordered_map<std::string, std::string>)>( PAPIName,
PluginName, [Call](Player* sp) { return Call(sp); },
FuncName PluginName
); );
GMLIB::Server::PlaceholderAPI::registerPlayerPlaceholder( return true;
PAPIName,
[Call](Player* sp, std::unordered_map<std::string, std::string> map) {
return Call(sp->getXuid(), map);
},
PluginName
);
} else {
auto Call = RemoteCall::importAs<std::string(std::string const& arg)>(PluginName, FuncName);
GMLIB::Server::PlaceholderAPI::registerPlayerPlaceholder(
PAPIName,
[Call](Player* sp) { return Call(sp->getXuid()); },
PluginName
);
}
} else {
// logger.error("Function no find({}:{})", PluginName, FuncName);
return "Function no find";
} }
return "Register Success"; return false;
} }
std::string bool registerServerPlaceholder(
registerServerPlaceholder(std::string const& PluginName, std::string const& FuncName, std::string const& PAPIName) { std::string const& PluginName,
std::string const& FuncName,
std::string const& PAPIName
) {
if (RemoteCall::hasFunc(PluginName, FuncName)) { if (RemoteCall::hasFunc(PluginName, FuncName)) {
if (isParameters(PAPIName)) { auto Call = RemoteCall::importAs<std::string()>(PluginName, FuncName);
auto Call = GMLIB::Server::PlaceholderAPI::registerServerPlaceholder(
RemoteCall::importAs<std::string(std::unordered_map<std::string, std::string>)>(PluginName, FuncName); PAPIName,
GMLIB::Server::PlaceholderAPI::registerServerPlaceholder( [Call]() { return Call(); },
PAPIName, PluginName
[Call](std::unordered_map<std::string, std::string> map) { return Call(map); }, );
PluginName return true;
);
} else {
auto Call = RemoteCall::importAs<std::string()>(PluginName, FuncName);
GMLIB::Server::PlaceholderAPI::registerServerPlaceholder(
PAPIName,
[Call]() { return Call(); },
PluginName
);
}
} else {
// logger.error("Function no find({}:{})", PluginName, FuncName);
return "Function no find";
} }
return "Register Success"; return false;
} }
std::string registerStaticPlaceholder( bool registerStaticPlaceholder(
std::string const& PluginName, std::string const& PluginName,
std::string const& FuncName, std::string const& FuncName,
std::string const& PAPIName, std::string const& PAPIName,
int num int num
) { ) {
if (RemoteCall::hasFunc(PluginName, FuncName)) { if (RemoteCall::hasFunc(PluginName, FuncName)) {
if (isParameters(PAPIName)) { auto Call = RemoteCall::importAs<std::string()>(PluginName, FuncName);
auto Call = RemoteCall::importAs<std::string()>(PluginName, FuncName); if (num == -1) {
if (num == -1) { GMLIB::Server::PlaceholderAPI::registerStaticPlaceholder(
GMLIB::Server::PlaceholderAPI::registerStaticPlaceholder( PAPIName,
PAPIName, [Call] { return Call(); },
[Call] { return Call(); }, PluginName
PluginName );
); } else {
} else { GMLIB::Server::PlaceholderAPI::registerStaticPlaceholder(
GMLIB::Server::PlaceholderAPI::registerStaticPlaceholder( PAPIName,
PAPIName, num,
num, [Call] { return Call(); },
[Call] { return Call(); }, PluginName
PluginName );
);
}
} }
} else { return true;
// logger.error("Function no find({}:{})", PluginName, FuncName);
return "Function no find";
} }
return "Register Success"; return false;
} }
std::string translateString(std::string const& str, std::string const& xuid) { std::string translateStringWithPlayer(std::string const& str, Player* pl) {
return GMLIB::Server::PlaceholderAPI::translate(str, ll::service::bedrock::getLevel()->getPlayerByXuid(xuid)); return GMLIB::Server::PlaceholderAPI::translateString(str, pl);
} }
std::string translateString(std::string const& str) { return GMLIB::Server::PlaceholderAPI::translateString(str); }
bool unRegisterPlaceholder(std::string const& str) { return GMLIB::Server::PlaceholderAPI::unRegisterPlaceholder(str); } bool unRegisterPlaceholder(std::string const& str) { return GMLIB::Server::PlaceholderAPI::unRegisterPlaceholder(str); }
std::vector<std::string> getAllPAPI() { return GMLIB::Server::PlaceholderAPI::getAllPAPI(); } std::vector<std::string> getAllPAPI() { return GMLIB::Server::PlaceholderAPI::getAllPAPI(); }
@@ -127,6 +92,7 @@ void ExportPAPI() {
EXPORTAPI(PAPIRemoteCall::GetValue); EXPORTAPI(PAPIRemoteCall::GetValue);
EXPORTAPI(PAPIRemoteCall::GetValueWithPlayer); EXPORTAPI(PAPIRemoteCall::GetValueWithPlayer);
EXPORTAPI(PAPIRemoteCall::translateString); EXPORTAPI(PAPIRemoteCall::translateString);
EXPORTAPI(PAPIRemoteCall::translateStringWithPlayer);
EXPORTAPI(PAPIRemoteCall::unRegisterPlaceholder); EXPORTAPI(PAPIRemoteCall::unRegisterPlaceholder);
EXPORTAPI(PAPIRemoteCall::getAllPAPI); EXPORTAPI(PAPIRemoteCall::getAllPAPI);
} }
+3 -3
View File
@@ -1,7 +1,7 @@
{ {
"format_version": 2, "format_version": 2,
"tooth": "github.com/GroupMountain/GMLIB-LegacyRemoteCallApi", "tooth": "github.com/GroupMountain/GMLIB-LegacyRemoteCallApi",
"version": "0.9.0", "version": "0.9.1",
"info": { "info": {
"name": "GMLIB-LegacyRemoteCallApi", "name": "GMLIB-LegacyRemoteCallApi",
"description": "Legacy RemoteCall API for GMLIB", "description": "Legacy RemoteCall API for GMLIB",
@@ -14,9 +14,9 @@
"library" "library"
] ]
}, },
"asset_url": "https://github.com/GroupMountain/GMLIB-LegacyRemoteCallApi/releases/download/v0.9.0/GMLIB-LegacyRemoteCallApi-windows-x64.zip", "asset_url": "https://github.com/GroupMountain/GMLIB-LegacyRemoteCallApi/releases/download/v0.9.1/GMLIB-LegacyRemoteCallApi-windows-x64.zip",
"dependencies": { "dependencies": {
"github.com/GroupMountain/GMLIB": ">=0.9.0" "github.com/GroupMountain/GMLIB": ">=0.9.2"
}, },
"files": { "files": {
"place": [ "place": [