specprotocol 1.4.2 → 1.4.4
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/block-finder.d.ts +32 -0
- package/dist/block-finder.d.ts.map +1 -0
- package/dist/block-finder.js +67 -0
- package/dist/block-finder.js.map +1 -0
- package/dist/bossbar.d.ts +58 -0
- package/dist/bossbar.d.ts.map +1 -0
- package/dist/bossbar.js +115 -0
- package/dist/bossbar.js.map +1 -0
- package/dist/bot.d.ts +43 -2
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +192 -52
- package/dist/bot.js.map +1 -1
- package/dist/chat.d.ts +57 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +210 -0
- package/dist/chat.js.map +1 -0
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -6
- package/dist/index.js.map +1 -1
- package/dist/inventory.d.ts +98 -0
- package/dist/inventory.d.ts.map +1 -0
- package/dist/inventory.js +209 -0
- package/dist/inventory.js.map +1 -0
- package/dist/plugins/built-in/chat.d.ts +0 -4
- package/dist/plugins/built-in/chat.d.ts.map +1 -1
- package/dist/plugins/built-in/chat.js +0 -40
- package/dist/plugins/built-in/chat.js.map +1 -1
- package/dist/protocol/compression.d.ts +3 -1
- package/dist/protocol/compression.d.ts.map +1 -1
- package/dist/protocol/compression.js +16 -3
- package/dist/protocol/compression.js.map +1 -1
- package/dist/protocol/connection.d.ts.map +1 -1
- package/dist/protocol/connection.js +27 -6
- package/dist/protocol/connection.js.map +1 -1
- package/dist/protocol/packet.d.ts +3 -0
- package/dist/protocol/packet.d.ts.map +1 -1
- package/dist/protocol/packet.js +28 -4
- package/dist/protocol/packet.js.map +1 -1
- package/dist/protocol/states/play.d.ts +6 -0
- package/dist/protocol/states/play.d.ts.map +1 -1
- package/dist/protocol/states/play.js +35 -7
- package/dist/protocol/states/play.js.map +1 -1
- package/dist/protocol/types.d.ts.map +1 -1
- package/dist/protocol/types.js +12 -0
- package/dist/protocol/types.js.map +1 -1
- package/dist/scoreboard.d.ts +66 -0
- package/dist/scoreboard.d.ts.map +1 -0
- package/dist/scoreboard.js +153 -0
- package/dist/scoreboard.js.map +1 -0
- package/dist/tablist.d.ts +56 -0
- package/dist/tablist.d.ts.map +1 -0
- package/dist/tablist.js +91 -0
- package/dist/tablist.js.map +1 -0
- package/dist/weather.d.ts +33 -0
- package/dist/weather.d.ts.map +1 -0
- package/dist/weather.js +74 -0
- package/dist/weather.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block Finder Utility (Core)
|
|
3
|
+
*
|
|
4
|
+
* Provides efficient block searching in loaded chunks.
|
|
5
|
+
*/
|
|
6
|
+
import { World } from './world/world.js';
|
|
7
|
+
import { Vec3 } from './utils/vec3.js';
|
|
8
|
+
export interface FindBlockOptions {
|
|
9
|
+
/** Block state IDs to search for */
|
|
10
|
+
matching: number | number[];
|
|
11
|
+
/** Maximum distance from origin */
|
|
12
|
+
maxDistance?: number;
|
|
13
|
+
/** Maximum number of results */
|
|
14
|
+
count?: number;
|
|
15
|
+
/** Point to search from (defaults to 0,0,0) */
|
|
16
|
+
point?: Vec3;
|
|
17
|
+
}
|
|
18
|
+
export interface FoundBlock {
|
|
19
|
+
position: Vec3;
|
|
20
|
+
stateId: number;
|
|
21
|
+
distance: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Find blocks in the loaded world matching criteria.
|
|
25
|
+
* Returns blocks sorted by distance (nearest first).
|
|
26
|
+
*/
|
|
27
|
+
export declare function findBlocks(world: World, options: FindBlockOptions): FoundBlock[];
|
|
28
|
+
/**
|
|
29
|
+
* Find the nearest block matching criteria.
|
|
30
|
+
*/
|
|
31
|
+
export declare function findBlock(world: World, options: Omit<FindBlockOptions, 'count'>): FoundBlock | null;
|
|
32
|
+
//# sourceMappingURL=block-finder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-finder.d.ts","sourceRoot":"","sources":["../src/block-finder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC7B,oCAAoC;IACpC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,GAAG,UAAU,EAAE,CAkDhF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG,UAAU,GAAG,IAAI,CAGnG"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Block Finder Utility (Core)
|
|
4
|
+
*
|
|
5
|
+
* Provides efficient block searching in loaded chunks.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.findBlocks = findBlocks;
|
|
9
|
+
exports.findBlock = findBlock;
|
|
10
|
+
const vec3_js_1 = require("./utils/vec3.js");
|
|
11
|
+
/**
|
|
12
|
+
* Find blocks in the loaded world matching criteria.
|
|
13
|
+
* Returns blocks sorted by distance (nearest first).
|
|
14
|
+
*/
|
|
15
|
+
function findBlocks(world, options) {
|
|
16
|
+
const matching = Array.isArray(options.matching) ? new Set(options.matching) : new Set([options.matching]);
|
|
17
|
+
const maxDist = options.maxDistance ?? 64;
|
|
18
|
+
const maxCount = options.count ?? 1;
|
|
19
|
+
const origin = options.point ?? new vec3_js_1.Vec3(0, 0, 0);
|
|
20
|
+
const results = [];
|
|
21
|
+
// Search in a cube around the origin
|
|
22
|
+
const minX = Math.floor(origin.x - maxDist);
|
|
23
|
+
const maxX = Math.ceil(origin.x + maxDist);
|
|
24
|
+
const minY = Math.max(world.minY, Math.floor(origin.y - maxDist));
|
|
25
|
+
const maxY = Math.min(world.minY + world.worldHeight, Math.ceil(origin.y + maxDist));
|
|
26
|
+
const minZ = Math.floor(origin.z - maxDist);
|
|
27
|
+
const maxZ = Math.ceil(origin.z + maxDist);
|
|
28
|
+
const maxDistSq = maxDist * maxDist;
|
|
29
|
+
for (let x = minX; x <= maxX; x++) {
|
|
30
|
+
for (let z = minZ; z <= maxZ; z++) {
|
|
31
|
+
// Check if chunk is loaded first
|
|
32
|
+
const chunkX = Math.floor(x / 16);
|
|
33
|
+
const chunkZ = Math.floor(z / 16);
|
|
34
|
+
if (!world.isChunkLoaded(chunkX, chunkZ))
|
|
35
|
+
continue;
|
|
36
|
+
for (let y = minY; y <= maxY; y++) {
|
|
37
|
+
const stateId = world.getBlock(x, y, z);
|
|
38
|
+
if (!matching.has(stateId))
|
|
39
|
+
continue;
|
|
40
|
+
// Check distance
|
|
41
|
+
const dx = x + 0.5 - origin.x;
|
|
42
|
+
const dy = y + 0.5 - origin.y;
|
|
43
|
+
const dz = z + 0.5 - origin.z;
|
|
44
|
+
const distSq = dx * dx + dy * dy + dz * dz;
|
|
45
|
+
if (distSq > maxDistSq)
|
|
46
|
+
continue;
|
|
47
|
+
results.push({
|
|
48
|
+
position: new vec3_js_1.Vec3(x, y, z),
|
|
49
|
+
stateId,
|
|
50
|
+
distance: Math.sqrt(distSq),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Sort by distance
|
|
56
|
+
results.sort((a, b) => a.distance - b.distance);
|
|
57
|
+
// Limit results
|
|
58
|
+
return results.slice(0, maxCount);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Find the nearest block matching criteria.
|
|
62
|
+
*/
|
|
63
|
+
function findBlock(world, options) {
|
|
64
|
+
const results = findBlocks(world, { ...options, count: 1 });
|
|
65
|
+
return results[0] ?? null;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=block-finder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-finder.js","sourceRoot":"","sources":["../src/block-finder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boss Bar Manager
|
|
3
|
+
*
|
|
4
|
+
* Tracks server boss bars (Ender Dragon, Wither, custom).
|
|
5
|
+
*/
|
|
6
|
+
import { TypedEventEmitter } from './utils/events.js';
|
|
7
|
+
export interface BossBar {
|
|
8
|
+
uuid: string;
|
|
9
|
+
title: string;
|
|
10
|
+
health: number;
|
|
11
|
+
color: BossBarColor;
|
|
12
|
+
division: BossBarDivision;
|
|
13
|
+
flags: number;
|
|
14
|
+
}
|
|
15
|
+
export declare enum BossBarColor {
|
|
16
|
+
PINK = 0,
|
|
17
|
+
BLUE = 1,
|
|
18
|
+
RED = 2,
|
|
19
|
+
GREEN = 3,
|
|
20
|
+
YELLOW = 4,
|
|
21
|
+
PURPLE = 5,
|
|
22
|
+
WHITE = 6
|
|
23
|
+
}
|
|
24
|
+
export declare enum BossBarDivision {
|
|
25
|
+
NONE = 0,
|
|
26
|
+
NOTCHES_6 = 1,
|
|
27
|
+
NOTCHES_10 = 2,
|
|
28
|
+
NOTCHES_12 = 3,
|
|
29
|
+
NOTCHES_20 = 4
|
|
30
|
+
}
|
|
31
|
+
export declare enum BossBarAction {
|
|
32
|
+
ADD = 0,
|
|
33
|
+
REMOVE = 1,
|
|
34
|
+
UPDATE_HEALTH = 2,
|
|
35
|
+
UPDATE_TITLE = 3,
|
|
36
|
+
UPDATE_STYLE = 4,
|
|
37
|
+
UPDATE_FLAGS = 5
|
|
38
|
+
}
|
|
39
|
+
export interface BossBarEvents {
|
|
40
|
+
'bossBarAdd': (bar: BossBar) => void;
|
|
41
|
+
'bossBarRemove': (uuid: string) => void;
|
|
42
|
+
'bossBarUpdate': (bar: BossBar) => void;
|
|
43
|
+
}
|
|
44
|
+
export declare class BossBarManager extends TypedEventEmitter<BossBarEvents> {
|
|
45
|
+
private bars;
|
|
46
|
+
constructor();
|
|
47
|
+
/** Get a boss bar by UUID */
|
|
48
|
+
get(uuid: string): BossBar | undefined;
|
|
49
|
+
/** Get all active boss bars */
|
|
50
|
+
getAll(): BossBar[];
|
|
51
|
+
/** Number of active boss bars */
|
|
52
|
+
get count(): number;
|
|
53
|
+
/** Handle boss bar packet */
|
|
54
|
+
handleBossBar(uuid: string, action: number, data: any): void;
|
|
55
|
+
/** Clear all boss bars */
|
|
56
|
+
clear(): void;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=bossbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bossbar.d.ts","sourceRoot":"","sources":["../src/bossbar.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,YAAY;IACpB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,GAAG,IAAI;IACP,KAAK,IAAI;IACT,MAAM,IAAI;IACV,MAAM,IAAI;IACV,KAAK,IAAI;CACZ;AAED,oBAAY,eAAe;IACvB,IAAI,IAAI;IACR,SAAS,IAAI;IACb,UAAU,IAAI;IACd,UAAU,IAAI;IACd,UAAU,IAAI;CACjB;AAED,oBAAY,aAAa;IACrB,GAAG,IAAI;IACP,MAAM,IAAI;IACV,aAAa,IAAI;IACjB,YAAY,IAAI;IAChB,YAAY,IAAI;IAChB,YAAY,IAAI;CACnB;AAED,MAAM,WAAW,aAAa;IAC1B,YAAY,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,eAAe,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C;AAED,qBAAa,cAAe,SAAQ,iBAAiB,CAAC,aAAa,CAAC;IAChE,OAAO,CAAC,IAAI,CAA8B;;IAM1C,6BAA6B;IAC7B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAItC,+BAA+B;IAC/B,MAAM,IAAI,OAAO,EAAE;IAInB,iCAAiC;IACjC,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,6BAA6B;IAC7B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAuD5D,0BAA0B;IAC1B,KAAK,IAAI,IAAI;CAGhB"}
|
package/dist/bossbar.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Boss Bar Manager
|
|
4
|
+
*
|
|
5
|
+
* Tracks server boss bars (Ender Dragon, Wither, custom).
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.BossBarManager = exports.BossBarAction = exports.BossBarDivision = exports.BossBarColor = void 0;
|
|
9
|
+
const events_js_1 = require("./utils/events.js");
|
|
10
|
+
var BossBarColor;
|
|
11
|
+
(function (BossBarColor) {
|
|
12
|
+
BossBarColor[BossBarColor["PINK"] = 0] = "PINK";
|
|
13
|
+
BossBarColor[BossBarColor["BLUE"] = 1] = "BLUE";
|
|
14
|
+
BossBarColor[BossBarColor["RED"] = 2] = "RED";
|
|
15
|
+
BossBarColor[BossBarColor["GREEN"] = 3] = "GREEN";
|
|
16
|
+
BossBarColor[BossBarColor["YELLOW"] = 4] = "YELLOW";
|
|
17
|
+
BossBarColor[BossBarColor["PURPLE"] = 5] = "PURPLE";
|
|
18
|
+
BossBarColor[BossBarColor["WHITE"] = 6] = "WHITE";
|
|
19
|
+
})(BossBarColor || (exports.BossBarColor = BossBarColor = {}));
|
|
20
|
+
var BossBarDivision;
|
|
21
|
+
(function (BossBarDivision) {
|
|
22
|
+
BossBarDivision[BossBarDivision["NONE"] = 0] = "NONE";
|
|
23
|
+
BossBarDivision[BossBarDivision["NOTCHES_6"] = 1] = "NOTCHES_6";
|
|
24
|
+
BossBarDivision[BossBarDivision["NOTCHES_10"] = 2] = "NOTCHES_10";
|
|
25
|
+
BossBarDivision[BossBarDivision["NOTCHES_12"] = 3] = "NOTCHES_12";
|
|
26
|
+
BossBarDivision[BossBarDivision["NOTCHES_20"] = 4] = "NOTCHES_20";
|
|
27
|
+
})(BossBarDivision || (exports.BossBarDivision = BossBarDivision = {}));
|
|
28
|
+
var BossBarAction;
|
|
29
|
+
(function (BossBarAction) {
|
|
30
|
+
BossBarAction[BossBarAction["ADD"] = 0] = "ADD";
|
|
31
|
+
BossBarAction[BossBarAction["REMOVE"] = 1] = "REMOVE";
|
|
32
|
+
BossBarAction[BossBarAction["UPDATE_HEALTH"] = 2] = "UPDATE_HEALTH";
|
|
33
|
+
BossBarAction[BossBarAction["UPDATE_TITLE"] = 3] = "UPDATE_TITLE";
|
|
34
|
+
BossBarAction[BossBarAction["UPDATE_STYLE"] = 4] = "UPDATE_STYLE";
|
|
35
|
+
BossBarAction[BossBarAction["UPDATE_FLAGS"] = 5] = "UPDATE_FLAGS";
|
|
36
|
+
})(BossBarAction || (exports.BossBarAction = BossBarAction = {}));
|
|
37
|
+
class BossBarManager extends events_js_1.TypedEventEmitter {
|
|
38
|
+
bars = new Map();
|
|
39
|
+
constructor() {
|
|
40
|
+
super();
|
|
41
|
+
}
|
|
42
|
+
/** Get a boss bar by UUID */
|
|
43
|
+
get(uuid) {
|
|
44
|
+
return this.bars.get(uuid);
|
|
45
|
+
}
|
|
46
|
+
/** Get all active boss bars */
|
|
47
|
+
getAll() {
|
|
48
|
+
return Array.from(this.bars.values());
|
|
49
|
+
}
|
|
50
|
+
/** Number of active boss bars */
|
|
51
|
+
get count() {
|
|
52
|
+
return this.bars.size;
|
|
53
|
+
}
|
|
54
|
+
/** Handle boss bar packet */
|
|
55
|
+
handleBossBar(uuid, action, data) {
|
|
56
|
+
switch (action) {
|
|
57
|
+
case BossBarAction.ADD: {
|
|
58
|
+
const bar = {
|
|
59
|
+
uuid,
|
|
60
|
+
title: data.title ?? '',
|
|
61
|
+
health: data.health ?? 1.0,
|
|
62
|
+
color: data.color ?? BossBarColor.PINK,
|
|
63
|
+
division: data.division ?? BossBarDivision.NONE,
|
|
64
|
+
flags: data.flags ?? 0,
|
|
65
|
+
};
|
|
66
|
+
this.bars.set(uuid, bar);
|
|
67
|
+
this.emit('bossBarAdd', bar);
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
case BossBarAction.REMOVE:
|
|
71
|
+
this.bars.delete(uuid);
|
|
72
|
+
this.emit('bossBarRemove', uuid);
|
|
73
|
+
break;
|
|
74
|
+
case BossBarAction.UPDATE_HEALTH: {
|
|
75
|
+
const bar = this.bars.get(uuid);
|
|
76
|
+
if (bar) {
|
|
77
|
+
bar.health = data.health ?? bar.health;
|
|
78
|
+
this.emit('bossBarUpdate', bar);
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case BossBarAction.UPDATE_TITLE: {
|
|
83
|
+
const bar = this.bars.get(uuid);
|
|
84
|
+
if (bar) {
|
|
85
|
+
bar.title = data.title ?? bar.title;
|
|
86
|
+
this.emit('bossBarUpdate', bar);
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
case BossBarAction.UPDATE_STYLE: {
|
|
91
|
+
const bar = this.bars.get(uuid);
|
|
92
|
+
if (bar) {
|
|
93
|
+
bar.color = data.color ?? bar.color;
|
|
94
|
+
bar.division = data.division ?? bar.division;
|
|
95
|
+
this.emit('bossBarUpdate', bar);
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
case BossBarAction.UPDATE_FLAGS: {
|
|
100
|
+
const bar = this.bars.get(uuid);
|
|
101
|
+
if (bar) {
|
|
102
|
+
bar.flags = data.flags ?? bar.flags;
|
|
103
|
+
this.emit('bossBarUpdate', bar);
|
|
104
|
+
}
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/** Clear all boss bars */
|
|
110
|
+
clear() {
|
|
111
|
+
this.bars.clear();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.BossBarManager = BossBarManager;
|
|
115
|
+
//# sourceMappingURL=bossbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bossbar.js","sourceRoot":"","sources":["../src/bossbar.ts"],"names":[],"mappings":"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"}
|
package/dist/bot.d.ts
CHANGED
|
@@ -16,14 +16,23 @@ import { Vec3 } from './utils/vec3.js';
|
|
|
16
16
|
import { type RawPacket } from './protocol/packet.js';
|
|
17
17
|
import { World } from './world/world.js';
|
|
18
18
|
import { Entity, EntityManager } from './entity/entity.js';
|
|
19
|
+
import { TabList, type TabListPlayer } from './tablist.js';
|
|
20
|
+
import { ChatMessage } from './chat.js';
|
|
21
|
+
import { Inventory, type ItemStack } from './inventory.js';
|
|
22
|
+
import { Scoreboard } from './scoreboard.js';
|
|
23
|
+
import { BossBarManager } from './bossbar.js';
|
|
24
|
+
import { Weather } from './weather.js';
|
|
25
|
+
import { type FindBlockOptions, type FoundBlock } from './block-finder.js';
|
|
19
26
|
import { PluginManager, type Plugin } from './plugins/plugin-manager.js';
|
|
20
27
|
export interface BotEvents {
|
|
21
28
|
/** Login complete, entering play state */
|
|
22
29
|
'login': () => void;
|
|
23
30
|
/** Spawned in the world */
|
|
24
31
|
'spawn': () => void;
|
|
25
|
-
/** Received a chat message */
|
|
32
|
+
/** Received a chat message (parsed) */
|
|
26
33
|
'chat': (message: string, isOverlay: boolean) => void;
|
|
34
|
+
/** Received a chat message (rich) */
|
|
35
|
+
'chatMessage': (message: ChatMessage, isOverlay: boolean) => void;
|
|
27
36
|
/** Health updated */
|
|
28
37
|
'health': (health: number, food: number, saturation: number) => void;
|
|
29
38
|
/** Bot died */
|
|
@@ -56,6 +65,16 @@ export interface BotEvents {
|
|
|
56
65
|
'title': (text: string) => void;
|
|
57
66
|
/** Subtitle text displayed */
|
|
58
67
|
'subtitle': (text: string) => void;
|
|
68
|
+
/** Actionbar text displayed */
|
|
69
|
+
'actionbar': (text: string) => void;
|
|
70
|
+
/** Player joined (tab list) */
|
|
71
|
+
'playerJoin': (player: TabListPlayer) => void;
|
|
72
|
+
/** Player left (tab list) */
|
|
73
|
+
'playerLeave': (player: TabListPlayer) => void;
|
|
74
|
+
/** Weather changed */
|
|
75
|
+
'weatherChange': (weather: 'clear' | 'rain' | 'thunder') => void;
|
|
76
|
+
/** Inventory slot updated */
|
|
77
|
+
'inventoryUpdate': (slot: number, item: ItemStack | null) => void;
|
|
59
78
|
/** Raw packet received (for advanced use) */
|
|
60
79
|
'rawPacket': (packet: RawPacket) => void;
|
|
61
80
|
/** Connection error */
|
|
@@ -108,8 +127,16 @@ export declare class Bot extends TypedEventEmitter<BotEvents> {
|
|
|
108
127
|
readonly entities: EntityManager;
|
|
109
128
|
readonly plugins: PluginManager;
|
|
110
129
|
readonly entity: Entity;
|
|
130
|
+
readonly tabList: TabList;
|
|
131
|
+
readonly inventory: Inventory;
|
|
132
|
+
readonly scoreboard: Scoreboard;
|
|
133
|
+
readonly bossBars: BossBarManager;
|
|
134
|
+
readonly weather: Weather;
|
|
111
135
|
private readonly options;
|
|
112
136
|
private packetHandlers;
|
|
137
|
+
private playPacketListener;
|
|
138
|
+
private readonly onConnectionError;
|
|
139
|
+
private readonly onConnectionClose;
|
|
113
140
|
constructor(options: BotOptions);
|
|
114
141
|
get username(): string;
|
|
115
142
|
get uuid(): string;
|
|
@@ -252,13 +279,27 @@ export declare class Bot extends TypedEventEmitter<BotEvents> {
|
|
|
252
279
|
* Disconnect from the server.
|
|
253
280
|
*/
|
|
254
281
|
disconnect(): void;
|
|
282
|
+
/**
|
|
283
|
+
* Find blocks matching criteria in loaded chunks.
|
|
284
|
+
* Returns blocks sorted by distance (nearest first).
|
|
285
|
+
*
|
|
286
|
+
* @example
|
|
287
|
+
* ```ts
|
|
288
|
+
* const stones = bot.findBlocks({ matching: 1, maxDistance: 32, count: 10 });
|
|
289
|
+
* ```
|
|
290
|
+
*/
|
|
291
|
+
findBlocks(options: FindBlockOptions): FoundBlock[];
|
|
292
|
+
/**
|
|
293
|
+
* Find the nearest block matching criteria.
|
|
294
|
+
*/
|
|
295
|
+
findBlock(options: Omit<FindBlockOptions, 'count'>): FoundBlock | null;
|
|
255
296
|
}
|
|
256
297
|
/**
|
|
257
298
|
* Create and connect a bot.
|
|
258
299
|
*
|
|
259
300
|
* @example
|
|
260
301
|
* ```ts
|
|
261
|
-
* import { createBot } from '
|
|
302
|
+
* import { createBot } from 'specprotocol';
|
|
262
303
|
*
|
|
263
304
|
* const bot = await createBot({
|
|
264
305
|
* host: 'localhost',
|
package/dist/bot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAU,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
|