specprotocol 1.4.0 → 1.4.3
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 +41 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +52 -0
- 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 +206 -0
- package/dist/inventory.js.map +1 -0
- 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
package/dist/tablist.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tab List / Player List Manager
|
|
4
|
+
*
|
|
5
|
+
* Tracks all players on the server with their info:
|
|
6
|
+
* username, UUID, gamemode, ping, display name, skin textures.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TabList = void 0;
|
|
10
|
+
const events_js_1 = require("./utils/events.js");
|
|
11
|
+
class TabList extends events_js_1.TypedEventEmitter {
|
|
12
|
+
players = new Map();
|
|
13
|
+
_header = '';
|
|
14
|
+
_footer = '';
|
|
15
|
+
constructor() {
|
|
16
|
+
super();
|
|
17
|
+
}
|
|
18
|
+
/** Get header text */
|
|
19
|
+
get header() { return this._header; }
|
|
20
|
+
set header(value) { this._header = value; }
|
|
21
|
+
/** Get footer text */
|
|
22
|
+
get footer() { return this._footer; }
|
|
23
|
+
set footer(value) { this._footer = value; }
|
|
24
|
+
/** Get a player by UUID */
|
|
25
|
+
getPlayer(uuid) {
|
|
26
|
+
return this.players.get(uuid);
|
|
27
|
+
}
|
|
28
|
+
/** Get a player by username */
|
|
29
|
+
getPlayerByName(username) {
|
|
30
|
+
for (const player of this.players.values()) {
|
|
31
|
+
if (player.username === username)
|
|
32
|
+
return player;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
/** Get all players */
|
|
37
|
+
getAll() {
|
|
38
|
+
return Array.from(this.players.values());
|
|
39
|
+
}
|
|
40
|
+
/** Get all listed (visible) players */
|
|
41
|
+
getListed() {
|
|
42
|
+
return this.getAll().filter(p => p.listed);
|
|
43
|
+
}
|
|
44
|
+
/** Number of players */
|
|
45
|
+
get count() {
|
|
46
|
+
return this.players.size;
|
|
47
|
+
}
|
|
48
|
+
/** Add or update a player */
|
|
49
|
+
addPlayer(uuid, data) {
|
|
50
|
+
const existing = this.players.get(uuid);
|
|
51
|
+
if (existing) {
|
|
52
|
+
Object.assign(existing, data);
|
|
53
|
+
this.emit('playerUpdate', existing);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const player = {
|
|
57
|
+
uuid,
|
|
58
|
+
username: data.username ?? 'Unknown',
|
|
59
|
+
displayName: data.displayName,
|
|
60
|
+
gameMode: data.gameMode ?? 0,
|
|
61
|
+
ping: data.ping ?? 0,
|
|
62
|
+
listed: data.listed ?? true,
|
|
63
|
+
properties: data.properties ?? [],
|
|
64
|
+
};
|
|
65
|
+
this.players.set(uuid, player);
|
|
66
|
+
this.emit('playerJoin', player);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Update player info */
|
|
70
|
+
updatePlayer(uuid, data) {
|
|
71
|
+
const player = this.players.get(uuid);
|
|
72
|
+
if (!player)
|
|
73
|
+
return;
|
|
74
|
+
Object.assign(player, data);
|
|
75
|
+
this.emit('playerUpdate', player);
|
|
76
|
+
}
|
|
77
|
+
/** Remove a player */
|
|
78
|
+
removePlayer(uuid) {
|
|
79
|
+
const player = this.players.get(uuid);
|
|
80
|
+
if (player) {
|
|
81
|
+
this.players.delete(uuid);
|
|
82
|
+
this.emit('playerLeave', player);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** Clear all players */
|
|
86
|
+
clear() {
|
|
87
|
+
this.players.clear();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.TabList = TabList;
|
|
91
|
+
//# sourceMappingURL=tablist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tablist.js","sourceRoot":"","sources":["../src/tablist.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iDAAsD;AAkBtD,MAAa,OAAQ,SAAQ,6BAAgC;IACjD,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC3C,OAAO,GAAW,EAAE,CAAC;IACrB,OAAO,GAAW,EAAE,CAAC;IAE7B;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,sBAAsB;IACtB,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAa,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;IAEnD,sBAAsB;IACtB,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAa,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;IAEnD,2BAA2B;IAC3B,SAAS,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,+BAA+B;IAC/B,eAAe,CAAC,QAAgB;QAC5B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC;QACpD,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,sBAAsB;IACtB,MAAM;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,uCAAuC;IACvC,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,wBAAwB;IACxB,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,6BAA6B;IAC7B,SAAS,CAAC,IAAY,EAAE,IAA4B;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,MAAM,MAAM,GAAkB;gBAC1B,IAAI;gBACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;gBACpC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;gBAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;gBACpB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;aACpC,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,YAAY,CAAC,IAAY,EAAE,IAA4B;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,sBAAsB;IACtB,YAAY,CAAC,IAAY;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAED,wBAAwB;IACxB,KAAK;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACJ;AAvFD,0BAuFC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Weather Manager (Core)
|
|
3
|
+
*
|
|
4
|
+
* Tracks weather state: clear, rain, thunder.
|
|
5
|
+
*/
|
|
6
|
+
import { TypedEventEmitter } from './utils/events.js';
|
|
7
|
+
export interface WeatherEvents {
|
|
8
|
+
'rain': (isRaining: boolean) => void;
|
|
9
|
+
'thundering': (isThundering: boolean) => void;
|
|
10
|
+
'weatherChange': (weather: WeatherState) => void;
|
|
11
|
+
}
|
|
12
|
+
export type WeatherState = 'clear' | 'rain' | 'thunder';
|
|
13
|
+
export declare class Weather extends TypedEventEmitter<WeatherEvents> {
|
|
14
|
+
private _isRaining;
|
|
15
|
+
private _rainLevel;
|
|
16
|
+
private _thunderLevel;
|
|
17
|
+
constructor();
|
|
18
|
+
/** Whether it's currently raining */
|
|
19
|
+
get isRaining(): boolean;
|
|
20
|
+
/** Whether it's currently thundering */
|
|
21
|
+
get isThundering(): boolean;
|
|
22
|
+
/** Rain intensity (0.0 to 1.0) */
|
|
23
|
+
get rainLevel(): number;
|
|
24
|
+
/** Thunder intensity (0.0 to 1.0) */
|
|
25
|
+
get thunderLevel(): number;
|
|
26
|
+
/** Current weather state */
|
|
27
|
+
get state(): WeatherState;
|
|
28
|
+
/** Handle game event for weather */
|
|
29
|
+
handleGameEvent(event: number, value: number): void;
|
|
30
|
+
/** Clear weather state */
|
|
31
|
+
clear(): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=weather.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weather.d.ts","sourceRoot":"","sources":["../src/weather.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAExD,qBAAa,OAAQ,SAAQ,iBAAiB,CAAC,aAAa,CAAC;IACzD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,aAAa,CAAa;;IAMlC,qCAAqC;IACrC,IAAI,SAAS,IAAI,OAAO,CAA4B;IAEpD,wCAAwC;IACxC,IAAI,YAAY,IAAI,OAAO,CAAmC;IAE9D,kCAAkC;IAClC,IAAI,SAAS,IAAI,MAAM,CAA4B;IAEnD,qCAAqC;IACrC,IAAI,YAAY,IAAI,MAAM,CAA+B;IAEzD,4BAA4B;IAC5B,IAAI,KAAK,IAAI,YAAY,CAIxB;IAED,oCAAoC;IACpC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAiCnD,0BAA0B;IAC1B,KAAK,IAAI,IAAI;CAKhB"}
|
package/dist/weather.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Weather Manager (Core)
|
|
4
|
+
*
|
|
5
|
+
* Tracks weather state: clear, rain, thunder.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Weather = void 0;
|
|
9
|
+
const events_js_1 = require("./utils/events.js");
|
|
10
|
+
class Weather extends events_js_1.TypedEventEmitter {
|
|
11
|
+
_isRaining = false;
|
|
12
|
+
_rainLevel = 0;
|
|
13
|
+
_thunderLevel = 0;
|
|
14
|
+
constructor() {
|
|
15
|
+
super();
|
|
16
|
+
}
|
|
17
|
+
/** Whether it's currently raining */
|
|
18
|
+
get isRaining() { return this._isRaining; }
|
|
19
|
+
/** Whether it's currently thundering */
|
|
20
|
+
get isThundering() { return this._thunderLevel > 0; }
|
|
21
|
+
/** Rain intensity (0.0 to 1.0) */
|
|
22
|
+
get rainLevel() { return this._rainLevel; }
|
|
23
|
+
/** Thunder intensity (0.0 to 1.0) */
|
|
24
|
+
get thunderLevel() { return this._thunderLevel; }
|
|
25
|
+
/** Current weather state */
|
|
26
|
+
get state() {
|
|
27
|
+
if (this._thunderLevel > 0)
|
|
28
|
+
return 'thunder';
|
|
29
|
+
if (this._isRaining)
|
|
30
|
+
return 'rain';
|
|
31
|
+
return 'clear';
|
|
32
|
+
}
|
|
33
|
+
/** Handle game event for weather */
|
|
34
|
+
handleGameEvent(event, value) {
|
|
35
|
+
switch (event) {
|
|
36
|
+
case 1: // Begin raining
|
|
37
|
+
this._isRaining = true;
|
|
38
|
+
this.emit('rain', true);
|
|
39
|
+
this.emit('weatherChange', this.state);
|
|
40
|
+
break;
|
|
41
|
+
case 2: // End raining
|
|
42
|
+
this._isRaining = false;
|
|
43
|
+
this._rainLevel = 0;
|
|
44
|
+
this._thunderLevel = 0;
|
|
45
|
+
this.emit('rain', false);
|
|
46
|
+
this.emit('weatherChange', 'clear');
|
|
47
|
+
break;
|
|
48
|
+
case 7: // Rain level change
|
|
49
|
+
this._rainLevel = value;
|
|
50
|
+
if (value > 0 && !this._isRaining) {
|
|
51
|
+
this._isRaining = true;
|
|
52
|
+
this.emit('rain', true);
|
|
53
|
+
}
|
|
54
|
+
this.emit('weatherChange', this.state);
|
|
55
|
+
break;
|
|
56
|
+
case 8: // Thunder level change
|
|
57
|
+
const wasThundering = this._thunderLevel > 0;
|
|
58
|
+
this._thunderLevel = value;
|
|
59
|
+
if ((value > 0) !== wasThundering) {
|
|
60
|
+
this.emit('thundering', value > 0);
|
|
61
|
+
this.emit('weatherChange', this.state);
|
|
62
|
+
}
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** Clear weather state */
|
|
67
|
+
clear() {
|
|
68
|
+
this._isRaining = false;
|
|
69
|
+
this._rainLevel = 0;
|
|
70
|
+
this._thunderLevel = 0;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.Weather = Weather;
|
|
74
|
+
//# sourceMappingURL=weather.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weather.js","sourceRoot":"","sources":["../src/weather.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,iDAAsD;AAUtD,MAAa,OAAQ,SAAQ,6BAAgC;IACjD,UAAU,GAAY,KAAK,CAAC;IAC5B,UAAU,GAAW,CAAC,CAAC;IACvB,aAAa,GAAW,CAAC,CAAC;IAElC;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,qCAAqC;IACrC,IAAI,SAAS,KAAc,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEpD,wCAAwC;IACxC,IAAI,YAAY,KAAc,OAAO,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IAE9D,kCAAkC;IAClC,IAAI,SAAS,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnD,qCAAqC;IACrC,IAAI,YAAY,KAAa,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAEzD,4BAA4B;IAC5B,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7C,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,MAAM,CAAC;QACnC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,oCAAoC;IACpC,eAAe,CAAC,KAAa,EAAE,KAAa;QACxC,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,CAAC,EAAE,gBAAgB;gBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM;YACV,KAAK,CAAC,EAAE,cAAc;gBAClB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;gBACpB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBACpC,MAAM;YACV,KAAK,CAAC,EAAE,oBAAoB;gBACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvC,MAAM;YACV,KAAK,CAAC,EAAE,uBAAuB;gBAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC7C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBACnC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM;QACd,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,KAAK;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;CACJ;AApED,0BAoEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specprotocol",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "A Minecraft bot framework built from scratch in TypeScript — Mineflayer alternative with full protocol support for Java Edition 1.21.4",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -48,4 +48,4 @@
|
|
|
48
48
|
"README.md",
|
|
49
49
|
"LICENSE"
|
|
50
50
|
]
|
|
51
|
-
}
|
|
51
|
+
}
|