specprotocol 1.4.2 → 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 +39 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +48 -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 +1 -1
package/dist/chat.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat Component Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Minecraft's JSON chat format into plain text, styled text,
|
|
5
|
+
* and structured data. Supports colors, formatting, click/hover events.
|
|
6
|
+
*/
|
|
7
|
+
export interface ChatComponent {
|
|
8
|
+
text?: string;
|
|
9
|
+
translate?: string;
|
|
10
|
+
with?: ChatComponent[];
|
|
11
|
+
extra?: ChatComponent[];
|
|
12
|
+
color?: string;
|
|
13
|
+
bold?: boolean;
|
|
14
|
+
italic?: boolean;
|
|
15
|
+
underlined?: boolean;
|
|
16
|
+
strikethrough?: boolean;
|
|
17
|
+
obfuscated?: boolean;
|
|
18
|
+
insertion?: string;
|
|
19
|
+
clickEvent?: {
|
|
20
|
+
action: string;
|
|
21
|
+
value: string;
|
|
22
|
+
};
|
|
23
|
+
hoverEvent?: {
|
|
24
|
+
action: string;
|
|
25
|
+
contents?: any;
|
|
26
|
+
value?: any;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export declare class ChatMessage {
|
|
30
|
+
readonly raw: ChatComponent;
|
|
31
|
+
constructor(component: ChatComponent | string);
|
|
32
|
+
/** Convert to plain text (no formatting) */
|
|
33
|
+
toString(): string;
|
|
34
|
+
/** Convert to ANSI colored text for terminal */
|
|
35
|
+
toAnsi(): string;
|
|
36
|
+
/** Convert to HTML */
|
|
37
|
+
toHTML(): string;
|
|
38
|
+
/** Get the color of the root component */
|
|
39
|
+
get color(): string | undefined;
|
|
40
|
+
/** Check if message contains text */
|
|
41
|
+
includes(text: string): boolean;
|
|
42
|
+
/** Get click event if present */
|
|
43
|
+
get clickEvent(): {
|
|
44
|
+
action: string;
|
|
45
|
+
value: string;
|
|
46
|
+
} | undefined;
|
|
47
|
+
/** Parse a chat message from raw JSON string or NBT-like data */
|
|
48
|
+
static parse(data: string | object): ChatMessage;
|
|
49
|
+
/** Parse section sign (§) formatted text */
|
|
50
|
+
static fromLegacy(text: string): ChatMessage;
|
|
51
|
+
private extractText;
|
|
52
|
+
private extractAnsi;
|
|
53
|
+
private extractHTML;
|
|
54
|
+
private hexToRgb;
|
|
55
|
+
private escapeHtml;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8BH,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,UAAU,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;CAChE;AAED,qBAAa,WAAW;IACpB,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;gBAEhB,SAAS,EAAE,aAAa,GAAG,MAAM;IAY7C,4CAA4C;IAC5C,QAAQ,IAAI,MAAM;IAIlB,gDAAgD;IAChD,MAAM,IAAI,MAAM;IAIhB,sBAAsB;IACtB,MAAM,IAAI,MAAM;IAIhB,0CAA0C;IAC1C,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B,iCAAiC;IACjC,IAAI,UAAU,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAE9D;IAED,iEAAiE;IACjE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW;IAOhD,4CAA4C;IAC5C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAqC5C,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,UAAU;CAGrB"}
|
package/dist/chat.js
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Chat Component Parser
|
|
4
|
+
*
|
|
5
|
+
* Parses Minecraft's JSON chat format into plain text, styled text,
|
|
6
|
+
* and structured data. Supports colors, formatting, click/hover events.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ChatMessage = void 0;
|
|
10
|
+
// Minecraft color code map
|
|
11
|
+
const COLOR_MAP = {
|
|
12
|
+
black: '#000000',
|
|
13
|
+
dark_blue: '#0000AA',
|
|
14
|
+
dark_green: '#00AA00',
|
|
15
|
+
dark_aqua: '#00AAAA',
|
|
16
|
+
dark_red: '#AA0000',
|
|
17
|
+
dark_purple: '#AA00AA',
|
|
18
|
+
gold: '#FFAA00',
|
|
19
|
+
gray: '#AAAAAA',
|
|
20
|
+
dark_gray: '#555555',
|
|
21
|
+
blue: '#5555FF',
|
|
22
|
+
green: '#55FF55',
|
|
23
|
+
aqua: '#55FFFF',
|
|
24
|
+
red: '#FF5555',
|
|
25
|
+
light_purple: '#FF55FF',
|
|
26
|
+
yellow: '#FFFF55',
|
|
27
|
+
white: '#FFFFFF',
|
|
28
|
+
};
|
|
29
|
+
// Section sign color codes
|
|
30
|
+
const SECTION_COLORS = {
|
|
31
|
+
'0': 'black', '1': 'dark_blue', '2': 'dark_green', '3': 'dark_aqua',
|
|
32
|
+
'4': 'dark_red', '5': 'dark_purple', '6': 'gold', '7': 'gray',
|
|
33
|
+
'8': 'dark_gray', '9': 'blue', 'a': 'green', 'b': 'aqua',
|
|
34
|
+
'c': 'red', 'd': 'light_purple', 'e': 'yellow', 'f': 'white',
|
|
35
|
+
};
|
|
36
|
+
class ChatMessage {
|
|
37
|
+
raw;
|
|
38
|
+
constructor(component) {
|
|
39
|
+
if (typeof component === 'string') {
|
|
40
|
+
try {
|
|
41
|
+
this.raw = JSON.parse(component);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
this.raw = { text: component };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.raw = component;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** Convert to plain text (no formatting) */
|
|
52
|
+
toString() {
|
|
53
|
+
return this.extractText(this.raw);
|
|
54
|
+
}
|
|
55
|
+
/** Convert to ANSI colored text for terminal */
|
|
56
|
+
toAnsi() {
|
|
57
|
+
return this.extractAnsi(this.raw);
|
|
58
|
+
}
|
|
59
|
+
/** Convert to HTML */
|
|
60
|
+
toHTML() {
|
|
61
|
+
return this.extractHTML(this.raw);
|
|
62
|
+
}
|
|
63
|
+
/** Get the color of the root component */
|
|
64
|
+
get color() {
|
|
65
|
+
return this.raw.color;
|
|
66
|
+
}
|
|
67
|
+
/** Check if message contains text */
|
|
68
|
+
includes(text) {
|
|
69
|
+
return this.toString().includes(text);
|
|
70
|
+
}
|
|
71
|
+
/** Get click event if present */
|
|
72
|
+
get clickEvent() {
|
|
73
|
+
return this.raw.clickEvent;
|
|
74
|
+
}
|
|
75
|
+
/** Parse a chat message from raw JSON string or NBT-like data */
|
|
76
|
+
static parse(data) {
|
|
77
|
+
if (typeof data === 'string') {
|
|
78
|
+
return new ChatMessage(data);
|
|
79
|
+
}
|
|
80
|
+
return new ChatMessage(data);
|
|
81
|
+
}
|
|
82
|
+
/** Parse section sign (§) formatted text */
|
|
83
|
+
static fromLegacy(text) {
|
|
84
|
+
const component = { text: '', extra: [] };
|
|
85
|
+
let current = { text: '' };
|
|
86
|
+
let i = 0;
|
|
87
|
+
while (i < text.length) {
|
|
88
|
+
if (text[i] === '§' && i + 1 < text.length) {
|
|
89
|
+
// Push current segment
|
|
90
|
+
if (current.text) {
|
|
91
|
+
component.extra.push(current);
|
|
92
|
+
current = { text: '' };
|
|
93
|
+
}
|
|
94
|
+
const code = text[i + 1].toLowerCase();
|
|
95
|
+
if (SECTION_COLORS[code]) {
|
|
96
|
+
current.color = SECTION_COLORS[code];
|
|
97
|
+
}
|
|
98
|
+
else if (code === 'l')
|
|
99
|
+
current.bold = true;
|
|
100
|
+
else if (code === 'o')
|
|
101
|
+
current.italic = true;
|
|
102
|
+
else if (code === 'n')
|
|
103
|
+
current.underlined = true;
|
|
104
|
+
else if (code === 'm')
|
|
105
|
+
current.strikethrough = true;
|
|
106
|
+
else if (code === 'k')
|
|
107
|
+
current.obfuscated = true;
|
|
108
|
+
else if (code === 'r')
|
|
109
|
+
current = { text: '' }; // Reset
|
|
110
|
+
i += 2;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
current.text += text[i];
|
|
114
|
+
i++;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (current.text) {
|
|
118
|
+
component.extra.push(current);
|
|
119
|
+
}
|
|
120
|
+
return new ChatMessage(component);
|
|
121
|
+
}
|
|
122
|
+
extractText(comp) {
|
|
123
|
+
let text = '';
|
|
124
|
+
if (comp.text)
|
|
125
|
+
text += comp.text;
|
|
126
|
+
if (comp.translate) {
|
|
127
|
+
text += comp.translate;
|
|
128
|
+
if (comp.with) {
|
|
129
|
+
for (let i = 0; i < comp.with.length; i++) {
|
|
130
|
+
text = text.replace(`%${i + 1}$s`, this.extractText(comp.with[i]));
|
|
131
|
+
text = text.replace('%s', this.extractText(comp.with[i]));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (comp.extra) {
|
|
136
|
+
for (const child of comp.extra) {
|
|
137
|
+
text += this.extractText(child);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return text;
|
|
141
|
+
}
|
|
142
|
+
extractAnsi(comp) {
|
|
143
|
+
let text = '';
|
|
144
|
+
// Apply color
|
|
145
|
+
if (comp.color && COLOR_MAP[comp.color]) {
|
|
146
|
+
text += `\x1b[38;2;${this.hexToRgb(COLOR_MAP[comp.color])}m`;
|
|
147
|
+
}
|
|
148
|
+
if (comp.bold)
|
|
149
|
+
text += '\x1b[1m';
|
|
150
|
+
if (comp.italic)
|
|
151
|
+
text += '\x1b[3m';
|
|
152
|
+
if (comp.underlined)
|
|
153
|
+
text += '\x1b[4m';
|
|
154
|
+
if (comp.strikethrough)
|
|
155
|
+
text += '\x1b[9m';
|
|
156
|
+
if (comp.text)
|
|
157
|
+
text += comp.text;
|
|
158
|
+
if (comp.translate)
|
|
159
|
+
text += comp.translate;
|
|
160
|
+
if (comp.extra) {
|
|
161
|
+
for (const child of comp.extra) {
|
|
162
|
+
text += this.extractAnsi(child);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
text += '\x1b[0m';
|
|
166
|
+
return text;
|
|
167
|
+
}
|
|
168
|
+
extractHTML(comp) {
|
|
169
|
+
let styles = [];
|
|
170
|
+
if (comp.color && COLOR_MAP[comp.color]) {
|
|
171
|
+
styles.push(`color:${COLOR_MAP[comp.color]}`);
|
|
172
|
+
}
|
|
173
|
+
else if (comp.color?.startsWith('#')) {
|
|
174
|
+
styles.push(`color:${comp.color}`);
|
|
175
|
+
}
|
|
176
|
+
if (comp.bold)
|
|
177
|
+
styles.push('font-weight:bold');
|
|
178
|
+
if (comp.italic)
|
|
179
|
+
styles.push('font-style:italic');
|
|
180
|
+
if (comp.underlined)
|
|
181
|
+
styles.push('text-decoration:underline');
|
|
182
|
+
if (comp.strikethrough)
|
|
183
|
+
styles.push('text-decoration:line-through');
|
|
184
|
+
let text = comp.text ?? '';
|
|
185
|
+
if (comp.translate)
|
|
186
|
+
text += comp.translate;
|
|
187
|
+
let html = styles.length > 0
|
|
188
|
+
? `<span style="${styles.join(';')}">${this.escapeHtml(text)}`
|
|
189
|
+
: this.escapeHtml(text);
|
|
190
|
+
if (comp.extra) {
|
|
191
|
+
for (const child of comp.extra) {
|
|
192
|
+
html += this.extractHTML(child);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
if (styles.length > 0)
|
|
196
|
+
html += '</span>';
|
|
197
|
+
return html;
|
|
198
|
+
}
|
|
199
|
+
hexToRgb(hex) {
|
|
200
|
+
const r = parseInt(hex.slice(1, 3), 16);
|
|
201
|
+
const g = parseInt(hex.slice(3, 5), 16);
|
|
202
|
+
const b = parseInt(hex.slice(5, 7), 16);
|
|
203
|
+
return `${r};${g};${b}`;
|
|
204
|
+
}
|
|
205
|
+
escapeHtml(text) {
|
|
206
|
+
return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
exports.ChatMessage = ChatMessage;
|
|
210
|
+
//# sourceMappingURL=chat.js.map
|
package/dist/chat.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* SpecProtocol — A Minecraft bot framework built from scratch in TypeScript.
|
|
3
3
|
*
|
|
4
4
|
* @example
|
|
5
5
|
* ```ts
|
|
6
|
-
* import { createBot } from '
|
|
6
|
+
* import { createBot } from 'specprotocol';
|
|
7
7
|
*
|
|
8
8
|
* const bot = await createBot({
|
|
9
9
|
* host: 'localhost',
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* });
|
|
14
14
|
*
|
|
15
15
|
* bot.on('spawn', () => {
|
|
16
|
-
* bot.chat('Hello from
|
|
16
|
+
* bot.chat('Hello from SpecProtocol!');
|
|
17
17
|
* });
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
@@ -28,6 +28,13 @@ export { PROTOCOL_VERSION } from './protocol/states/handshake.js';
|
|
|
28
28
|
export { World } from './world/world.js';
|
|
29
29
|
export { ChunkColumn, ChunkSection, type Block } from './world/block.js';
|
|
30
30
|
export { Entity, PlayerEntity, EntityManager, EntityType } from './entity/entity.js';
|
|
31
|
+
export { TabList, type TabListPlayer, type TabListEvents } from './tablist.js';
|
|
32
|
+
export { ChatMessage, type ChatComponent } from './chat.js';
|
|
33
|
+
export { Inventory, type ItemStack, type InventoryEvents } from './inventory.js';
|
|
34
|
+
export { Scoreboard, type ScoreboardObjective, type ScoreboardScore, type ScoreboardTeam, type ScoreboardEvents } from './scoreboard.js';
|
|
35
|
+
export { BossBarManager, type BossBar, BossBarColor, BossBarDivision, BossBarAction, type BossBarEvents } from './bossbar.js';
|
|
36
|
+
export { Weather, type WeatherState, type WeatherEvents } from './weather.js';
|
|
37
|
+
export { findBlocks, findBlock, type FindBlockOptions, type FoundBlock } from './block-finder.js';
|
|
31
38
|
export { PluginManager, type Plugin } from './plugins/plugin-manager.js';
|
|
32
39
|
export { ChatPlugin } from './plugins/built-in/chat.js';
|
|
33
40
|
export { CombatPlugin } from './plugins/built-in/combat.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAG3E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EACH,aAAa,EACb,eAAe,EACf,cAAc,EACd,KAAK,SAAS,EACd,KAAK,gBAAgB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrF,OAAO,EAAE,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAG3E,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EACH,aAAa,EACb,eAAe,EACf,cAAc,EACd,KAAK,SAAS,EACd,KAAK,gBAAgB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGzE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrF,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzI,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9H,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGlG,OAAO,EAAE,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* SpecProtocol — A Minecraft bot framework built from scratch in TypeScript.
|
|
4
4
|
*
|
|
5
5
|
* @example
|
|
6
6
|
* ```ts
|
|
7
|
-
* import { createBot } from '
|
|
7
|
+
* import { createBot } from 'specprotocol';
|
|
8
8
|
*
|
|
9
9
|
* const bot = await createBot({
|
|
10
10
|
* host: 'localhost',
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
* });
|
|
15
15
|
*
|
|
16
16
|
* bot.on('spawn', () => {
|
|
17
|
-
* bot.chat('Hello from
|
|
17
|
+
* bot.chat('Hello from SpecProtocol!');
|
|
18
18
|
* });
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.joinServer = exports.authenticateMicrosoft = exports.offlineUUID = exports.createOfflineProfile = exports.CombatPlugin = exports.ChatPlugin = exports.PluginManager = exports.EntityType = exports.EntityManager = exports.PlayerEntity = exports.Entity = exports.ChunkSection = exports.ChunkColumn = exports.World = exports.PROTOCOL_VERSION = exports.PacketRegistry = exports.PacketDirection = exports.ProtocolState = exports.BufferWriter = exports.BufferReader = exports.Connection = exports.TypedEventEmitter = exports.LogLevel = exports.Logger = exports.Vec3 = exports.createBot = exports.Bot = void 0;
|
|
22
|
+
exports.joinServer = exports.authenticateMicrosoft = exports.offlineUUID = exports.createOfflineProfile = exports.CombatPlugin = exports.ChatPlugin = exports.PluginManager = exports.findBlock = exports.findBlocks = exports.Weather = exports.BossBarAction = exports.BossBarDivision = exports.BossBarColor = exports.BossBarManager = exports.Scoreboard = exports.Inventory = exports.ChatMessage = exports.TabList = exports.EntityType = exports.EntityManager = exports.PlayerEntity = exports.Entity = exports.ChunkSection = exports.ChunkColumn = exports.World = exports.PROTOCOL_VERSION = exports.PacketRegistry = exports.PacketDirection = exports.ProtocolState = exports.BufferWriter = exports.BufferReader = exports.Connection = exports.TypedEventEmitter = exports.LogLevel = exports.Logger = exports.Vec3 = exports.createBot = exports.Bot = void 0;
|
|
23
23
|
// Main Bot
|
|
24
24
|
var bot_js_1 = require("./bot.js");
|
|
25
25
|
Object.defineProperty(exports, "Bot", { enumerable: true, get: function () { return bot_js_1.Bot; } });
|
|
@@ -56,11 +56,30 @@ Object.defineProperty(exports, "Entity", { enumerable: true, get: function () {
|
|
|
56
56
|
Object.defineProperty(exports, "PlayerEntity", { enumerable: true, get: function () { return entity_js_1.PlayerEntity; } });
|
|
57
57
|
Object.defineProperty(exports, "EntityManager", { enumerable: true, get: function () { return entity_js_1.EntityManager; } });
|
|
58
58
|
Object.defineProperty(exports, "EntityType", { enumerable: true, get: function () { return entity_js_1.EntityType; } });
|
|
59
|
+
// Core Modules
|
|
60
|
+
var tablist_js_1 = require("./tablist.js");
|
|
61
|
+
Object.defineProperty(exports, "TabList", { enumerable: true, get: function () { return tablist_js_1.TabList; } });
|
|
62
|
+
var chat_js_1 = require("./chat.js");
|
|
63
|
+
Object.defineProperty(exports, "ChatMessage", { enumerable: true, get: function () { return chat_js_1.ChatMessage; } });
|
|
64
|
+
var inventory_js_1 = require("./inventory.js");
|
|
65
|
+
Object.defineProperty(exports, "Inventory", { enumerable: true, get: function () { return inventory_js_1.Inventory; } });
|
|
66
|
+
var scoreboard_js_1 = require("./scoreboard.js");
|
|
67
|
+
Object.defineProperty(exports, "Scoreboard", { enumerable: true, get: function () { return scoreboard_js_1.Scoreboard; } });
|
|
68
|
+
var bossbar_js_1 = require("./bossbar.js");
|
|
69
|
+
Object.defineProperty(exports, "BossBarManager", { enumerable: true, get: function () { return bossbar_js_1.BossBarManager; } });
|
|
70
|
+
Object.defineProperty(exports, "BossBarColor", { enumerable: true, get: function () { return bossbar_js_1.BossBarColor; } });
|
|
71
|
+
Object.defineProperty(exports, "BossBarDivision", { enumerable: true, get: function () { return bossbar_js_1.BossBarDivision; } });
|
|
72
|
+
Object.defineProperty(exports, "BossBarAction", { enumerable: true, get: function () { return bossbar_js_1.BossBarAction; } });
|
|
73
|
+
var weather_js_1 = require("./weather.js");
|
|
74
|
+
Object.defineProperty(exports, "Weather", { enumerable: true, get: function () { return weather_js_1.Weather; } });
|
|
75
|
+
var block_finder_js_1 = require("./block-finder.js");
|
|
76
|
+
Object.defineProperty(exports, "findBlocks", { enumerable: true, get: function () { return block_finder_js_1.findBlocks; } });
|
|
77
|
+
Object.defineProperty(exports, "findBlock", { enumerable: true, get: function () { return block_finder_js_1.findBlock; } });
|
|
59
78
|
// Plugins
|
|
60
79
|
var plugin_manager_js_1 = require("./plugins/plugin-manager.js");
|
|
61
80
|
Object.defineProperty(exports, "PluginManager", { enumerable: true, get: function () { return plugin_manager_js_1.PluginManager; } });
|
|
62
|
-
var
|
|
63
|
-
Object.defineProperty(exports, "ChatPlugin", { enumerable: true, get: function () { return
|
|
81
|
+
var chat_js_2 = require("./plugins/built-in/chat.js");
|
|
82
|
+
Object.defineProperty(exports, "ChatPlugin", { enumerable: true, get: function () { return chat_js_2.ChatPlugin; } });
|
|
64
83
|
var combat_js_1 = require("./plugins/built-in/combat.js");
|
|
65
84
|
Object.defineProperty(exports, "CombatPlugin", { enumerable: true, get: function () { return combat_js_1.CombatPlugin; } });
|
|
66
85
|
// Auth
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAEH,WAAW;AACX,mCAA2E;AAAlE,6FAAA,GAAG,OAAA;AAAE,mGAAA,SAAS,OAAA;AAEvB,QAAQ;AACR,2CAAuC;AAA9B,+FAAA,IAAI,OAAA;AACb,+CAAqD;AAA5C,mGAAA,MAAM,OAAA;AAAE,qGAAA,QAAQ,OAAA;AACzB,+CAAsD;AAA7C,8GAAA,iBAAiB,OAAA;AAE1B,WAAW;AACX,0DAA8E;AAArE,2GAAA,UAAU,OAAA;AACnB,gDAAiE;AAAxD,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AACnC,kDAM8B;AAL1B,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AAIlB,+DAAkE;AAAzD,gHAAA,gBAAgB,OAAA;AAEzB,QAAQ;AACR,6CAAyC;AAAhC,iGAAA,KAAK,OAAA;AACd,6CAAyE;AAAhE,uGAAA,WAAW,OAAA;AAAE,wGAAA,YAAY,OAAA;AAElC,SAAS;AACT,gDAAqF;AAA5E,mGAAA,MAAM,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,uGAAA,UAAU,OAAA;AAExD,UAAU;AACV,iEAAyE;AAAhE,kHAAA,aAAa,OAAA;AACtB,sDAAwD;AAA/C,qGAAA,UAAU,OAAA;AACnB,0DAA4D;AAAnD,yGAAA,YAAY,OAAA;AAErB,OAAO;AACP,gDAAsE;AAA7D,kHAAA,oBAAoB,OAAA;AAAE,yGAAA,WAAW,OAAA;AAC1C,oDAAwE;AAA/D,qHAAA,qBAAqB,OAAA;AAAE,0GAAA,UAAU,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAEH,WAAW;AACX,mCAA2E;AAAlE,6FAAA,GAAG,OAAA;AAAE,mGAAA,SAAS,OAAA;AAEvB,QAAQ;AACR,2CAAuC;AAA9B,+FAAA,IAAI,OAAA;AACb,+CAAqD;AAA5C,mGAAA,MAAM,OAAA;AAAE,qGAAA,QAAQ,OAAA;AACzB,+CAAsD;AAA7C,8GAAA,iBAAiB,OAAA;AAE1B,WAAW;AACX,0DAA8E;AAArE,2GAAA,UAAU,OAAA;AACnB,gDAAiE;AAAxD,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AACnC,kDAM8B;AAL1B,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AAIlB,+DAAkE;AAAzD,gHAAA,gBAAgB,OAAA;AAEzB,QAAQ;AACR,6CAAyC;AAAhC,iGAAA,KAAK,OAAA;AACd,6CAAyE;AAAhE,uGAAA,WAAW,OAAA;AAAE,wGAAA,YAAY,OAAA;AAElC,SAAS;AACT,gDAAqF;AAA5E,mGAAA,MAAM,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,uGAAA,UAAU,OAAA;AAExD,eAAe;AACf,2CAA+E;AAAtE,qGAAA,OAAO,OAAA;AAChB,qCAA4D;AAAnD,sGAAA,WAAW,OAAA;AACpB,+CAAiF;AAAxE,yGAAA,SAAS,OAAA;AAClB,iDAAyI;AAAhI,2GAAA,UAAU,OAAA;AACnB,2CAA8H;AAArH,4GAAA,cAAc,OAAA;AAAgB,0GAAA,YAAY,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,2GAAA,aAAa,OAAA;AACnF,2CAA8E;AAArE,qGAAA,OAAO,OAAA;AAChB,qDAAkG;AAAzF,6GAAA,UAAU,OAAA;AAAE,4GAAA,SAAS,OAAA;AAE9B,UAAU;AACV,iEAAyE;AAAhE,kHAAA,aAAa,OAAA;AACtB,sDAAwD;AAA/C,qGAAA,UAAU,OAAA;AACnB,0DAA4D;AAAnD,yGAAA,YAAY,OAAA;AAErB,OAAO;AACP,gDAAsE;AAA7D,kHAAA,oBAAoB,OAAA;AAAE,yGAAA,WAAW,OAAA;AAC1C,oDAAwE;AAA/D,qHAAA,qBAAqB,OAAA;AAAE,0GAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inventory Manager (Core)
|
|
3
|
+
*
|
|
4
|
+
* Tracks the player's inventory: 36 main slots (0-35 = hotbar 0-8 + main 9-35),
|
|
5
|
+
* armor slots (36-39), off-hand (40), and open container slots.
|
|
6
|
+
*/
|
|
7
|
+
import { TypedEventEmitter } from './utils/events.js';
|
|
8
|
+
import { BufferReader } from './protocol/types.js';
|
|
9
|
+
export interface ItemStack {
|
|
10
|
+
/** Item count (0 = empty) */
|
|
11
|
+
count: number;
|
|
12
|
+
/** Item ID (registry ID) */
|
|
13
|
+
itemId: number;
|
|
14
|
+
/** Additional components count */
|
|
15
|
+
addComponentsCount: number;
|
|
16
|
+
/** Removed components count */
|
|
17
|
+
removeComponentsCount: number;
|
|
18
|
+
/** Raw component data */
|
|
19
|
+
rawData: Buffer;
|
|
20
|
+
}
|
|
21
|
+
export interface InventoryEvents {
|
|
22
|
+
'slotUpdate': (slot: number, item: ItemStack | null, windowId: number) => void;
|
|
23
|
+
'inventoryUpdate': (windowId: number) => void;
|
|
24
|
+
'heldItemChange': (slot: number) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare class Inventory extends TypedEventEmitter<InventoryEvents> {
|
|
27
|
+
/** Player inventory slots: 0-8 hotbar, 9-35 main, 36-39 armor, 40 off-hand, 41-45 crafting */
|
|
28
|
+
private slots;
|
|
29
|
+
/** Currently open container slots */
|
|
30
|
+
private containerSlots;
|
|
31
|
+
/** Current held hotbar slot (0-8) */
|
|
32
|
+
private _selectedSlot;
|
|
33
|
+
/** Current open window ID */
|
|
34
|
+
private _windowId;
|
|
35
|
+
/** State ID for click container packets */
|
|
36
|
+
private _stateId;
|
|
37
|
+
/** Carried item (cursor item) */
|
|
38
|
+
private _carriedItem;
|
|
39
|
+
constructor();
|
|
40
|
+
/** Currently selected hotbar slot (0-8) */
|
|
41
|
+
get selectedSlot(): number;
|
|
42
|
+
set selectedSlot(slot: number);
|
|
43
|
+
/** Current open window ID */
|
|
44
|
+
get windowId(): number;
|
|
45
|
+
/** State ID for container operations */
|
|
46
|
+
get stateId(): number;
|
|
47
|
+
/** Item currently on cursor */
|
|
48
|
+
get carriedItem(): ItemStack | null;
|
|
49
|
+
/** Get item in a player inventory slot (0-45) */
|
|
50
|
+
getSlot(slot: number): ItemStack | null;
|
|
51
|
+
/** Get item in currently held hotbar slot */
|
|
52
|
+
get heldItem(): ItemStack | null;
|
|
53
|
+
/** Get hotbar items (slots 0-8) */
|
|
54
|
+
get hotbar(): (ItemStack | null)[];
|
|
55
|
+
/** Get main inventory items (slots 9-35) */
|
|
56
|
+
get main(): (ItemStack | null)[];
|
|
57
|
+
/** Get armor slots: [helmet, chestplate, leggings, boots] */
|
|
58
|
+
get armor(): (ItemStack | null)[];
|
|
59
|
+
/** Get off-hand item (slot 40) */
|
|
60
|
+
get offHand(): ItemStack | null;
|
|
61
|
+
/** Get helmet (slot 36) */
|
|
62
|
+
get helmet(): ItemStack | null;
|
|
63
|
+
/** Get chestplate (slot 37) */
|
|
64
|
+
get chestplate(): ItemStack | null;
|
|
65
|
+
/** Get leggings (slot 38) */
|
|
66
|
+
get leggings(): ItemStack | null;
|
|
67
|
+
/** Get boots (slot 39) */
|
|
68
|
+
get boots(): ItemStack | null;
|
|
69
|
+
/** Get all non-null items */
|
|
70
|
+
get items(): ItemStack[];
|
|
71
|
+
/** Count of non-empty slots */
|
|
72
|
+
get usedSlots(): number;
|
|
73
|
+
/** Count of empty slots in main inventory (9-35) + hotbar (0-8) */
|
|
74
|
+
get emptySlots(): number;
|
|
75
|
+
/** Find first slot with matching item ID */
|
|
76
|
+
findItem(itemId: number): number;
|
|
77
|
+
/** Find all slots with matching item ID */
|
|
78
|
+
findAllItems(itemId: number): number[];
|
|
79
|
+
/** Count total items of a given ID across all slots */
|
|
80
|
+
countItem(itemId: number): number;
|
|
81
|
+
/** Get item in container slot */
|
|
82
|
+
getContainerSlot(slot: number): ItemStack | null;
|
|
83
|
+
/** Get all container slots */
|
|
84
|
+
get container(): (ItemStack | null)[];
|
|
85
|
+
/** Set a single slot (from server packet) */
|
|
86
|
+
setSlot(windowId: number, slot: number, item: ItemStack | null, stateId?: number): void;
|
|
87
|
+
/** Set all container contents (from server packet) */
|
|
88
|
+
setContainerContent(windowId: number, items: (ItemStack | null)[], stateId: number, carriedItem: ItemStack | null): void;
|
|
89
|
+
/** Open a new container window */
|
|
90
|
+
openWindow(windowId: number, slotCount: number): void;
|
|
91
|
+
/** Close current container */
|
|
92
|
+
closeWindow(): void;
|
|
93
|
+
/** Clear all inventory data */
|
|
94
|
+
clear(): void;
|
|
95
|
+
/** Parse an item stack from buffer data */
|
|
96
|
+
static parseItem(reader: BufferReader): ItemStack | null;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=inventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../src/inventory.ts"],"names":[],"mappings":"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"}
|