@starktma/minecraft-utils 1.2.81 → 1.3.0

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.
Files changed (31) hide show
  1. package/LICENSE +674 -674
  2. package/README.md +82 -26
  3. package/dist/game-state-machine/branch.d.ts +45 -0
  4. package/dist/game-state-machine/branch.d.ts.map +1 -0
  5. package/dist/game-state-machine/branch.js +134 -0
  6. package/dist/game-state-machine/branch.js.map +1 -0
  7. package/dist/game-state-machine/constants.d.ts +2 -0
  8. package/dist/game-state-machine/constants.d.ts.map +1 -0
  9. package/dist/game-state-machine/constants.js +2 -0
  10. package/dist/game-state-machine/constants.js.map +1 -0
  11. package/dist/game-state-machine/database.d.ts +13 -0
  12. package/dist/game-state-machine/database.d.ts.map +1 -0
  13. package/dist/game-state-machine/database.js +26 -0
  14. package/dist/game-state-machine/database.js.map +1 -0
  15. package/dist/game-state-machine/index.d.ts +3 -0
  16. package/dist/game-state-machine/index.d.ts.map +1 -0
  17. package/dist/game-state-machine/index.js +3 -0
  18. package/dist/game-state-machine/index.js.map +1 -0
  19. package/dist/game-state-machine/interfaces.d.ts +24 -0
  20. package/dist/game-state-machine/interfaces.d.ts.map +1 -0
  21. package/dist/game-state-machine/interfaces.js +13 -0
  22. package/dist/game-state-machine/interfaces.js.map +1 -0
  23. package/dist/game-state-machine/level.d.ts +50 -0
  24. package/dist/game-state-machine/level.d.ts.map +1 -0
  25. package/dist/game-state-machine/level.js +133 -0
  26. package/dist/game-state-machine/level.js.map +1 -0
  27. package/dist/game-state-machine/stateMachine.d.ts +52 -0
  28. package/dist/game-state-machine/stateMachine.d.ts.map +1 -0
  29. package/dist/game-state-machine/stateMachine.js +318 -0
  30. package/dist/game-state-machine/stateMachine.js.map +1 -0
  31. package/package.json +54 -50
@@ -0,0 +1,52 @@
1
+ import { Level } from "./level";
2
+ import { Branch } from "./branch";
3
+ declare class StateMachineEvents {
4
+ resetFunctions: (() => void)[];
5
+ tickFunctions: (() => void)[];
6
+ constructor();
7
+ triggerReset(): void;
8
+ triggerTick(): void;
9
+ }
10
+ declare class StateMachineEventRegister {
11
+ private events;
12
+ constructor(events: StateMachineEvents);
13
+ onReset(callback: () => void): void;
14
+ onTick(callback: () => void): void;
15
+ }
16
+ declare class StateMachine {
17
+ private static instance;
18
+ private eventTrigger;
19
+ events: StateMachineEventRegister;
20
+ private playersManager;
21
+ private branches;
22
+ private activeBranches;
23
+ private defaultActiveBranches;
24
+ /**
25
+ * Debug function to display the branches' state in the action bar.
26
+ */
27
+ private debugBranches;
28
+ /**
29
+ * Creates a new branch.
30
+ * @param name The branch name to create.
31
+ * @param activate Whether to activate the branch or not.
32
+ * @returns
33
+ */
34
+ createBranch(name: string, activate?: boolean): Branch;
35
+ /**
36
+ * Activates a branch.
37
+ * @param branch The branch to activate.
38
+ */
39
+ activateBranch(branch: Branch): void;
40
+ /**
41
+ * Deactivates a branch.
42
+ * @param branch The branch to deactivate.
43
+ */
44
+ deactivateBranch(branch: Branch): void;
45
+ static getInstance(): StateMachine;
46
+ private constructor();
47
+ }
48
+ export declare const stateMachine: StateMachine;
49
+ export declare const mainBranch: Branch;
50
+ export declare const mainLevel0: Level;
51
+ export {};
52
+ //# sourceMappingURL=stateMachine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateMachine.d.ts","sourceRoot":"","sources":["../../src/game-state-machine/stateMachine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMlC,cAAM,kBAAkB;IAChB,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAC/B,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;;IAOrC,YAAY;IAMZ,WAAW;CAKX;AAED,cAAM,yBAAyB;IAC9B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,kBAAkB;IAItC,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI;IAI5B,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI;CAG3B;AAqLD,cAAM,YAAY;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IAEtC,OAAO,CAAC,YAAY,CAAgD;IAC7D,MAAM,EAAE,yBAAyB,CAAoD;IAE5F,OAAO,CAAC,cAAc,CAAsC;IAE5D,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,qBAAqB,CAA0B;IAEvD;;OAEG;IACH,OAAO,CAAC,aAAa;IA2BrB;;;;;OAKG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,MAAM;IAepE;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,MAAM;IAIpC;;;OAGG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM;WAIxB,WAAW,IAAI,YAAY;IAOzC,OAAO;CA2DP;AAED,eAAO,MAAM,YAAY,cAA6B,CAAC;AACvD,eAAO,MAAM,UAAU,QAAgD,CAAC;AACxE,eAAO,MAAM,UAAU,OAA0C,CAAC"}
@@ -0,0 +1,318 @@
1
+ import * as mc from "@minecraft/server";
2
+ import { PlayerDatabase } from "./database";
3
+ import { playerState } from "./interfaces";
4
+ import { Branch } from "./branch";
5
+ import { NAMESPACE } from "./constants";
6
+ const RESET_EVENT = `${NAMESPACE}:reset`;
7
+ const JUMP_EVENT = `${NAMESPACE}:jump`;
8
+ class StateMachineEvents {
9
+ resetFunctions; // Functions to call when the state machine is reset
10
+ tickFunctions; // Functions to call when the state machine ticks
11
+ constructor() {
12
+ this.resetFunctions = [];
13
+ this.tickFunctions = [];
14
+ }
15
+ triggerReset() {
16
+ this.resetFunctions.forEach((callback) => {
17
+ callback();
18
+ });
19
+ }
20
+ triggerTick() {
21
+ this.tickFunctions.forEach((callback) => {
22
+ callback();
23
+ });
24
+ }
25
+ }
26
+ class StateMachineEventRegister {
27
+ events;
28
+ constructor(events) {
29
+ this.events = events;
30
+ }
31
+ onReset(callback) {
32
+ this.events.resetFunctions.push(callback);
33
+ }
34
+ onTick(callback) {
35
+ this.events.tickFunctions.push(callback);
36
+ }
37
+ }
38
+ class PlayerManager {
39
+ playerDatabase = PlayerDatabase.getInstance();
40
+ players = new Map();
41
+ /**
42
+ *
43
+ * Debug function to display the players' state in the action bar.
44
+ */
45
+ debugPlayers() {
46
+ let data = [];
47
+ let longestPlayerName = 0;
48
+ let longestBranchName = 0;
49
+ let longestLevelName = 0;
50
+ const players = mc.world.getAllPlayers();
51
+ for (const player of players) {
52
+ const playerObject = this.playerDatabase.getObject(player.id);
53
+ data.push({
54
+ playerName: player.nameTag,
55
+ branch: playerObject.branch,
56
+ level: playerObject.playerLevel,
57
+ state: playerObject.playerState,
58
+ });
59
+ longestPlayerName = Math.max(longestPlayerName, player.nameTag.length);
60
+ longestBranchName = Math.max(longestBranchName, playerObject.branch.length);
61
+ longestLevelName = Math.max(longestLevelName, playerObject.playerLevel.length);
62
+ }
63
+ let formattedData = data.map((player) => {
64
+ return `${player.playerName.padEnd(longestPlayerName)} | §a${player.branch.padEnd(longestBranchName)}§r | §6${player.level.padEnd(longestLevelName)}§r | §3${player.state}§r`;
65
+ });
66
+ return formattedData;
67
+ }
68
+ registerNewPlayer(player) {
69
+ if (!this.playerDatabase.hasObject(player.id)) {
70
+ this.playerDatabase.addObject({
71
+ id: player.id,
72
+ branch: mainBranch.identifier,
73
+ playerLevel: mainLevel0.identifier,
74
+ playerState: playerState.SETUP_PLAYER,
75
+ });
76
+ }
77
+ }
78
+ updatePlayerState(currentLevel, player, playerObject, branch) {
79
+ if (playerObject.playerLevel === currentLevel.identifier && playerObject.playerState === playerState.SETUP_PLAYER) {
80
+ currentLevel.eventTrigger.triggerPlayerJoinLevel(player);
81
+ playerObject.playerState = playerState.EXIT_PLAYER;
82
+ }
83
+ else if (playerObject.playerLevel !== currentLevel.identifier) {
84
+ const levels = Array.from(branch.getLevels());
85
+ const currentIndex = currentLevel.levelIndex;
86
+ const playerIndex = levels.findIndex((level) => level[0] === playerObject.playerLevel);
87
+ if (currentIndex > playerIndex) {
88
+ for (let i = playerIndex; i < currentIndex; i++) {
89
+ const levelToExit = branch.getLevel(levels[i][0]);
90
+ const levelToEnter = branch.getLevel(levels[i + 1][0]);
91
+ levelToExit?.eventTrigger.triggerPlayerLeaveLevel(player);
92
+ levelToEnter?.eventTrigger.triggerPlayerJoinLevel(player);
93
+ }
94
+ }
95
+ else if (currentIndex < playerIndex) {
96
+ const levelToExit = branch.getLevel(levels[playerIndex][0]);
97
+ const levelToEnter = branch.getLevel(levels[currentIndex][0]);
98
+ levelToExit?.eventTrigger.triggerPlayerLeaveLevel(player);
99
+ levelToEnter?.eventTrigger.triggerPlayerJoinLevel(player);
100
+ }
101
+ else {
102
+ currentLevel.eventTrigger.triggerPlayerLeaveLevel(player);
103
+ }
104
+ playerObject.playerState = playerState.SETUP_PLAYER;
105
+ playerObject.playerLevel = currentLevel.identifier;
106
+ }
107
+ this.playerDatabase.updateObject(playerObject);
108
+ }
109
+ /**
110
+ * Resets the player database.
111
+ */
112
+ reset() {
113
+ this.playerDatabase.eraseAllObjects();
114
+ mc.world.getAllPlayers().forEach((player) => {
115
+ this.registerNewPlayer(player);
116
+ });
117
+ }
118
+ /**
119
+ * Called when a player joins the server.
120
+ * If a player does not exist on the database, it will be added to the main branch.
121
+ * @param player The player that joined the server.
122
+ */
123
+ onPlayerJoinServer(player, branches) {
124
+ this.registerNewPlayer(player);
125
+ this.players.set(player.id, player);
126
+ const playerObject = this.playerDatabase.getObject(player.id);
127
+ const branch = branches.branches.get(playerObject.branch);
128
+ const currentLevel = branch.getActiveLevel();
129
+ if (!currentLevel || !branches.activeBranches.has(branch)) {
130
+ playerObject.branch = mainBranch.identifier;
131
+ playerObject.playerLevel = mainLevel0.identifier;
132
+ playerObject.playerState = playerState.SETUP_PLAYER;
133
+ mainLevel0.eventTrigger.triggerPlayerJoinServer(player);
134
+ }
135
+ else {
136
+ currentLevel.eventTrigger.triggerPlayerJoinServer(player);
137
+ this.updatePlayerState(currentLevel, player, playerObject, branch);
138
+ }
139
+ this.playerDatabase.updateObject(playerObject);
140
+ }
141
+ /**
142
+ * Called when a player respawns.
143
+ * @param player The player that respawned.
144
+ */
145
+ onPlayerRespawn(player, branches) {
146
+ const playerObject = this.playerDatabase.getObject(player.id);
147
+ const branch = branches.branches.get(playerObject.branch);
148
+ const level = branch.getActiveLevel();
149
+ if (level) {
150
+ level.eventTrigger.triggerPlayerRespawn(player);
151
+ }
152
+ }
153
+ /**
154
+ * Called when a player leaves the server.
155
+ * @param player The player that left the server.
156
+ */
157
+ onPlayerLeaveServer(player, branches) {
158
+ this.players.delete(player.id);
159
+ const playerObject = this.playerDatabase.getObject(player.id);
160
+ const branch = branches.branches.get(playerObject.branch);
161
+ const level = branch.getActiveLevel();
162
+ if (level) {
163
+ level.eventTrigger.triggerPlayerLeaveServer(player);
164
+ }
165
+ }
166
+ /**
167
+ * Called when a player dies.
168
+ * @param player The player that died.
169
+ */
170
+ onPlayerDeath(player, branches) {
171
+ const playerObject = this.playerDatabase.getObject(player.id);
172
+ const branch = branches.branches.get(playerObject.branch);
173
+ const level = branch.getActiveLevel();
174
+ if (level) {
175
+ level.eventTrigger.triggerPlayerDeath(player);
176
+ }
177
+ }
178
+ tick(activeBranches) {
179
+ activeBranches.forEach((branch) => {
180
+ this.playerDatabase
181
+ .getAllObjects()
182
+ .filter((player) => player.branch === branch.identifier)
183
+ .forEach((player) => {
184
+ const p = this.players.get(player.id);
185
+ if (p) {
186
+ this.updatePlayerState(branch.getActiveLevel(), p, player, branch);
187
+ }
188
+ });
189
+ });
190
+ }
191
+ }
192
+ class StateMachine {
193
+ static instance;
194
+ eventTrigger = new StateMachineEvents();
195
+ events = new StateMachineEventRegister(this.eventTrigger);
196
+ playersManager = new PlayerManager();
197
+ branches = new Map();
198
+ activeBranches = new Set();
199
+ defaultActiveBranches = new Set();
200
+ /**
201
+ * Debug function to display the branches' state in the action bar.
202
+ */
203
+ debugBranches() {
204
+ let data = [];
205
+ let longestBranchName = 0;
206
+ let longestLevelName = 0;
207
+ this.branches.forEach((branch) => {
208
+ const level = branch.getActiveLevel();
209
+ data.push({
210
+ branch: branch.identifier,
211
+ level: level?.identifier ?? "No active levels",
212
+ state: branch.levelState,
213
+ isActive: this.activeBranches.has(branch),
214
+ });
215
+ longestBranchName = Math.max(longestBranchName, branch.identifier.length);
216
+ longestLevelName = Math.max(longestLevelName, level?.identifier.length ?? 0);
217
+ });
218
+ let formattedData = data.map((branch) => {
219
+ return `§a${branch.branch.padEnd(longestBranchName)}§r | §6${branch.level.padEnd(longestLevelName)}§r | §3${branch.state}§r | ${branch.isActive}§r`;
220
+ });
221
+ return formattedData;
222
+ }
223
+ /**
224
+ * Creates a new branch.
225
+ * @param name The branch name to create.
226
+ * @param activate Whether to activate the branch or not.
227
+ * @returns
228
+ */
229
+ createBranch(name, activate = false) {
230
+ const branchIdentifier = `${NAMESPACE}:${name}`;
231
+ if (this.branches.has(branchIdentifier)) {
232
+ throw new Error(`Branch with name ${branchIdentifier} already exists. Error at StateMachine.createBranch`);
233
+ }
234
+ const branch = new Branch(name);
235
+ this.branches.set(branchIdentifier, branch);
236
+ if (activate) {
237
+ this.activateBranch(branch);
238
+ this.defaultActiveBranches.add(branch);
239
+ }
240
+ return branch;
241
+ }
242
+ /**
243
+ * Activates a branch.
244
+ * @param branch The branch to activate.
245
+ */
246
+ activateBranch(branch) {
247
+ this.activeBranches.add(branch);
248
+ }
249
+ /**
250
+ * Deactivates a branch.
251
+ * @param branch The branch to deactivate.
252
+ */
253
+ deactivateBranch(branch) {
254
+ this.activeBranches.delete(branch);
255
+ }
256
+ static getInstance() {
257
+ if (!StateMachine.instance) {
258
+ StateMachine.instance = new StateMachine();
259
+ }
260
+ return StateMachine.instance;
261
+ }
262
+ constructor() {
263
+ mc.world.afterEvents.playerSpawn.subscribe((event) => {
264
+ if (event.initialSpawn) {
265
+ this.playersManager.onPlayerJoinServer(event.player, { branches: this.branches, activeBranches: this.activeBranches });
266
+ }
267
+ else {
268
+ this.playersManager.onPlayerRespawn(event.player, { branches: this.branches, activeBranches: this.activeBranches });
269
+ }
270
+ });
271
+ mc.world.beforeEvents.playerLeave.subscribe((event) => {
272
+ this.playersManager.onPlayerLeaveServer(event.player, { branches: this.branches, activeBranches: this.activeBranches });
273
+ });
274
+ mc.world.afterEvents.entityDie.subscribe((event) => {
275
+ this.playersManager.onPlayerDeath(event.deadEntity, { branches: this.branches, activeBranches: this.activeBranches });
276
+ }, { entityTypes: ["minecraft:player"] });
277
+ mc.system.afterEvents.scriptEventReceive.subscribe((event) => {
278
+ if (event.id === RESET_EVENT) {
279
+ this.eventTrigger.triggerReset();
280
+ }
281
+ else if (event.id === JUMP_EVENT) {
282
+ this.activeBranches.forEach((branch) => {
283
+ branch.jumpToLevel(event.message);
284
+ });
285
+ }
286
+ });
287
+ mc.system.runInterval(() => this.eventTrigger.triggerTick());
288
+ this.events.onReset(() => {
289
+ this.activeBranches.clear();
290
+ this.branches.forEach((branch) => {
291
+ branch.resetBranch();
292
+ });
293
+ this.defaultActiveBranches.forEach((branch) => {
294
+ this.activateBranch(branch);
295
+ });
296
+ this.playersManager.reset();
297
+ });
298
+ this.events.onTick(() => {
299
+ this.activeBranches.forEach((branch) => {
300
+ if (!branch.getActiveLevel()) {
301
+ this.deactivateBranch(branch);
302
+ }
303
+ else {
304
+ branch.tick();
305
+ }
306
+ });
307
+ this.playersManager.tick(this.activeBranches);
308
+ //let playerData = this.playersManager.debugPlayers();
309
+ //let levelData = this.debugBranches();
310
+ //let combinedData = [...playerData, ...levelData];
311
+ //mc.world.getDimension(mc.MinecraftDimensionTypes.overworld).runCommand(`title @a actionbar ${combinedData.join("\n")}`);
312
+ });
313
+ }
314
+ }
315
+ export const stateMachine = StateMachine.getInstance();
316
+ export const mainBranch = stateMachine.createBranch("mainBranch", true);
317
+ export const mainLevel0 = mainBranch.addLevel("mainLevel0", true);
318
+ //# sourceMappingURL=stateMachine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateMachine.js","sourceRoot":"","sources":["../../src/game-state-machine/stateMachine.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,50 +1,54 @@
1
- {
2
- "name": "@starktma/minecraft-utils",
3
- "version": "1.2.81",
4
- "description": "",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "keywords": [],
8
- "author": "",
9
- "license": "ISC",
10
- "type": "module",
11
- "scripts": {
12
- "build": "npx -p typescript tsc --project tsconfig.json",
13
- "prepare": "npm run build"
14
- },
15
- "exports": {
16
- ".": {
17
- "import": "./dist/index.js",
18
- "types": "./dist/index.d.ts"
19
- },
20
- "./math": {
21
- "import": "./dist/math/index.js",
22
- "types": "./dist/math/index.d.ts"
23
- },
24
- "./minecraft": {
25
- "import": "./dist/minecraft/index.js",
26
- "types": "./dist/minecraft/index.d.ts"
27
- },
28
- "./database": {
29
- "import": "./dist/database/index.js",
30
- "types": "./dist/database/index.d.ts"
31
- },
32
- "./player-events": {
33
- "import": "./dist/player-event/index.js",
34
- "types": "./dist/player-event/index.d.ts"
35
- }
36
- },
37
- "publishConfig": {
38
- "access": "public"
39
- },
40
- "files": [
41
- "dist",
42
- "README.md",
43
- "LICENSE"
44
- ],
45
- "devDependencies": {
46
- "@minecraft/server": "^2.2.0",
47
- "@minecraft/server-ui": "^2.0.0",
48
- "typescript": "^5.9.2"
49
- }
50
- }
1
+ {
2
+ "name": "@starktma/minecraft-utils",
3
+ "version": "1.3.0",
4
+ "description": "",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "keywords": [],
8
+ "author": "",
9
+ "license": "ISC",
10
+ "type": "module",
11
+ "scripts": {
12
+ "build": "npx -p typescript tsc --project tsconfig.json",
13
+ "prepare": "npm run build"
14
+ },
15
+ "exports": {
16
+ ".": {
17
+ "import": "./dist/index.js",
18
+ "types": "./dist/index.d.ts"
19
+ },
20
+ "./math": {
21
+ "import": "./dist/math/index.js",
22
+ "types": "./dist/math/index.d.ts"
23
+ },
24
+ "./minecraft": {
25
+ "import": "./dist/minecraft/index.js",
26
+ "types": "./dist/minecraft/index.d.ts"
27
+ },
28
+ "./database": {
29
+ "import": "./dist/database/index.js",
30
+ "types": "./dist/database/index.d.ts"
31
+ },
32
+ "./player-events": {
33
+ "import": "./dist/player-event/index.js",
34
+ "types": "./dist/player-event/index.d.ts"
35
+ },
36
+ "./game-state-machine": {
37
+ "import": "./dist/game-state-machine/index.js",
38
+ "types": "./dist/game-state-machine/index.d.ts"
39
+ }
40
+ },
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "files": [
45
+ "dist",
46
+ "README.md",
47
+ "LICENSE"
48
+ ],
49
+ "devDependencies": {
50
+ "@minecraft/server": "^2.2.0",
51
+ "@minecraft/server-ui": "^2.0.0",
52
+ "typescript": "^5.9.2"
53
+ }
54
+ }