specprotocol 1.4.4 → 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 +13 -2
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +281 -113
- package/dist/bot.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/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 +14 -14
- package/dist/protocol/states/play.d.ts.map +1 -1
- package/dist/protocol/states/play.js +244 -54
- package/dist/protocol/states/play.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 +7 -7
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,6 +134,13 @@ 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;
|
|
137
145
|
private playPacketListener;
|
|
138
146
|
private readonly onConnectionError;
|
|
@@ -147,6 +155,9 @@ export declare class Bot extends TypedEventEmitter<BotEvents> {
|
|
|
147
155
|
get gameMode(): number;
|
|
148
156
|
get isAlive(): boolean;
|
|
149
157
|
get position(): Vec3;
|
|
158
|
+
private requirePacketId;
|
|
159
|
+
private sendPlayPacket;
|
|
160
|
+
private emitChatFromComponent;
|
|
150
161
|
/**
|
|
151
162
|
* Connect to the server and begin the login process.
|
|
152
163
|
*/
|
|
@@ -160,7 +171,7 @@ export declare class Bot extends TypedEventEmitter<BotEvents> {
|
|
|
160
171
|
* In 1.20.2+, the server sends registry data, feature flags, etc. before Play.
|
|
161
172
|
* When the server sends Finish Configuration (0x03), we transition to Play.
|
|
162
173
|
*
|
|
163
|
-
*
|
|
174
|
+
* Example configuration clientbound packet IDs (latest protocol):
|
|
164
175
|
* 0x00 = Cookie Request
|
|
165
176
|
* 0x01 = Plugin Message
|
|
166
177
|
* 0x02 = Disconnect
|
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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"}
|