specprotocol 1.4.3 → 1.4.5
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/README.md +66 -174
- package/dist/bot.d.ts +17 -3
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +413 -153
- package/dist/bot.js.map +1 -1
- package/dist/chat.js +1 -1
- package/dist/chat.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/inventory.d.ts.map +1 -1
- package/dist/inventory.js +4 -1
- package/dist/inventory.js.map +1 -1
- 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/handshake.d.ts +2 -2
- package/dist/protocol/states/handshake.d.ts.map +1 -1
- package/dist/protocol/states/handshake.js +3 -2
- package/dist/protocol/states/handshake.js.map +1 -1
- package/dist/protocol/states/login.d.ts +3 -3
- package/dist/protocol/states/login.d.ts.map +1 -1
- package/dist/protocol/states/login.js +27 -9
- package/dist/protocol/states/login.js.map +1 -1
- package/dist/protocol/states/play.d.ts +20 -14
- package/dist/protocol/states/play.d.ts.map +1 -1
- package/dist/protocol/states/play.js +279 -61
- 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/protocol/version.d.ts +23 -0
- package/dist/protocol/version.d.ts.map +1 -0
- package/dist/protocol/version.js +137 -0
- package/dist/protocol/version.js.map +1 -0
- package/docs/README.md +1 -1
- package/docs/api/protocol.md +1 -1
- package/docs/getting-started.md +1 -1
- package/docs/guides/architecture.md +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -1,174 +1,66 @@
|
|
|
1
|
-
# SpecProtocol
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
| `position` | `(Vec3)` | Position updated by server |
|
|
68
|
-
| `kicked` | `(reason)` | Kicked from server |
|
|
69
|
-
| `entitySpawn` | `(Entity)` | Entity spawned nearby |
|
|
70
|
-
| `entityRemove` | `(entityId)` | Entity removed |
|
|
71
|
-
| `blockUpdate` | `(x, y, z, stateId)` | Block changed |
|
|
72
|
-
| `error` | `(Error)` | Connection error |
|
|
73
|
-
| `end` | — | Disconnected |
|
|
74
|
-
|
|
75
|
-
### Bot Methods
|
|
76
|
-
|
|
77
|
-
```typescript
|
|
78
|
-
bot.chat('Hello!') // Send chat message
|
|
79
|
-
bot.attack(entity) // Attack an entity
|
|
80
|
-
bot.setPosition(x, y, z) // Move to position
|
|
81
|
-
bot.lookAt(new Vec3(x, y, z)) // Look at coordinates
|
|
82
|
-
bot.dig(x, y, z) // Break a block
|
|
83
|
-
bot.setHeldItem(slot) // Select hotbar slot (0-8)
|
|
84
|
-
bot.disconnect() // Disconnect from server
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## 🧩 Custom Plugins
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
import { createBot, type Plugin, type BotAPI } from 'specprotocol';
|
|
91
|
-
|
|
92
|
-
class MyPlugin implements Plugin {
|
|
93
|
-
name = 'my-plugin';
|
|
94
|
-
|
|
95
|
-
initialize(bot: BotAPI): void {
|
|
96
|
-
bot.on('spawn', () => {
|
|
97
|
-
console.log('Bot spawned!');
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
destroy(): void {
|
|
102
|
-
// Cleanup
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const bot = await createBot({
|
|
107
|
-
host: 'localhost',
|
|
108
|
-
username: 'Bot',
|
|
109
|
-
plugins: [new MyPlugin()],
|
|
110
|
-
});
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## 🛠️ Low-Level Access
|
|
114
|
-
|
|
115
|
-
```typescript
|
|
116
|
-
import { Connection, BufferReader, BufferWriter, PROTOCOL_VERSION } from 'specprotocol';
|
|
117
|
-
|
|
118
|
-
// Direct packet access
|
|
119
|
-
bot.on('rawPacket', (packet) => {
|
|
120
|
-
console.log(`Packet 0x${packet.id.toString(16)}: ${packet.data.length} bytes`);
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
// Send raw packets
|
|
124
|
-
const writer = new BufferWriter();
|
|
125
|
-
writer.writeVarInt(42);
|
|
126
|
-
writer.writeString('hello');
|
|
127
|
-
bot.sendPacket(0x06, writer.toBuffer());
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## 📂 Architecture
|
|
131
|
-
|
|
132
|
-
```
|
|
133
|
-
specprotocol/
|
|
134
|
-
├── src/
|
|
135
|
-
│ ├── index.ts # Public API exports
|
|
136
|
-
│ ├── bot.ts # Main Bot orchestrator
|
|
137
|
-
│ ├── types.ts # Shared types (BotAPI)
|
|
138
|
-
│ ├── auth/
|
|
139
|
-
│ │ ├── offline.ts # Offline auth & UUID generation
|
|
140
|
-
│ │ └── microsoft.ts # Microsoft OAuth (Device Code Flow)
|
|
141
|
-
│ ├── protocol/
|
|
142
|
-
│ │ ├── types.ts # VarInt, VarLong, BufferReader/Writer
|
|
143
|
-
│ │ ├── packet.ts # Packet framing, splitting, registry
|
|
144
|
-
│ │ ├── connection.ts # TCP connection manager
|
|
145
|
-
│ │ ├── compression.ts # Zlib compression
|
|
146
|
-
│ │ ├── encryption.ts # AES/CFB8 encryption
|
|
147
|
-
│ │ └── states/
|
|
148
|
-
│ │ ├── handshake.ts
|
|
149
|
-
│ │ ├── login.ts
|
|
150
|
-
│ │ └── play.ts
|
|
151
|
-
│ ├── entity/
|
|
152
|
-
│ │ └── entity.ts # Entity, PlayerEntity, EntityManager
|
|
153
|
-
│ ├── world/
|
|
154
|
-
│ │ ├── block.ts # ChunkSection, ChunkColumn
|
|
155
|
-
│ │ └── world.ts # World manager
|
|
156
|
-
│ ├── plugins/
|
|
157
|
-
│ │ ├── plugin-manager.ts
|
|
158
|
-
│ │ └── built-in/
|
|
159
|
-
│ │ ├── chat.ts
|
|
160
|
-
│ │ └── combat.ts
|
|
161
|
-
│ └── utils/
|
|
162
|
-
│ ├── vec3.ts # 3D vector class
|
|
163
|
-
│ ├── logger.ts # Leveled logger
|
|
164
|
-
│ └── events.ts # Typed event emitter
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
## ⚙️ Requirements
|
|
168
|
-
|
|
169
|
-
- **Node.js** ≥ 18
|
|
170
|
-
- **Minecraft Java Edition** 1.21.4 (Protocol 769)
|
|
171
|
-
|
|
172
|
-
## 📄 License
|
|
173
|
-
|
|
174
|
-
MIT
|
|
1
|
+
# SpecProtocol
|
|
2
|
+
|
|
3
|
+
SpecProtocol is a TypeScript Minecraft bot framework built from scratch.
|
|
4
|
+
It supports Java Edition protocol range `1.8` to `1.21.x` using dynamic packet maps from `minecraft-data`.
|
|
5
|
+
|
|
6
|
+
## Install
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install specprotocol
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Quick Start
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
import { createBot } from 'specprotocol';
|
|
16
|
+
|
|
17
|
+
const bot = await createBot({
|
|
18
|
+
host: 'localhost',
|
|
19
|
+
port: 25565,
|
|
20
|
+
username: 'MyBot',
|
|
21
|
+
auth: 'offline',
|
|
22
|
+
version: '1.21.x'
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
bot.on('spawn', () => {
|
|
26
|
+
bot.chat('Hello from SpecProtocol');
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
bot.on('chat', (message) => {
|
|
30
|
+
console.log(message);
|
|
31
|
+
});
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Version Selection
|
|
35
|
+
|
|
36
|
+
`version` can be:
|
|
37
|
+
|
|
38
|
+
- Protocol number (example: `47`, `769`)
|
|
39
|
+
- Exact Minecraft version string (example: `'1.8.9'`, `'1.21.4'`)
|
|
40
|
+
- Prefix or wildcard (example: `'1.8'`, `'1.21.x'`)
|
|
41
|
+
|
|
42
|
+
If omitted, SpecProtocol uses the latest release protocol available in the installed `minecraft-data` package.
|
|
43
|
+
|
|
44
|
+
## Main Capabilities
|
|
45
|
+
|
|
46
|
+
- Login and play state handling
|
|
47
|
+
- Compression and encryption
|
|
48
|
+
- Typed bot events
|
|
49
|
+
- Entity and world tracking
|
|
50
|
+
- Plugin system
|
|
51
|
+
- Raw packet access
|
|
52
|
+
|
|
53
|
+
## Development
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npm run lint
|
|
57
|
+
npm run build
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Requirements
|
|
61
|
+
|
|
62
|
+
- Node.js `>=18`
|
|
63
|
+
|
|
64
|
+
## License
|
|
65
|
+
|
|
66
|
+
MIT
|
package/dist/bot.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { TypedEventEmitter } from './utils/events.js';
|
|
|
14
14
|
import { LogLevel } from './utils/logger.js';
|
|
15
15
|
import { Vec3 } from './utils/vec3.js';
|
|
16
16
|
import { type RawPacket } from './protocol/packet.js';
|
|
17
|
+
import { type ProtocolVersionInput } from './protocol/version.js';
|
|
17
18
|
import { World } from './world/world.js';
|
|
18
19
|
import { Entity, EntityManager } from './entity/entity.js';
|
|
19
20
|
import { TabList, type TabListPlayer } from './tablist.js';
|
|
@@ -91,7 +92,7 @@ export interface BotOptions {
|
|
|
91
92
|
/** 'offline' for cracked servers, 'microsoft' for online mode */
|
|
92
93
|
auth?: 'offline' | 'microsoft';
|
|
93
94
|
/** Protocol version (default: latest supported) */
|
|
94
|
-
version?:
|
|
95
|
+
version?: ProtocolVersionInput;
|
|
95
96
|
/** View distance to request */
|
|
96
97
|
viewDistance?: number;
|
|
97
98
|
/** Log level */
|
|
@@ -133,7 +134,17 @@ export declare class Bot extends TypedEventEmitter<BotEvents> {
|
|
|
133
134
|
readonly bossBars: BossBarManager;
|
|
134
135
|
readonly weather: Weather;
|
|
135
136
|
private readonly options;
|
|
137
|
+
private readonly protocolInfo;
|
|
138
|
+
private readonly loginClientIds;
|
|
139
|
+
private readonly loginServerIds;
|
|
140
|
+
private readonly configurationClientIds;
|
|
141
|
+
private readonly configurationServerIds;
|
|
142
|
+
private readonly playClientIds;
|
|
143
|
+
private readonly playServerIds;
|
|
136
144
|
private packetHandlers;
|
|
145
|
+
private playPacketListener;
|
|
146
|
+
private readonly onConnectionError;
|
|
147
|
+
private readonly onConnectionClose;
|
|
137
148
|
constructor(options: BotOptions);
|
|
138
149
|
get username(): string;
|
|
139
150
|
get uuid(): string;
|
|
@@ -144,6 +155,9 @@ export declare class Bot extends TypedEventEmitter<BotEvents> {
|
|
|
144
155
|
get gameMode(): number;
|
|
145
156
|
get isAlive(): boolean;
|
|
146
157
|
get position(): Vec3;
|
|
158
|
+
private requirePacketId;
|
|
159
|
+
private sendPlayPacket;
|
|
160
|
+
private emitChatFromComponent;
|
|
147
161
|
/**
|
|
148
162
|
* Connect to the server and begin the login process.
|
|
149
163
|
*/
|
|
@@ -157,7 +171,7 @@ export declare class Bot extends TypedEventEmitter<BotEvents> {
|
|
|
157
171
|
* In 1.20.2+, the server sends registry data, feature flags, etc. before Play.
|
|
158
172
|
* When the server sends Finish Configuration (0x03), we transition to Play.
|
|
159
173
|
*
|
|
160
|
-
*
|
|
174
|
+
* Example configuration clientbound packet IDs (latest protocol):
|
|
161
175
|
* 0x00 = Cookie Request
|
|
162
176
|
* 0x01 = Plugin Message
|
|
163
177
|
* 0x02 = Disconnect
|
|
@@ -296,7 +310,7 @@ export declare class Bot extends TypedEventEmitter<BotEvents> {
|
|
|
296
310
|
*
|
|
297
311
|
* @example
|
|
298
312
|
* ```ts
|
|
299
|
-
* import { createBot } from '
|
|
313
|
+
* import { createBot } from 'specprotocol';
|
|
300
314
|
*
|
|
301
315
|
* const bot = await createBot({
|
|
302
316
|
* 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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"}
|