feat: world spawn api
This commit is contained in:
+28
-3
@@ -82,7 +82,12 @@ const GMLIB_API = {
|
||||
getAllScoreboardEntities: ll.import("GMLIB_API", "getAllScoreboardEntities"),
|
||||
getPlayerFromUuid: ll.import("GMLIB_API", "getPlayerFromUuid"),
|
||||
getPlayerFromUniqueId: ll.import("GMLIB_API", "getPlayerFromUniqueId"),
|
||||
getEntityFromUniqueId: ll.import("GMLIB_API", "getEntityFromUniqueId")
|
||||
getEntityFromUniqueId: ll.import("GMLIB_API", "getEntityFromUniqueId"),
|
||||
getWorldSpawn: ll.import("GMLIB_API", "getWorldSpawn"),
|
||||
setWorldSpawn: ll.import("GMLIB_API", "setWorldSpawn"),
|
||||
getPlayerSpawnPoint: ll.import("GMLIB_API", "getPlayerSpawnPoint"),
|
||||
setPlayerSpawnPoint: ll.import("GMLIB_API", "setPlayerSpawnPoint"),
|
||||
clearPlayerSpawnPoint: ll.import("GMLIB_API", "clearPlayerSpawnPoint")
|
||||
}
|
||||
|
||||
const FloatingTextList = [];
|
||||
@@ -281,9 +286,9 @@ class Minecraft {
|
||||
return nbt;
|
||||
}
|
||||
|
||||
static setPlayerNbt(uuid, nbt) {
|
||||
static setPlayerNbt(uuid, nbt, forceCreate = true) {
|
||||
let snbt = nbt.toSNBT();
|
||||
return GMLIB_API.setPlayerNbt(uuid, snbt);
|
||||
return GMLIB_API.setPlayerNbt(uuid, snbt, forceCreate);
|
||||
}
|
||||
|
||||
static setPlayerNbtTags(uuid, nbt, tags) {
|
||||
@@ -303,6 +308,26 @@ class Minecraft {
|
||||
return GMLIB_API.setPlayerPosition(uuid, pos);
|
||||
}
|
||||
|
||||
static getWorldSpawn() {
|
||||
return GMLIB_API.getWorldSpawn();
|
||||
}
|
||||
|
||||
static setWorldSpawn(pos) {
|
||||
return GMLIB_API.setWorldSpawn(pos);
|
||||
}
|
||||
|
||||
static getPlayerSpawnPoint() {
|
||||
return GMLIB_API.getPlayerSpawnPoint();
|
||||
}
|
||||
|
||||
static setPlayerSpawnPoint(pos) {
|
||||
GMLIB_API.setPlayerSpawnPoint(pos);
|
||||
}
|
||||
|
||||
static clearPlayerSpawnPoint() {
|
||||
GMLIB_API.clearPlayerSpawnPoint();
|
||||
}
|
||||
|
||||
static setEducationFeatureEnabled() {
|
||||
return GMLIB_API.setEducationFeatureEnabled();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "${pluginName}",
|
||||
"entry": "${pluginFile}",
|
||||
"version": "0.9.3",
|
||||
"type": "native",
|
||||
"dependencies": [
|
||||
{
|
||||
|
||||
@@ -51,10 +51,10 @@ void Export_Compatibility_API() {
|
||||
}
|
||||
return "null";
|
||||
});
|
||||
RemoteCall::exportAs("GMLIB_API", "setPlayerNbt", [](std::string uuid, std::string snbt) -> bool {
|
||||
RemoteCall::exportAs("GMLIB_API", "setPlayerNbt", [](std::string uuid, std::string snbt, bool forceCreate) -> bool {
|
||||
auto uid = mce::UUID::fromString(uuid);
|
||||
auto nbt = CompoundTag::fromSnbt(snbt);
|
||||
return GMLIB_Player::setPlayerNbt(uid, *nbt);
|
||||
return GMLIB_Player::setPlayerNbt(uid, *nbt, forceCreate);
|
||||
});
|
||||
RemoteCall::exportAs(
|
||||
"GMLIB_API",
|
||||
@@ -392,4 +392,27 @@ void Export_Compatibility_API() {
|
||||
auto auid = parseScriptUniqueID(uniqueId);
|
||||
return ll::service::getLevel()->fetchEntity(auid);
|
||||
});
|
||||
RemoteCall::exportAs("GMLIB_API", "getWorldSpawn", []() -> std::pair<BlockPos, int> {
|
||||
return {GMLIB_Level::getInstance()->getWorldSpawn(), 0};
|
||||
});
|
||||
RemoteCall::exportAs("GMLIB_API", "setWorldSpawn", [](std::pair<BlockPos, int> pos) -> bool {
|
||||
if (pos.second != 0) {
|
||||
return false;
|
||||
}
|
||||
GMLIB_Level::getInstance()->setWorldSpawn(pos.first);
|
||||
return true;
|
||||
});
|
||||
RemoteCall::exportAs("GMLIB_API", "getPlayerSpawnPoint", [](Player* pl) -> std::pair<BlockPos, int> {
|
||||
auto player = (GMLIB_Player*)pl;
|
||||
auto res = player->getSpawnPoint();
|
||||
return {res.first, res.second};
|
||||
});
|
||||
RemoteCall::exportAs("GMLIB_API", "setPlayerSpawnPoint", [](Player* pl, std::pair<BlockPos, int> pos) -> void {
|
||||
auto player = (GMLIB_Player*)pl;
|
||||
player->setSpawnPoint(pos.first, pos.second);
|
||||
});
|
||||
RemoteCall::exportAs("GMLIB_API", "clearPlayerSpawnPoint", [](Player* pl) -> void {
|
||||
auto player = (GMLIB_Player*)pl;
|
||||
player->clearSpawnPoint();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user