@starktma/minecraft-utils 1.3.24 → 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.
@@ -0,0 +1,438 @@
1
+ import { MolangVariableMap, Player, system, world } from "@minecraft/server";
2
+ import { MinecraftItemTypes } from "@minecraft/vanilla-data";
3
+ import { SimpleDatabase } from "@starktma/minecraft-utils/database";
4
+ import { getNamespace } from "../constants";
5
+ class EffectEntityDatabase extends SimpleDatabase {
6
+ static instance;
7
+ constructor() {
8
+ super("effect_entities");
9
+ }
10
+ static getInstance() {
11
+ if (!EffectEntityDatabase.instance) {
12
+ EffectEntityDatabase.instance = new EffectEntityDatabase();
13
+ }
14
+ return EffectEntityDatabase.instance;
15
+ }
16
+ }
17
+ class EffectManager {
18
+ configs = new Map();
19
+ entityDB = null;
20
+ static instance;
21
+ static getInstance() {
22
+ if (!EffectManager.instance) {
23
+ EffectManager.instance = new EffectManager();
24
+ }
25
+ return EffectManager.instance;
26
+ }
27
+ constructor() { }
28
+ getEntityDatabase() {
29
+ if (!this.entityDB) {
30
+ this.entityDB = EffectEntityDatabase.getInstance();
31
+ }
32
+ return this.entityDB;
33
+ }
34
+ /**
35
+ * Track an entity as having effects
36
+ * @param entity - The entity to track
37
+ */
38
+ trackEntity(entity) {
39
+ const db = this.getEntityDatabase();
40
+ const tracker = {
41
+ id: entity.id,
42
+ };
43
+ if (!db.hasObject(entity.id)) {
44
+ db.addObject(tracker);
45
+ }
46
+ }
47
+ /**
48
+ * Stop tracking an entity (when it has no more effects)
49
+ * @param entity - The entity to stop tracking
50
+ */
51
+ untrackEntity(entity) {
52
+ const db = this.getEntityDatabase();
53
+ if (db.hasObject(entity.id)) {
54
+ db.removeObject(entity.id);
55
+ }
56
+ }
57
+ /**
58
+ * Check if an entity has any effect tags
59
+ * @param entity - The entity to check
60
+ * @returns True if entity has any effect tags
61
+ */
62
+ entityHasEffectTags(entity) {
63
+ return entity.getTags().some((tag) => tag.includes("starkteffects"));
64
+ }
65
+ /**
66
+ * Parse effect data from entity tags regardless of namespace
67
+ * @param entity - The entity to get effects from
68
+ * @returns Array of effect objects parsed from all effect tags
69
+ */
70
+ getEffectsFromTags(entity) {
71
+ return entity
72
+ .getTags()
73
+ .filter((tag) => tag.includes("starkteffects"))
74
+ .map((tag) => {
75
+ const parts = tag.split("_");
76
+ if (parts.length < 4)
77
+ return null;
78
+ // Find the namespace and effects parts
79
+ const effectsIndex = parts.findIndex((part) => part === "starkteffects");
80
+ if (effectsIndex === -1 || effectsIndex === 0 || effectsIndex >= parts.length - 2)
81
+ return null;
82
+ const namespace = parts.slice(0, effectsIndex).join("_");
83
+ const effectType = parts.slice(effectsIndex + 1, -2).join("_");
84
+ const amplifier = parseInt(parts[parts.length - 2]);
85
+ const duration = parseInt(parts[parts.length - 1]);
86
+ const config = this.configs.get(effectType);
87
+ return {
88
+ id: `${entity.id}_${effectType}`,
89
+ entityId: entity.id,
90
+ effectType,
91
+ amplifier,
92
+ duration,
93
+ color: config?.color || { red: 1, green: 1, blue: 1, alpha: 1 },
94
+ };
95
+ })
96
+ .filter((effect) => effect !== null);
97
+ }
98
+ /**
99
+ * Parse ALL effect data from entity tags regardless of namespace
100
+ * @param entity - The entity to get effects from
101
+ * @returns Array of effect objects parsed from all effect tags
102
+ */
103
+ getAllEffectsFromTags(entity) {
104
+ return entity
105
+ .getTags()
106
+ .filter((tag) => tag.includes("starkteffects"))
107
+ .map((tag) => {
108
+ const parts = tag.split("_");
109
+ if (parts.length < 4)
110
+ return null;
111
+ // Find the namespace and effects parts
112
+ const effectsIndex = parts.findIndex((part) => part === "starkteffects");
113
+ if (effectsIndex === -1 || effectsIndex === 0 || effectsIndex >= parts.length - 2)
114
+ return null;
115
+ const namespace = parts.slice(0, effectsIndex).join("_");
116
+ const effectType = parts.slice(effectsIndex + 1, -2).join("_");
117
+ const amplifier = parseInt(parts[parts.length - 2]);
118
+ const duration = parseInt(parts[parts.length - 1]);
119
+ const config = this.configs.get(effectType);
120
+ return {
121
+ id: `${entity.id}_${effectType}`,
122
+ entityId: entity.id,
123
+ effectType,
124
+ amplifier,
125
+ duration,
126
+ color: config?.color || { red: 1, green: 1, blue: 1, alpha: 1 },
127
+ };
128
+ })
129
+ .filter((effect) => effect !== null);
130
+ }
131
+ /**
132
+ * Register a effect effect with full configuration
133
+ * @param config - Complete effect configuration including effect type, color, sounds, particle type, and handler
134
+ * @returns Helper functions for adding, removing, and applying the effect
135
+ */
136
+ registerEffect(config) {
137
+ this.configs.set(config.effectType, config);
138
+ return {
139
+ addEffect: (entity, amplifier, duration) => {
140
+ this.addEffect(entity, config.effectType, amplifier, duration);
141
+ },
142
+ removeEffect: (entity) => {
143
+ this.removeEffect(entity, config.effectType);
144
+ },
145
+ applyEffect: config.handler,
146
+ };
147
+ }
148
+ addEffect(entity, effectType, amplifier, duration) {
149
+ // Get config if registered
150
+ const config = this.configs.get(effectType);
151
+ const currentNamespace = getNamespace();
152
+ // Find existing effect from tags
153
+ const existingTag = entity
154
+ .getTags()
155
+ .find((tag) => tag.startsWith(`${currentNamespace}_starkteffects_${effectType}_`));
156
+ if (existingTag) {
157
+ // Parse existing effect
158
+ const parts = existingTag.split("_");
159
+ if (parts.length >= 4) {
160
+ const existingAmplifier = parseInt(parts[parts.length - 2]);
161
+ const existingDuration = parseInt(parts[parts.length - 1]);
162
+ // Update if stronger or longer
163
+ if (amplifier > existingAmplifier || (amplifier === existingAmplifier && duration * 20 > existingDuration)) {
164
+ // Remove old tag and add new one
165
+ entity.removeTag(existingTag);
166
+ entity.addTag(`${currentNamespace}_starkteffects_${effectType}_${amplifier}_${duration * 20}`);
167
+ }
168
+ }
169
+ }
170
+ else {
171
+ // New effect - add tag
172
+ entity.addTag(`${currentNamespace}_starkteffects_${effectType}_${amplifier}_${duration * 20}`);
173
+ // Play start sound if configured
174
+ if (config?.sounds?.start) {
175
+ try {
176
+ entity.dimension.playSound(config.sounds.start, entity.location);
177
+ }
178
+ catch (error) { }
179
+ }
180
+ }
181
+ // Track this entity as having effects
182
+ this.trackEntity(entity);
183
+ }
184
+ removeEffect(entity, effectType) {
185
+ const currentNamespace = getNamespace();
186
+ // Find and remove effect tags
187
+ const effectTags = entity
188
+ .getTags()
189
+ .filter((tag) => tag.startsWith(`${currentNamespace}_starkteffects_${effectType}_`));
190
+ if (effectTags.length > 0) {
191
+ // Play end sound if configured
192
+ const config = this.configs.get(effectType);
193
+ if (config?.sounds?.end) {
194
+ try {
195
+ entity.dimension.playSound(config.sounds.end, entity.location);
196
+ }
197
+ catch (error) { }
198
+ }
199
+ // Remove effect tags
200
+ effectTags.forEach((tag) => {
201
+ entity.removeTag(tag);
202
+ });
203
+ // Check if entity still has any effects, untrack if not
204
+ if (!this.entityHasEffectTags(entity)) {
205
+ this.untrackEntity(entity);
206
+ }
207
+ }
208
+ }
209
+ removeAllEffects(entity) {
210
+ const currentNamespace = getNamespace();
211
+ // Get all effect tags
212
+ const effectTags = entity.getTags().filter((tag) => tag.startsWith(`${currentNamespace}_starkteffects_`));
213
+ // Play end sounds for each effect type
214
+ const effectTypes = new Set();
215
+ effectTags.forEach((tag) => {
216
+ const parts = tag.split("_");
217
+ if (parts.length >= 4) {
218
+ const effectType = parts.slice(2, -2).join("_");
219
+ effectTypes.add(effectType);
220
+ }
221
+ });
222
+ effectTypes.forEach((effectType) => {
223
+ const config = this.configs.get(effectType);
224
+ if (config?.sounds?.end) {
225
+ try {
226
+ entity.dimension.playSound(config.sounds.end, entity.location);
227
+ }
228
+ catch (error) { }
229
+ }
230
+ });
231
+ // Remove all effect tags
232
+ effectTags.forEach((tag) => {
233
+ entity.removeTag(tag);
234
+ });
235
+ // Untrack this entity since it has no more effects
236
+ this.untrackEntity(entity);
237
+ }
238
+ extendEffect(entity, effectType, additionalDuration) {
239
+ // Debug: Show all tags on the entity
240
+ const allTags = entity.getTags();
241
+ // Find effect tags of any namespace
242
+ const effectTags = entity.getTags().filter((tag) => {
243
+ // Tag format: {namespace}_starkteffects_{effectType}_{amplifier}_{duration}
244
+ // We need to find the "_starkteffects_" marker and work from there
245
+ const effectsIndex = tag.indexOf("_starkteffects_");
246
+ if (effectsIndex === -1)
247
+ return false;
248
+ // Extract parts after "_starkteffects_"
249
+ const afterEffects = tag.substring(effectsIndex + 15); // 15 = "_starkteffects_".length
250
+ const parts = afterEffects.split("_");
251
+ // Need at least 3 parts: effectType, amplifier, duration
252
+ // But effectType might contain underscores, so amplifier and duration are the last 2 parts
253
+ if (parts.length < 3)
254
+ return false;
255
+ // Extract effect type (everything except the last 2 parts which are amplifier and duration)
256
+ const tagEffectType = parts.slice(0, -2).join("_");
257
+ return tagEffectType === effectType;
258
+ });
259
+ if (effectTags.length === 0)
260
+ return false;
261
+ // For each matching effect tag, extend its duration
262
+ effectTags.forEach((tag) => {
263
+ // Tag format: {namespace}_starkteffects_{effectType}_{amplifier}_{duration}
264
+ const effectsIndex = tag.indexOf("_starkteffects_");
265
+ const namespace = tag.substring(0, effectsIndex);
266
+ const afterEffects = tag.substring(effectsIndex + 15); // 15 = "_starkteffects_".length
267
+ const parts = afterEffects.split("_");
268
+ // Last two parts are always amplifier and duration
269
+ const amplifier = parseInt(parts[parts.length - 2]);
270
+ const currentDuration = parseInt(parts[parts.length - 1]);
271
+ const newDuration = currentDuration + additionalDuration;
272
+ // Remove old tag and add new one with extended duration
273
+ entity.removeTag(tag);
274
+ const newTag = `${namespace}_starkteffects_${effectType}_${amplifier}_${newDuration}`;
275
+ entity.addTag(newTag);
276
+ });
277
+ return true;
278
+ }
279
+ hasEffect(entity, effectType) {
280
+ const currentNamespace = getNamespace();
281
+ return entity.getTags().some((tag) => tag.startsWith(`${currentNamespace}_starkteffects_${effectType}_`));
282
+ }
283
+ getEffects(entity) {
284
+ return this.getAllEffectsFromTags(entity);
285
+ }
286
+ /**
287
+ * Debug function to display all active effects for an entity in the action bar
288
+ * @param entity - The entity to display effects for (must be a Player)
289
+ */
290
+ debugShowEffects(entity) {
291
+ // Only works for players
292
+ if (!(entity instanceof Player)) {
293
+ return;
294
+ }
295
+ const currentNamespace = getNamespace();
296
+ // Get effects from tags instead of database
297
+ const effectTags = entity.getTags().filter((tag) => tag.includes(`starkteffects`));
298
+ if (effectTags.length === 0) {
299
+ entity.onScreenDisplay.setActionBar("§8[§7Effects§8] §7No active effects");
300
+ return;
301
+ }
302
+ // Parse effect data from tags
303
+ const effects = effectTags
304
+ .map((tag) => {
305
+ // Format: namespace_starkteffects_${effectType}_${amplifier}_${duration}
306
+ const parts = tag.split("_");
307
+ if (parts.length < 4)
308
+ return null;
309
+ const effectType = parts.slice(2, -2).join("_"); // Handle effect types with underscores
310
+ const amplifier = parseInt(parts[parts.length - 2]);
311
+ const duration = parseInt(parts[parts.length - 1]);
312
+ return { effectType, amplifier, duration };
313
+ })
314
+ .filter((effect) => effect !== null);
315
+ if (effects.length === 0) {
316
+ entity.onScreenDisplay.setActionBar("§8[§7Effects§8] §7No active effects");
317
+ return;
318
+ }
319
+ // Sort effects by remaining duration (longest first)
320
+ const sortedEffects = effects.sort((a, b) => b.duration - a.duration);
321
+ const effectStrings = sortedEffects.map((effect) => {
322
+ const seconds = Math.ceil(effect.duration / 20);
323
+ const minutes = Math.floor(seconds / 60);
324
+ const remainingSeconds = seconds % 60;
325
+ // Format time with different colors based on urgency
326
+ let timeString;
327
+ let timeColor;
328
+ if (seconds > 60) {
329
+ timeString = `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
330
+ timeColor = "§a"; // Green for long duration
331
+ }
332
+ else if (seconds > 10) {
333
+ timeString = `${seconds}s`;
334
+ timeColor = "§e"; // Yellow for medium duration
335
+ }
336
+ else {
337
+ timeString = `${seconds}s`;
338
+ timeColor = "§c"; // Red for short duration
339
+ }
340
+ // Format effect name with proper capitalization
341
+ const effectName = effect.effectType.split("_").map((word) => word.charAt(0).toUpperCase() + word.slice(1))[1];
342
+ // Format amplifier with Roman numerals for style
343
+ const romanNumerals = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X"];
344
+ const amplifierDisplay = effect.amplifier < romanNumerals.length ? romanNumerals[effect.amplifier] : (effect.amplifier + 1).toString();
345
+ return `§6${effectName}§r §7${amplifierDisplay}§r §8(${timeColor}${timeString}§8)§r`;
346
+ });
347
+ // Create a formatted display with header and effects
348
+ const header = "§8[§bActive Effects§8]§r";
349
+ const effectsDisplay = effectStrings.join("\n");
350
+ const displayText = `${header}\n${effectsDisplay}`;
351
+ entity.onScreenDisplay.setActionBar(displayText);
352
+ }
353
+ start() {
354
+ if (!EffectManager.instance)
355
+ return;
356
+ system.runInterval(() => {
357
+ const entityDB = this.getEntityDatabase();
358
+ const trackedEntityIds = entityDB.getAllObjects();
359
+ for (const tracker of trackedEntityIds) {
360
+ const entity = world.getEntity(tracker.id);
361
+ // If entity doesn't exist, clean up tracking
362
+ if (!entity)
363
+ continue;
364
+ // Check if entity still has effect tags (cleanup orphaned tracking)
365
+ if (!this.entityHasEffectTags(entity)) {
366
+ entityDB.removeObject(tracker.id);
367
+ continue;
368
+ }
369
+ this.debugShowEffects(entity);
370
+ const effects = this.getEffectsFromTags(entity).filter((effect) => {
371
+ // Only process effects from current namespace
372
+ const currentNamespace = getNamespace();
373
+ return entity
374
+ .getTags()
375
+ .some((tag) => tag.startsWith(`${currentNamespace}_starkteffects_${effect.effectType}_`));
376
+ });
377
+ for (const effect of effects) {
378
+ // Get config for this effect
379
+ const config = this.configs.get(effect.effectType);
380
+ // Apply effect handler
381
+ if (config?.handler) {
382
+ config.handler(entity, effect);
383
+ }
384
+ // Play ambient sound periodically (every 2 seconds)
385
+ if (config?.sounds?.ambient && system.currentTick % 40 === 0) {
386
+ try {
387
+ entity.dimension.playSound(config.sounds.ambient, entity.location, { volume: 0.5 });
388
+ }
389
+ catch (error) { }
390
+ }
391
+ // Spawn particles
392
+ if (system.currentTick % 2 === 0) {
393
+ const particleLocation = entity.location;
394
+ particleLocation.y++;
395
+ const variables = new MolangVariableMap();
396
+ variables.setColorRGBA("color", effect.color);
397
+ const particleType = config?.particleType || "minecraft:mobspell_emitter";
398
+ try {
399
+ entity.dimension.spawnParticle(particleType, particleLocation, variables);
400
+ }
401
+ catch (error) { }
402
+ }
403
+ // Update duration
404
+ const newDuration = effect.duration - 1;
405
+ if (newDuration <= 0) {
406
+ // Play end sound when effect expires naturally
407
+ if (config?.sounds?.end) {
408
+ try {
409
+ entity.dimension.playSound(config.sounds.end, entity.location);
410
+ }
411
+ catch (error) { }
412
+ }
413
+ // Remove expired effect tag
414
+ const currentNamespace = getNamespace();
415
+ entity.removeTag(`${currentNamespace}_starkteffects_${effect.effectType}_${effect.amplifier}_${effect.duration}`);
416
+ }
417
+ else {
418
+ // Update tag with new duration
419
+ const currentNamespace = getNamespace();
420
+ entity.removeTag(`${currentNamespace}_starkteffects_${effect.effectType}_${effect.amplifier}_${effect.duration}`);
421
+ entity.addTag(`${currentNamespace}_starkteffects_${effect.effectType}_${effect.amplifier}_${newDuration}`);
422
+ }
423
+ }
424
+ // Clean up tracking if entity has no more effects
425
+ if (!this.entityHasEffectTags(entity)) {
426
+ entityDB.removeObject(tracker.id);
427
+ }
428
+ }
429
+ });
430
+ world.afterEvents.itemCompleteUse.subscribe((event) => {
431
+ if (event.itemStack.typeId === MinecraftItemTypes.MilkBucket) {
432
+ this.removeAllEffects(event.source);
433
+ }
434
+ });
435
+ }
436
+ }
437
+ export { EffectManager };
438
+ //# sourceMappingURL=effectsAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effectsAPI.js","sourceRoot":"","sources":["../../src/minecraft/effectsAPI.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { Player, Entity, Block, Vector3, StructureRotation, Vector2 } from "@minecraft/server";
2
+ import { EffectManager, EffectObject, EffectConfig, EffectSounds } from "./effectsAPI";
3
+ import { PotionManager, potionManager } from "./potionAPI";
4
+ import { registerProjectileItemCallback, registerCustomProjectileComponent } from "./projectileAPI";
2
5
  export declare function getBlocksInASphere(centerBlock: Block | Entity, radius: number, innerRadius?: number): Block[];
3
6
  export declare function displayActionbar(player: Player | undefined, ...message: any): void;
4
7
  /**
@@ -20,4 +23,5 @@ export declare function getRelativeMovementDirection(player: Player, round: bool
20
23
  export declare function restoreInventory(entity: Entity, id: string): void;
21
24
  export declare function saveInventory(entity: Entity, id: string, clearAll?: boolean): number;
22
25
  export declare function getPositionRelative(entity: Entity, offset: Vector3): Vector3;
26
+ export { EffectManager, EffectObject, EffectConfig, EffectSounds, PotionManager, potionManager, registerProjectileItemCallback, registerCustomProjectileComponent, };
23
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/minecraft/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EAEP,iBAAiB,EACjB,OAAO,EAOP,MAAM,mBAAmB,CAAC;AAG3B,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,KAAK,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,WA4BnG;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE,GAAG,QAO3E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAU,GAAG,OAAO,CAUjG;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAQ1F;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAapF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAwC1D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,MAAM,CAuD3F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAS5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/minecraft/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EAEP,iBAAiB,EACjB,OAAO,EAOP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AAEpG,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,KAAK,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,WA4BnG;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,OAAO,EAAE,GAAG,QAO3E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAU,GAAG,OAAO,CAUjG;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAQ1F;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAapF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAwC1D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,MAAM,CAuD3F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAS5E;AAED,OAAO,EACN,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,8BAA8B,EAC9B,iCAAiC,GACjC,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import { Block, world, StructureRotation, BlockInventoryComponent, BlockPermutation, EntityEquippableComponent, EntityInventoryComponent, EquipmentSlot, ItemStack, } from "@minecraft/server";
2
2
  import { calculateDistance, toRadians, toUnsigned } from "../math";
3
+ import { EffectManager } from "./effectsAPI";
4
+ import { PotionManager, potionManager } from "./potionAPI";
5
+ import { registerProjectileItemCallback, registerCustomProjectileComponent } from "./projectileAPI";
3
6
  export function getBlocksInASphere(centerBlock, radius, innerRadius) {
4
7
  if (centerBlock) {
5
8
  if (centerBlock instanceof Block && !centerBlock.isValid)
@@ -178,4 +181,5 @@ export function getPositionRelative(entity, offset) {
178
181
  const z = entity.location.z + offset.x * Math.cos(pitch) * Math.sin(yaw) + offset.z * Math.cos(yaw);
179
182
  return { x, y, z };
180
183
  }
184
+ export { EffectManager, PotionManager, potionManager, registerProjectileItemCallback, registerCustomProjectileComponent, };
181
185
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/minecraft/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/minecraft/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { Entity, RGBA, StartupEvent, Vector3, Dimension } from "@minecraft/server";
2
+ export interface PotionConfig {
3
+ effectKey: string;
4
+ namespace: string;
5
+ handler: PotionEffectHandler;
6
+ splashRange?: number;
7
+ lingeringMaxRadius?: number;
8
+ lingeringLifetime?: number;
9
+ lingeringDurationMultiplier?: number;
10
+ }
11
+ export type PotionEffectHandler = (entity: Entity, amplifier: number, duration: number, color: RGBA) => void;
12
+ /**
13
+ * Parse effect key from projectile entity type ID
14
+ */
15
+ export declare function parseProjectileTypeId(typeId: string): {
16
+ namespace: string;
17
+ effectKey: string;
18
+ } | null;
19
+ /**
20
+ * Extract RGBA color from entity properties
21
+ */
22
+ export declare function getColorFromEntity(entity: Entity, namespace: string): RGBA;
23
+ /**
24
+ * Spawn splash particle effect
25
+ */
26
+ export declare function spawnSplashParticle(dimension: Dimension, location: Vector3, color: RGBA, range: number): void;
27
+ /**
28
+ * Spawn lingering cloud particle effect
29
+ */
30
+ export declare function spawnLingeringParticle(dimension: Dimension, location: Vector3, color: RGBA, radius: number, maxRadius: number, lifetime: number): void;
31
+ declare class PotionManager {
32
+ private configs;
33
+ private activeAOEClouds;
34
+ private cloudIdCounter;
35
+ private isRunning;
36
+ /**
37
+ * Register a potion effect with its configuration and handler
38
+ */
39
+ registerPotion(config: PotionConfig): {
40
+ handler: PotionEffectHandler;
41
+ };
42
+ /**
43
+ * Start the potion system - must be called in beforeEvents.worldInitialize
44
+ */
45
+ start(startup: StartupEvent): void;
46
+ /**
47
+ * Get a registered potion configuration (public method)
48
+ */
49
+ getConfig(effectKey: string, namespace: string): PotionConfig | undefined;
50
+ private registerCustomComponents;
51
+ private registerProjectileEvents;
52
+ private startCloudUpdater;
53
+ private handleConsume;
54
+ /**
55
+ * Handle projectile hit (splash or lingering)
56
+ */
57
+ private handleProjectileHit;
58
+ /**
59
+ * Handle splash potion effect
60
+ */
61
+ private handleSplashPotion;
62
+ /**
63
+ * Handle lingering potion effect (creates area cloud)
64
+ */
65
+ private handleLingeringPotion;
66
+ /**
67
+ * Update lingering area effect cloud
68
+ */
69
+ private updateAreaEffectCloud;
70
+ private applyCloudEffects;
71
+ }
72
+ declare const potionManager: PotionManager;
73
+ export { PotionManager, potionManager };
74
+ //# sourceMappingURL=potionAPI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"potionAPI.d.ts","sourceRoot":"","sources":["../../src/minecraft/potionAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,MAAM,EAGN,IAAI,EACJ,YAAY,EAEZ,OAAO,EAEP,SAAS,EACT,MAAM,mBAAmB,CAAC;AAyB3B,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;AAI7G;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASrG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAO1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAM7G;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACd,IAAI,CAON;AAID,cAAM,aAAa;IAClB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,YAAY;;;IAgBnC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IASlC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzE,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,aAAa;IAgBrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,iBAAiB;CAuBzB;AAED,QAAA,MAAM,aAAa,eAAsB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC"}