@starktma/minecraft-utils 1.3.23 → 1.3.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/database/database.d.ts +1 -19
- package/dist/database/database.d.ts.map +1 -1
- package/dist/database/database.js +16 -44
- package/dist/database/database.js.map +1 -1
- package/dist/minecraft/effectsAPI.d.ts +82 -0
- package/dist/minecraft/effectsAPI.d.ts.map +1 -0
- package/dist/minecraft/effectsAPI.js +438 -0
- package/dist/minecraft/effectsAPI.js.map +1 -0
- package/dist/minecraft/index.d.ts +4 -0
- package/dist/minecraft/index.d.ts.map +1 -1
- package/dist/minecraft/index.js +4 -0
- package/dist/minecraft/index.js.map +1 -1
- package/dist/minecraft/potionAPI.d.ts +74 -0
- package/dist/minecraft/potionAPI.d.ts.map +1 -0
- package/dist/minecraft/potionAPI.js +228 -0
- package/dist/minecraft/potionAPI.js.map +1 -0
- package/dist/minecraft/projectileAPI.d.ts +61 -0
- package/dist/minecraft/projectileAPI.d.ts.map +1 -0
- package/dist/minecraft/projectileAPI.js +146 -0
- package/dist/minecraft/projectileAPI.js.map +1 -0
- package/package.json +2 -2
|
@@ -18,23 +18,6 @@ import { SimpleObject } from "./interfaces";
|
|
|
18
18
|
* }
|
|
19
19
|
* return MyDatabase.instance;
|
|
20
20
|
* }
|
|
21
|
-
* }
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* // Using a custom namespace
|
|
25
|
-
* class MyCustomDatabase extends SimpleDatabase<PlayerObject> {
|
|
26
|
-
* protected static instance: MyCustomDatabase;
|
|
27
|
-
* constructor() {
|
|
28
|
-
* super("myDatabase", undefined, "customnamespace");
|
|
29
|
-
* }
|
|
30
|
-
*
|
|
31
|
-
* static getInstance(): MyCustomDatabase {
|
|
32
|
-
* if (!MyCustomDatabase.instance) {
|
|
33
|
-
* MyCustomDatabase.instance = new MyCustomDatabase();
|
|
34
|
-
* }
|
|
35
|
-
* return MyCustomDatabase.instance;
|
|
36
|
-
* }
|
|
37
|
-
* }
|
|
38
21
|
*/
|
|
39
22
|
declare class SimpleDatabase<T extends SimpleObject> {
|
|
40
23
|
private mainDB;
|
|
@@ -44,9 +27,8 @@ declare class SimpleDatabase<T extends SimpleObject> {
|
|
|
44
27
|
* The constructor initializes the local database and syncs it with the main database.
|
|
45
28
|
* @param databaseName The name of the database.
|
|
46
29
|
* @param target The target entity to store the database in. If undefined, the database is stored in the world.
|
|
47
|
-
* @param namespace The namespace to use for the database. If undefined, the global namespace is used.
|
|
48
30
|
*/
|
|
49
|
-
protected constructor(databaseName: string, target?: Entity | undefined
|
|
31
|
+
protected constructor(databaseName: string, target?: Entity | undefined);
|
|
50
32
|
/**
|
|
51
33
|
* Updates the main database with the local database.
|
|
52
34
|
* This method is called automatically when an object is added, updated or removed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAqI5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAM,cAAc,CAAC,CAAC,SAAS,YAAY;IAC1C,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAM;IAErB,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;IACH,SAAS,aAAa,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS;IAYvE;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAK1B;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAO7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIpC;;;OAGG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B;;;OAGG;IACH,aAAa,IAAI,CAAC,EAAE;IAIpB;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;CAGtE;AAED,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -8,20 +8,13 @@ class DatabaseManager {
|
|
|
8
8
|
static DYNAMIC_PROP_MAX_LENGTH = 32767;
|
|
9
9
|
static CHUNK_KEY = "__SPLIT__";
|
|
10
10
|
target;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Creates a new DatabaseManager instance.
|
|
14
|
-
* @param target The target entity to store the database in. If undefined, the database is stored in the world.
|
|
15
|
-
* @param namespace The namespace to use for the database. If undefined, the global namespace is used.
|
|
16
|
-
*/
|
|
17
|
-
constructor(target, namespace) {
|
|
11
|
+
constructor(target) {
|
|
18
12
|
if (target instanceof Entity) {
|
|
19
13
|
this.target = target;
|
|
20
14
|
}
|
|
21
15
|
else {
|
|
22
16
|
this.target = world;
|
|
23
17
|
}
|
|
24
|
-
this.namespace = namespace || getNamespace();
|
|
25
18
|
}
|
|
26
19
|
/**
|
|
27
20
|
* Checks if a JSON database with the given name exists.
|
|
@@ -29,7 +22,7 @@ class DatabaseManager {
|
|
|
29
22
|
* @returns True if the database exists, false otherwise.
|
|
30
23
|
*/
|
|
31
24
|
hasJSONDatabase(databaseName) {
|
|
32
|
-
return this.target.getDynamicProperty(
|
|
25
|
+
return this.target.getDynamicProperty(databaseName) !== undefined;
|
|
33
26
|
}
|
|
34
27
|
/**
|
|
35
28
|
* Adds a new JSON database with the given name and data.
|
|
@@ -37,9 +30,8 @@ class DatabaseManager {
|
|
|
37
30
|
* @param database The data to be stored in the database.
|
|
38
31
|
*/
|
|
39
32
|
addJSONDatabase(databaseName, database) {
|
|
40
|
-
const propertyName = `${this.namespace}:${databaseName}`;
|
|
41
33
|
const jsonString = JSON.stringify(database);
|
|
42
|
-
const existingProp = this.target.getDynamicProperty(
|
|
34
|
+
const existingProp = this.target.getDynamicProperty(databaseName);
|
|
43
35
|
let existingChunks = 0;
|
|
44
36
|
if (existingProp) {
|
|
45
37
|
try {
|
|
@@ -53,18 +45,18 @@ class DatabaseManager {
|
|
|
53
45
|
if (jsonString.length <= DatabaseManager.DYNAMIC_PROP_MAX_LENGTH || jsonString.length === 0) {
|
|
54
46
|
if (existingChunks > 0) {
|
|
55
47
|
for (let i = 0; i < existingChunks; i++) {
|
|
56
|
-
const partName = `${
|
|
48
|
+
const partName = `${databaseName}_${i}`;
|
|
57
49
|
this.target.setDynamicProperty(partName, undefined);
|
|
58
50
|
}
|
|
59
51
|
}
|
|
60
|
-
this.target.setDynamicProperty(
|
|
52
|
+
this.target.setDynamicProperty(databaseName, jsonString);
|
|
61
53
|
}
|
|
62
54
|
else {
|
|
63
55
|
const chunkSize = DatabaseManager.DYNAMIC_PROP_MAX_LENGTH;
|
|
64
56
|
const chunkCount = Math.ceil(jsonString.length / chunkSize);
|
|
65
57
|
if (existingChunks > 0) {
|
|
66
58
|
for (let i = 0; i < existingChunks; i++) {
|
|
67
|
-
const oldPartName = `${
|
|
59
|
+
const oldPartName = `${databaseName}_${i}`;
|
|
68
60
|
this.target.setDynamicProperty(oldPartName, undefined);
|
|
69
61
|
}
|
|
70
62
|
}
|
|
@@ -72,11 +64,11 @@ class DatabaseManager {
|
|
|
72
64
|
const start = i * chunkSize;
|
|
73
65
|
const end = start + chunkSize;
|
|
74
66
|
const chunk = jsonString.slice(start, end);
|
|
75
|
-
const partName = `${
|
|
67
|
+
const partName = `${databaseName}_${i}`;
|
|
76
68
|
this.target.setDynamicProperty(partName, chunk);
|
|
77
69
|
}
|
|
78
70
|
const meta = { [DatabaseManager.CHUNK_KEY]: chunkCount };
|
|
79
|
-
this.target.setDynamicProperty(
|
|
71
|
+
this.target.setDynamicProperty(databaseName, JSON.stringify(meta));
|
|
80
72
|
}
|
|
81
73
|
}
|
|
82
74
|
/**
|
|
@@ -84,21 +76,20 @@ class DatabaseManager {
|
|
|
84
76
|
* @param databaseName The name of the database.
|
|
85
77
|
*/
|
|
86
78
|
removeJSONDatabase(databaseName) {
|
|
87
|
-
const
|
|
88
|
-
const propString = this.target.getDynamicProperty(propertyName);
|
|
79
|
+
const propString = this.target.getDynamicProperty(databaseName);
|
|
89
80
|
if (propString !== undefined) {
|
|
90
81
|
try {
|
|
91
82
|
const propObj = JSON.parse(propString);
|
|
92
83
|
if (propObj && typeof propObj === "object" && DatabaseManager.CHUNK_KEY in propObj) {
|
|
93
84
|
const chunkCount = propObj[DatabaseManager.CHUNK_KEY];
|
|
94
85
|
for (let i = 0; i < chunkCount; i++) {
|
|
95
|
-
const partName = `${
|
|
86
|
+
const partName = `${databaseName}_${i}`;
|
|
96
87
|
this.target.setDynamicProperty(partName, undefined);
|
|
97
88
|
}
|
|
98
89
|
}
|
|
99
90
|
}
|
|
100
91
|
catch { }
|
|
101
|
-
this.target.setDynamicProperty(
|
|
92
|
+
this.target.setDynamicProperty(databaseName, undefined);
|
|
102
93
|
}
|
|
103
94
|
}
|
|
104
95
|
/**
|
|
@@ -108,8 +99,7 @@ class DatabaseManager {
|
|
|
108
99
|
* @throws An error if the database does not exist.
|
|
109
100
|
*/
|
|
110
101
|
getJSONDatabase(databaseName) {
|
|
111
|
-
const
|
|
112
|
-
const propString = this.target.getDynamicProperty(propertyName);
|
|
102
|
+
const propString = this.target.getDynamicProperty(databaseName);
|
|
113
103
|
if (propString === undefined) {
|
|
114
104
|
throw new Error("Database does not exist");
|
|
115
105
|
}
|
|
@@ -119,7 +109,7 @@ class DatabaseManager {
|
|
|
119
109
|
const chunkCount = propObj[DatabaseManager.CHUNK_KEY];
|
|
120
110
|
let combined = "";
|
|
121
111
|
for (let i = 0; i < chunkCount; i++) {
|
|
122
|
-
const partName = `${
|
|
112
|
+
const partName = `${databaseName}_${i}`;
|
|
123
113
|
const part = this.target.getDynamicProperty(partName);
|
|
124
114
|
if (typeof part === "string") {
|
|
125
115
|
combined += part;
|
|
@@ -157,23 +147,6 @@ class DatabaseManager {
|
|
|
157
147
|
* }
|
|
158
148
|
* return MyDatabase.instance;
|
|
159
149
|
* }
|
|
160
|
-
* }
|
|
161
|
-
*
|
|
162
|
-
* @example
|
|
163
|
-
* // Using a custom namespace
|
|
164
|
-
* class MyCustomDatabase extends SimpleDatabase<PlayerObject> {
|
|
165
|
-
* protected static instance: MyCustomDatabase;
|
|
166
|
-
* constructor() {
|
|
167
|
-
* super("myDatabase", undefined, "customnamespace");
|
|
168
|
-
* }
|
|
169
|
-
*
|
|
170
|
-
* static getInstance(): MyCustomDatabase {
|
|
171
|
-
* if (!MyCustomDatabase.instance) {
|
|
172
|
-
* MyCustomDatabase.instance = new MyCustomDatabase();
|
|
173
|
-
* }
|
|
174
|
-
* return MyCustomDatabase.instance;
|
|
175
|
-
* }
|
|
176
|
-
* }
|
|
177
150
|
*/
|
|
178
151
|
class SimpleDatabase {
|
|
179
152
|
mainDB;
|
|
@@ -183,11 +156,10 @@ class SimpleDatabase {
|
|
|
183
156
|
* The constructor initializes the local database and syncs it with the main database.
|
|
184
157
|
* @param databaseName The name of the database.
|
|
185
158
|
* @param target The target entity to store the database in. If undefined, the database is stored in the world.
|
|
186
|
-
* @param namespace The namespace to use for the database. If undefined, the global namespace is used.
|
|
187
159
|
*/
|
|
188
|
-
constructor(databaseName, target
|
|
189
|
-
this.
|
|
190
|
-
this.
|
|
160
|
+
constructor(databaseName, target) {
|
|
161
|
+
this.databaseName = `${getNamespace()}:${databaseName}`;
|
|
162
|
+
this.mainDB = new DatabaseManager(target);
|
|
191
163
|
if (this.mainDB.hasJSONDatabase(this.databaseName)) {
|
|
192
164
|
this.localDB = this.getMainDB();
|
|
193
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAS,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;;GAGG;AACH,MAAM,eAAe;IACZ,MAAM,CAAU,uBAAuB,GAAG,KAAK,CAAC;IAChD,MAAM,CAAU,SAAS,GAAG,WAAW,CAAC;IAExC,MAAM,CAAiB;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Entity, RGBA } from "@minecraft/server";
|
|
2
|
+
interface EffectObject {
|
|
3
|
+
id: string;
|
|
4
|
+
entityId: string;
|
|
5
|
+
effectType: string;
|
|
6
|
+
amplifier: number;
|
|
7
|
+
duration: number;
|
|
8
|
+
color: RGBA;
|
|
9
|
+
}
|
|
10
|
+
interface EffectSounds {
|
|
11
|
+
ambient?: string;
|
|
12
|
+
start?: string;
|
|
13
|
+
end?: string;
|
|
14
|
+
}
|
|
15
|
+
interface EffectConfig {
|
|
16
|
+
effectType: string;
|
|
17
|
+
color: RGBA;
|
|
18
|
+
sounds?: EffectSounds;
|
|
19
|
+
particleType?: string;
|
|
20
|
+
handler: EffectHandler;
|
|
21
|
+
}
|
|
22
|
+
type EffectHandler = (entity: Entity, effect: EffectObject) => void;
|
|
23
|
+
declare class EffectManager {
|
|
24
|
+
private configs;
|
|
25
|
+
private entityDB;
|
|
26
|
+
static instance: EffectManager;
|
|
27
|
+
static getInstance(): EffectManager;
|
|
28
|
+
private constructor();
|
|
29
|
+
private getEntityDatabase;
|
|
30
|
+
/**
|
|
31
|
+
* Track an entity as having effects
|
|
32
|
+
* @param entity - The entity to track
|
|
33
|
+
*/
|
|
34
|
+
private trackEntity;
|
|
35
|
+
/**
|
|
36
|
+
* Stop tracking an entity (when it has no more effects)
|
|
37
|
+
* @param entity - The entity to stop tracking
|
|
38
|
+
*/
|
|
39
|
+
private untrackEntity;
|
|
40
|
+
/**
|
|
41
|
+
* Check if an entity has any effect tags
|
|
42
|
+
* @param entity - The entity to check
|
|
43
|
+
* @returns True if entity has any effect tags
|
|
44
|
+
*/
|
|
45
|
+
private entityHasEffectTags;
|
|
46
|
+
/**
|
|
47
|
+
* Parse effect data from entity tags regardless of namespace
|
|
48
|
+
* @param entity - The entity to get effects from
|
|
49
|
+
* @returns Array of effect objects parsed from all effect tags
|
|
50
|
+
*/
|
|
51
|
+
private getEffectsFromTags;
|
|
52
|
+
/**
|
|
53
|
+
* Parse ALL effect data from entity tags regardless of namespace
|
|
54
|
+
* @param entity - The entity to get effects from
|
|
55
|
+
* @returns Array of effect objects parsed from all effect tags
|
|
56
|
+
*/
|
|
57
|
+
private getAllEffectsFromTags;
|
|
58
|
+
/**
|
|
59
|
+
* Register a effect effect with full configuration
|
|
60
|
+
* @param config - Complete effect configuration including effect type, color, sounds, particle type, and handler
|
|
61
|
+
* @returns Helper functions for adding, removing, and applying the effect
|
|
62
|
+
*/
|
|
63
|
+
registerEffect(config: EffectConfig): {
|
|
64
|
+
addEffect: (entity: Entity, amplifier: number, duration: number) => void;
|
|
65
|
+
removeEffect: (entity: Entity) => void;
|
|
66
|
+
applyEffect: EffectHandler;
|
|
67
|
+
};
|
|
68
|
+
addEffect(entity: Entity, effectType: string, amplifier: number, duration: number): void;
|
|
69
|
+
removeEffect(entity: Entity, effectType: string): void;
|
|
70
|
+
removeAllEffects(entity: Entity): void;
|
|
71
|
+
extendEffect(entity: Entity, effectType: string, additionalDuration: number): boolean;
|
|
72
|
+
hasEffect(entity: Entity, effectType: string): boolean;
|
|
73
|
+
getEffects(entity: Entity): EffectObject[];
|
|
74
|
+
/**
|
|
75
|
+
* Debug function to display all active effects for an entity in the action bar
|
|
76
|
+
* @param entity - The entity to display effects for (must be a Player)
|
|
77
|
+
*/
|
|
78
|
+
debugShowEffects(entity: Entity): void;
|
|
79
|
+
start(): void;
|
|
80
|
+
}
|
|
81
|
+
export { EffectManager, EffectObject, EffectConfig, EffectSounds };
|
|
82
|
+
//# sourceMappingURL=effectsAPI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effectsAPI.d.ts","sourceRoot":"","sources":["../../src/minecraft/effectsAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA6B,IAAI,EAAiB,MAAM,mBAAmB,CAAC;AAK3F,UAAU,YAAY;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,CAAC;CACZ;AAqBD,UAAU,YAAY;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,UAAU,YAAY;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;CACvB;AAED,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;AAEpE,cAAM,aAAa;IAClB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAqC;IACrD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;IAE/B,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC,OAAO;IAEP,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAWnB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,YAAY;4BAIb,MAAM,aAAa,MAAM,YAAY,MAAM;+BAGxC,MAAM;;;IAO/B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAwCxF,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IA6BtD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAkCtC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO;IAiDrF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAKtD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IAI1C;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA6EtC,KAAK,IAAI,IAAI;CAiGb;AAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC"}
|