@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.
- package/dist/database/database.d.ts +14 -31
- package/dist/database/database.d.ts.map +1 -1
- package/dist/database/database.js +47 -81
- 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
|
@@ -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;
|
|
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"}
|
package/dist/minecraft/index.js
CHANGED
|
@@ -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":"AAAA,OAAO,EAGN,KAAK,EAEL,KAAK,EACL,iBAAiB,EAEjB,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,wBAAwB,EACxB,aAAa,EACb,SAAS,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAY,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
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"}
|