@bkm016/calcite 0.3.0 → 0.5.1

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 (90) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +103 -20
  3. package/dist/accounts.js +4 -2
  4. package/dist/accounts.js.map +1 -1
  5. package/dist/cli.js +12 -141
  6. package/dist/cli.js.map +1 -1
  7. package/dist/client-core.d.ts +22 -13
  8. package/dist/client-core.js +217 -260
  9. package/dist/client-core.js.map +1 -1
  10. package/dist/client.d.ts +44 -15
  11. package/dist/client.js +58 -21
  12. package/dist/client.js.map +1 -1
  13. package/dist/display.d.ts +0 -6
  14. package/dist/display.js +31 -44
  15. package/dist/display.js.map +1 -1
  16. package/dist/feed.d.ts +17 -0
  17. package/dist/feed.js +47 -0
  18. package/dist/feed.js.map +1 -0
  19. package/dist/game-run.d.ts +30 -0
  20. package/dist/game-run.js +51 -0
  21. package/dist/game-run.js.map +1 -0
  22. package/dist/hmc.d.ts +7 -0
  23. package/dist/hmc.js +42 -31
  24. package/dist/hmc.js.map +1 -1
  25. package/dist/index.d.ts +4 -2
  26. package/dist/index.js +2 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/install.d.ts +6 -0
  29. package/dist/install.js +26 -3
  30. package/dist/install.js.map +1 -1
  31. package/dist/java.js +11 -2
  32. package/dist/java.js.map +1 -1
  33. package/dist/launch.d.ts +79 -0
  34. package/dist/launch.js +142 -0
  35. package/dist/launch.js.map +1 -0
  36. package/dist/lock.js +18 -18
  37. package/dist/lock.js.map +1 -1
  38. package/dist/mcp/accounts.d.ts +3 -0
  39. package/dist/mcp/accounts.js +45 -0
  40. package/dist/mcp/accounts.js.map +1 -0
  41. package/dist/mcp/act.d.ts +3 -0
  42. package/dist/mcp/act.js +129 -0
  43. package/dist/mcp/act.js.map +1 -0
  44. package/dist/mcp/extensions.d.ts +3 -0
  45. package/dist/mcp/extensions.js +21 -0
  46. package/dist/mcp/extensions.js.map +1 -0
  47. package/dist/mcp/index.d.ts +13 -0
  48. package/dist/mcp/index.js +58 -0
  49. package/dist/mcp/index.js.map +1 -0
  50. package/dist/mcp/items.d.ts +3 -0
  51. package/dist/mcp/items.js +71 -0
  52. package/dist/mcp/items.js.map +1 -0
  53. package/dist/mcp/lifecycle.d.ts +3 -0
  54. package/dist/mcp/lifecycle.js +120 -0
  55. package/dist/mcp/lifecycle.js.map +1 -0
  56. package/dist/mcp/observe.d.ts +3 -0
  57. package/dist/mcp/observe.js +110 -0
  58. package/dist/mcp/observe.js.map +1 -0
  59. package/dist/mcp/shared.d.ts +49 -0
  60. package/dist/mcp/shared.js +56 -0
  61. package/dist/mcp/shared.js.map +1 -0
  62. package/dist/mcp/tasks.d.ts +15 -0
  63. package/dist/mcp/tasks.js +46 -0
  64. package/dist/mcp/tasks.js.map +1 -0
  65. package/dist/mods.js +6 -4
  66. package/dist/mods.js.map +1 -1
  67. package/dist/mojang.d.ts +5 -1
  68. package/dist/mojang.js.map +1 -1
  69. package/dist/names.js +30 -8
  70. package/dist/names.js.map +1 -1
  71. package/dist/net.js +25 -19
  72. package/dist/net.js.map +1 -1
  73. package/dist/paper.d.ts +48 -0
  74. package/dist/paper.js +215 -0
  75. package/dist/paper.js.map +1 -0
  76. package/dist/probe-server.d.ts +14 -4
  77. package/dist/probe-server.js +11 -10
  78. package/dist/probe-server.js.map +1 -1
  79. package/dist/repl.d.ts +6 -0
  80. package/dist/repl.js +207 -0
  81. package/dist/repl.js.map +1 -0
  82. package/dist/stage.d.ts +6 -0
  83. package/dist/stage.js +19 -0
  84. package/dist/stage.js.map +1 -0
  85. package/dist/types.d.ts +139 -5
  86. package/dist/types.js +12 -1
  87. package/dist/types.js.map +1 -1
  88. package/dist/zip.js.map +1 -1
  89. package/package.json +11 -3
  90. package/vendor/calcite-probe.jar +0 -0
@@ -1,27 +1,26 @@
1
1
  import { EventEmitter } from 'node:events';
2
+ import { Feed } from './feed.js';
2
3
  import { type CalcitePaths } from './paths.js';
3
- import { ProbeServer } from './probe-server.js';
4
- import { type Account, type ChatLine, type ClientOptions, type ClientStatus, type ExtensionEvent, type GameState, type LogLine, type Phase, type RenderMode, type ServerAddress } from './types.js';
4
+ import type { ProbeServer } from './probe-server.js';
5
+ import { type Account, type ChatLine, type ClientEvents, type ClientOptions, type ClientStatus, type GameEvent, type GameState, type LogLine, type Phase, type RenderMode, type ServerAddress, type WorldOptions } from './types.js';
5
6
  export declare const sleep: (ms: number) => Promise<unknown>;
6
7
  /** Process lifecycle of a client: preparing, launching, the probe connection, reconnects and shutdown. */
7
- export declare abstract class ClientCore extends EventEmitter {
8
+ export declare abstract class ClientCore extends EventEmitter<ClientEvents> {
8
9
  readonly options: Required<Pick<ClientOptions, 'name' | 'version'>> & ClientOptions;
9
10
  readonly paths: CalcitePaths;
10
11
  readonly gameDir: string;
11
12
  readonly render: RenderMode;
12
13
  readonly account: Account;
13
14
  readonly server?: ServerAddress;
15
+ readonly world?: WorldOptions;
14
16
  protected phaseValue: Phase;
15
- protected logs: LogLine[];
16
- protected chats: ChatLine[];
17
- protected events: ExtensionEvent[];
17
+ protected readonly logs: Feed<LogLine>;
18
+ protected readonly chats: Feed<ChatLine>;
19
+ protected readonly events: Feed<GameEvent>;
18
20
  private extensionJars;
19
21
  protected seq: number;
20
- protected probe: ProbeServer | null;
21
- private run;
22
- private display;
22
+ private current;
23
23
  private releaseInstance;
24
- private probeConfig;
25
24
  private game;
26
25
  private mods;
27
26
  protected headlessValue: boolean;
@@ -32,7 +31,6 @@ export declare abstract class ClientCore extends EventEmitter {
32
31
  private startedAt;
33
32
  private reconnects;
34
33
  private stopping;
35
- private poller;
36
34
  private inGameSince;
37
35
  private relaunching;
38
36
  private everInGame;
@@ -46,16 +44,24 @@ export declare abstract class ClientCore extends EventEmitter {
46
44
  private pushLog;
47
45
  /**
48
46
  * Prepares everything (Java, game files, mappings), launches the client and resolves once it is in a world
49
- * (or on the title screen when no server is configured).
47
+ * (or on the title screen when neither a server nor a world is configured).
50
48
  */
51
49
  start(): Promise<ClientStatus>;
52
50
  /** Downloads and verifies everything needed to launch (idempotent). */
53
51
  prepare(): Promise<void>;
54
52
  private resolveHeadless;
53
+ private requireGame;
55
54
  private launch;
55
+ private waitForServer;
56
+ /** Starts HeadlessMC and follows the game's output until it exits. */
57
+ private spawn;
56
58
  private onProbeConnected;
57
59
  private poll;
58
- private reconnectLimit;
60
+ /** Forge/NeoForge stay on an error screen when mods fail to load; relaunching would not help. */
61
+ private failModLoading;
62
+ /** A failure relaunching cannot fix: start() reports {@code code} and the game is killed. */
63
+ private fail;
64
+ private joinFromTitle;
59
65
  private maybeReconnect;
60
66
  private onGameExit;
61
67
  private waitUntilStarted;
@@ -63,6 +69,9 @@ export declare abstract class ClientCore extends EventEmitter {
63
69
  private shutdown;
64
70
  /** Stops the game and releases all resources. */
65
71
  stop(): Promise<void>;
72
+ /** Lets the integrated server save and stop before the game is killed. */
73
+ private closeWorld;
66
74
  status(): ClientStatus;
75
+ protected get probeConnected(): boolean;
67
76
  protected requireProbe(): ProbeServer;
68
77
  }