feat: feat #12

This commit is contained in:
Tsubasa6848
2024-03-23 03:24:02 +08:00
Unverified
parent b1e598774f
commit 161123a670
5 changed files with 481 additions and 20 deletions
+221 -2
View File
@@ -45,7 +45,44 @@ const GMLIB_API = {
registerShapelessRecipe: ll.import("GMLib_ModAPI", "registerShapelessRecipe"),
isVersionMatched: ll.import("GMLIB_API", "isVersionMatched"),
getVersion_LRCA: ll.import("GMLIB_API", "getVersion_LRCA"),
getVersion_GMLIB: ll.import("GMLIB_API", "getVersion_GMLIB")
getVersion_GMLIB: ll.import("GMLIB_API", "getVersion_GMLIB"),
getPlayerPosition: ll.import("GMLIB_API", "getPlayerPosition"),
setPlayerPosition: ll.import("GMLIB_API", "setPlayerPosition"),
playerHasScore: ll.import("GMLIB_API", "playerHasScore"),
getPlayerScore: ll.import("GMLIB_API", "getPlayerScore"),
addPlayerScore: ll.import("GMLIB_API", "addPlayerScore"),
reducePlayerScore: ll.import("GMLIB_API", "reducePlayerScore"),
setPlayerScore: ll.import("GMLIB_API", "setPlayerScore"),
resetPlayerScore: ll.import("GMLIB_API", "resetPlayerScore"),
resetPlayerScores: ll.import("GMLIB_API", "resetPlayerScores"),
entityHasScore: ll.import("GMLIB_API", "entityHasScore"),
getEntityScore: ll.import("GMLIB_API", "getEntityScore"),
addEntityScore: ll.import("GMLIB_API", "addEntityScore"),
reduceEntityScore: ll.import("GMLIB_API", "reduceEntityScore"),
setEntityScore: ll.import("GMLIB_API", "setEntityScore"),
resetEntityScore: ll.import("GMLIB_API", "resetEntityScore"),
resetEntityScores: ll.import("GMLIB_API", "resetEntityScores"),
fakePlayerHasScore: ll.import("GMLIB_API", "fakePlayerHasScore"),
getFakePlayerScore: ll.import("GMLIB_API", "getFakePlayerScore"),
addFakePlayerScore: ll.import("GMLIB_API", "addFakePlayerScore"),
reduceFakePlayerScore: ll.import("GMLIB_API", "reduceFakePlayerScore"),
setFakePlayerScore: ll.import("GMLIB_API", "setFakePlayerScore"),
resetFakePlayerScore: ll.import("GMLIB_API", "resetFakePlayerScore"),
resetFakePlayerScores: ll.import("GMLIB_API", "resetFakePlayerScores"),
addObjective: ll.import("GMLIB_API", "addObjective"),
addObjectiveWithDisplayName: ll.import("GMLIB_API", "addObjectiveWithDisplayName"),
getDisplayName: ll.import("GMLIB_API", "getDisplayName"),
setDisplayName: ll.import("GMLIB_API", "setDisplayName"),
removeObjective: ll.import("GMLIB_API", "removeObjective"),
setDisplayObjective: ll.import("GMLIB_API", "setDisplayObjective"),
clearDisplayObjective: ll.import("GMLIB_API", "clearDisplayObjective"),
getAllObjectives: ll.import("GMLIB_API", "getAllObjectives"),
getAllScoreboardPlayers: ll.import("GMLIB_API", "getAllScoreboardPlayers"),
getAllScoreboardFakePlayers: ll.import("GMLIB_API", "getAllScoreboardFakePlayers"),
getAllScoreboardEntities: ll.import("GMLIB_API", "getAllScoreboardEntities"),
getPlayerFromUuid: ll.import("GMLIB_API", "getPlayerFromUuid"),
getPlayerFromUniqueId: ll.import("GMLIB_API", "getPlayerFromUniqueId"),
getEntityFromUniqueId: ll.import("GMLIB_API", "getEntityFromUniqueId")
}
const FloatingTextList = [];
@@ -254,6 +291,18 @@ class Minecraft {
return GMLIB_API.setPlayerNbtTags(uuid, snbt, tags);
}
static getPlayerPosition(uuid) {
let pos = GMLIB_API.getPlayerPosition(uuid);
if (pos.dimid == -1) {
return null;
}
return pos;
}
static setPlayerPosition(uuid, pos) {
return GMLIB_API.setPlayerPosition(uuid, pos);
}
static setEducationFeatureEnabled() {
return GMLIB_API.setEducationFeatureEnabled();
}
@@ -409,4 +458,174 @@ class GMLIB {
}
}
module.exports = { StaticFloatingText, DynamicFloatingText, Minecraft, Recipes, Experiments, GMLIB };
class Scoreboard {
constructor() {
throw new Error("Static class cannot be instantiated");
}
// Targets
static getAllTrackedEntities() {
return GMLIB_API.getAllScoreboardEntities();
}
static getAllTrackedPlayers() {
return GMLIB_API.getAllScoreboardPlayers();
}
static getAllTrackedFakePlayers() {
return GMLIB_API.getAllScoreboardFakePlayers();
}
static getAllTrackedTargets() {
let result = [];
GMLIB_API.getAllScoreboardPlayers().forEach((uuid) => {
let key = {
"Type": "Player",
"Uuid": uuid
};
result.push(key);
});
GMLIB_API.getAllScoreboardEntities().forEach((uniqueId) => {
let key = {
"Type": "Entity",
"UniqueId": uniqueId
};
result.push(key);
});
GMLIB_API.getAllScoreboardFakePlayers().forEach((name) => {
let key = {
"Type": "FakePlayer",
"Name": name
};
result.push(key);
});
return result;
}
// Objectives
static addObjective(name, displayName = "") {
if (displayName == "") {
return GMLIB_API.addObjective(name);
}
return GMLIB_API.addObjectiveWithDisplayName(name, displayName);
}
static removeObjective(name) {
return GMLIB_API.removeObjective(name);
}
static getAllObjectives() {
return GMLIB_API.getAllObjectives();
}
static getDisplayName(objective) {
return GMLIB_API.getDisplayName(objective);
}
static setDisplayName(objective, displayName) {
return GMLIB_API.setDisplayName(objective, displayName);
}
static setDisplay(objective, slot, order = 0) {
GMLIB_API.setDisplayObjective(objective, slot, order);
}
static clearDisplay(slot) {
GMLIB_API.clearDisplayObjective(slot);
}
// Player Score
static getPlayerScore(uuid, objective) {
if (GMLIB_API.playerHasScore(uuid, objective)) {
return GMLIB_API.getPlayerScore(uuid, objective);
}
return null;
}
static addPlayerScore(uuid, objective, value) {
return GMLIB_API.addPlayerScore(uuid, objective, value);
}
static reducePlayerScore(uuid, objective, value) {
return GMLIB_API.reducePlayerScore(uuid, objective, value);
}
static setPlayerScore(uuid, objective, value) {
return GMLIB_API.setPlayerScore(uuid, objective, value);
}
static resetPlayerScore(uuid, objective) {
return GMLIB_API.resetPlayerScore(uuid, objective);
}
static resetPlayerScores(uuid) {
return GMLIB_API.resetPlayerScores(uuid);
}
// FakePlayer Score
static getFakePlayerScore(name, objective) {
if (GMLIB_API.fakePlayerHasScore(name, objective)) {
return GMLIB_API.getFakePlayerScore(name, objective);
}
return null;
}
static addFakePlayerScore(name, objective, value) {
return GMLIB_API.addFakePlayerScore(name, objective, value);
}
static reduceFakePlayerScore(name, objective, value) {
return GMLIB_API.reduceFakePlayerScore(name, objective, value);
}
static setFakePlayerScore(name, objective, value) {
return GMLIB_API.setFakePlayerScore(name, objective, value);
}
static resetFakePlayerScore(name, objective) {
return GMLIB_API.resetFakePlayerScore(name, objective);
}
static resetFakePlayerScores(name) {
return GMLIB_API.resetFakePlayerScores(name);
}
// Entity Score
static getEntityScore(uniqueId, objective) {
if (GMLIB_API.entityHasScore(uniqueId, objective)) {
return GMLIB_API.getEntityScore(uniqueId, objective);
}
return null;
}
static addEntityScore(uniqueId, objective, value) {
return GMLIB_API.addEntityScore(uniqueId, objective, value);
}
static reduceEntityScore(uniqueId, objective, value) {
return GMLIB_API.reduceEntityScore(uniqueId, objective, value);
}
static setEntityScore(uniqueId, objective, value) {
return GMLIB_API.setEntityScore(uniqueId, objective, value);
}
static resetEntityScore(uniqueId, objective) {
return GMLIB_API.resetEntityScore(uniqueId, objective);
}
static resetEntityScores(uniqueId) {
return GMLIB_API.resetEntityScores(uniqueId);
}
}
module.exports = {
StaticFloatingText,
DynamicFloatingText,
Minecraft,
Recipes,
Experiments,
GMLIB,
Scoreboard
};