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
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DEFAULT_PROTOCOL_VERSION = exports.MAX_SUPPORTED_PROTOCOL_VERSION = exports.MIN_SUPPORTED_PROTOCOL_VERSION = void 0;
|
|
7
|
+
exports.resolvePacketId = resolvePacketId;
|
|
8
|
+
exports.resolveProtocolInfo = resolveProtocolInfo;
|
|
9
|
+
const minecraft_data_1 = __importDefault(require("minecraft-data"));
|
|
10
|
+
exports.MIN_SUPPORTED_PROTOCOL_VERSION = 47; // 1.8.x
|
|
11
|
+
const latestReleaseEntry = minecraft_data_1.default.versions.pc
|
|
12
|
+
.filter((entry) => entry.usesNetty && isRelease(entry) && entry.version >= exports.MIN_SUPPORTED_PROTOCOL_VERSION)
|
|
13
|
+
.sort((a, b) => {
|
|
14
|
+
if (a.version !== b.version)
|
|
15
|
+
return b.version - a.version;
|
|
16
|
+
return b.dataVersion - a.dataVersion;
|
|
17
|
+
})[0];
|
|
18
|
+
exports.MAX_SUPPORTED_PROTOCOL_VERSION = latestReleaseEntry?.version ?? 769;
|
|
19
|
+
exports.DEFAULT_PROTOCOL_VERSION = exports.MAX_SUPPORTED_PROTOCOL_VERSION;
|
|
20
|
+
function isRelease(entry) {
|
|
21
|
+
return entry.releaseType !== 'snapshot' && entry.releaseType !== 'old_snapshot';
|
|
22
|
+
}
|
|
23
|
+
function isPatchVersion(version) {
|
|
24
|
+
return /^1\.\d+\.\d+$/.test(version);
|
|
25
|
+
}
|
|
26
|
+
function parseMaybeProtocolNumber(input) {
|
|
27
|
+
if (!/^\d+$/.test(input))
|
|
28
|
+
return null;
|
|
29
|
+
const parsed = Number.parseInt(input, 10);
|
|
30
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
31
|
+
}
|
|
32
|
+
function findPreferredEntryForProtocol(protocol) {
|
|
33
|
+
const byProtocol = minecraft_data_1.default.postNettyVersionsByProtocolVersion.pc[String(protocol)] ?? [];
|
|
34
|
+
const filtered = byProtocol.filter((entry) => entry.usesNetty && isRelease(entry));
|
|
35
|
+
if (filtered.length === 0)
|
|
36
|
+
return null;
|
|
37
|
+
const stablePatch = filtered.find((entry) => isPatchVersion(entry.minecraftVersion));
|
|
38
|
+
return stablePatch ?? filtered[0] ?? null;
|
|
39
|
+
}
|
|
40
|
+
function resolveVersionInput(input) {
|
|
41
|
+
if (input === undefined) {
|
|
42
|
+
const latest = findPreferredEntryForProtocol(exports.DEFAULT_PROTOCOL_VERSION);
|
|
43
|
+
if (!latest)
|
|
44
|
+
throw new Error(`Default protocol ${exports.DEFAULT_PROTOCOL_VERSION} could not be resolved`);
|
|
45
|
+
return latest;
|
|
46
|
+
}
|
|
47
|
+
if (typeof input === 'number') {
|
|
48
|
+
const resolved = findPreferredEntryForProtocol(input);
|
|
49
|
+
if (!resolved)
|
|
50
|
+
throw new Error(`Unsupported protocol version: ${input}`);
|
|
51
|
+
return resolved;
|
|
52
|
+
}
|
|
53
|
+
const normalized = input.trim();
|
|
54
|
+
const maybeProtocol = parseMaybeProtocolNumber(normalized);
|
|
55
|
+
if (maybeProtocol !== null) {
|
|
56
|
+
const resolved = findPreferredEntryForProtocol(maybeProtocol);
|
|
57
|
+
if (!resolved)
|
|
58
|
+
throw new Error(`Unsupported protocol version: ${normalized}`);
|
|
59
|
+
return resolved;
|
|
60
|
+
}
|
|
61
|
+
const exact = minecraft_data_1.default.versionsByMinecraftVersion.pc[normalized];
|
|
62
|
+
if (exact && exact.usesNetty && isRelease(exact)) {
|
|
63
|
+
return exact;
|
|
64
|
+
}
|
|
65
|
+
const prefix = normalized.endsWith('.x') ? normalized.slice(0, -2) : normalized;
|
|
66
|
+
const releases = minecraft_data_1.default.versions.pc.filter((entry) => entry.usesNetty &&
|
|
67
|
+
isRelease(entry) &&
|
|
68
|
+
entry.version >= exports.MIN_SUPPORTED_PROTOCOL_VERSION &&
|
|
69
|
+
entry.version <= exports.MAX_SUPPORTED_PROTOCOL_VERSION);
|
|
70
|
+
const candidates = releases.filter((entry) => entry.minecraftVersion === prefix ||
|
|
71
|
+
entry.minecraftVersion.startsWith(`${prefix}.`) ||
|
|
72
|
+
entry.majorVersion === prefix);
|
|
73
|
+
if (candidates.length === 0) {
|
|
74
|
+
throw new Error(`Unsupported Minecraft version: ${input}`);
|
|
75
|
+
}
|
|
76
|
+
candidates.sort((a, b) => {
|
|
77
|
+
if (a.version !== b.version)
|
|
78
|
+
return b.version - a.version;
|
|
79
|
+
return b.dataVersion - a.dataVersion;
|
|
80
|
+
});
|
|
81
|
+
const stablePatch = candidates.find((entry) => isPatchVersion(entry.minecraftVersion));
|
|
82
|
+
return stablePatch ?? candidates[0];
|
|
83
|
+
}
|
|
84
|
+
function extractStateMappings(stateDef) {
|
|
85
|
+
const empty = { toClient: {}, toServer: {} };
|
|
86
|
+
if (!stateDef)
|
|
87
|
+
return empty;
|
|
88
|
+
const extract = (packetDef) => {
|
|
89
|
+
const mapperNode = packetDef?.[1]?.[0];
|
|
90
|
+
const mappings = mapperNode?.type?.[1]?.mappings;
|
|
91
|
+
if (!mappings)
|
|
92
|
+
return {};
|
|
93
|
+
const out = {};
|
|
94
|
+
for (const [hex, name] of Object.entries(mappings)) {
|
|
95
|
+
if (typeof name !== 'string')
|
|
96
|
+
continue;
|
|
97
|
+
const parsed = Number.parseInt(hex, 16);
|
|
98
|
+
if (!Number.isNaN(parsed))
|
|
99
|
+
out[name] = parsed;
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
};
|
|
103
|
+
return {
|
|
104
|
+
toClient: extract(stateDef?.toClient?.types?.packet),
|
|
105
|
+
toServer: extract(stateDef?.toServer?.types?.packet),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function resolvePacketId(packetMap, candidates) {
|
|
109
|
+
for (const name of candidates) {
|
|
110
|
+
const found = packetMap[name];
|
|
111
|
+
if (found !== undefined)
|
|
112
|
+
return found;
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
function resolveProtocolInfo(input) {
|
|
117
|
+
const entry = resolveVersionInput(input);
|
|
118
|
+
if (entry.version < exports.MIN_SUPPORTED_PROTOCOL_VERSION ||
|
|
119
|
+
entry.version > exports.MAX_SUPPORTED_PROTOCOL_VERSION) {
|
|
120
|
+
throw new Error(`Protocol ${entry.version} (${entry.minecraftVersion}) is out of supported range ` +
|
|
121
|
+
`${exports.MIN_SUPPORTED_PROTOCOL_VERSION}-${exports.MAX_SUPPORTED_PROTOCOL_VERSION}`);
|
|
122
|
+
}
|
|
123
|
+
const data = (0, minecraft_data_1.default)(entry.version);
|
|
124
|
+
const login = extractStateMappings(data.protocol?.login);
|
|
125
|
+
const play = extractStateMappings(data.protocol?.play);
|
|
126
|
+
const configuration = data.protocol?.configuration
|
|
127
|
+
? extractStateMappings(data.protocol.configuration)
|
|
128
|
+
: undefined;
|
|
129
|
+
return {
|
|
130
|
+
protocolVersion: entry.version,
|
|
131
|
+
minecraftVersion: entry.minecraftVersion,
|
|
132
|
+
majorVersion: entry.majorVersion,
|
|
133
|
+
packetMappings: { login, play, configuration },
|
|
134
|
+
supportsConfigurationState: configuration !== undefined,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/protocol/version.ts"],"names":[],"mappings":"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"}
|
package/docs/README.md
CHANGED
package/docs/api/protocol.md
CHANGED
package/docs/getting-started.md
CHANGED
|
@@ -101,7 +101,7 @@ src/
|
|
|
101
101
|
│ └── states/
|
|
102
102
|
│ ├── handshake.ts # Handshake paketi
|
|
103
103
|
│ ├── login.ts # Login state paketleri
|
|
104
|
-
│ └── play.ts # Play state paketleri (
|
|
104
|
+
│ └── play.ts # Play state paketleri (version-adaptive packet ID'leri)
|
|
105
105
|
│
|
|
106
106
|
├── auth/
|
|
107
107
|
│ ├── offline.ts # Offline UUID generation (MD5-based v3)
|
package/package.json
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specprotocol",
|
|
3
|
-
"version": "1.4.
|
|
4
|
-
"description": "A Minecraft bot framework built from scratch in TypeScript
|
|
3
|
+
"version": "1.4.5",
|
|
4
|
+
"description": "A Minecraft bot framework built from scratch in TypeScript with dynamic packet mapping for Java Edition 1.8-1.21.x",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"type": "commonjs",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "tsc",
|
|
10
10
|
"dev": "tsc --watch",
|
|
11
|
-
"test": "vitest run",
|
|
12
|
-
"test:watch": "vitest",
|
|
13
11
|
"lint": "tsc --noEmit",
|
|
14
12
|
"prepublishOnly": "npm run build",
|
|
15
13
|
"example:basic": "npx tsx examples/basic-bot.ts",
|
|
@@ -39,13 +37,15 @@
|
|
|
39
37
|
"@types/node": "^25.3.3",
|
|
40
38
|
"eslint": "^10.0.2",
|
|
41
39
|
"tsx": "^4.7.0",
|
|
42
|
-
"typescript": "^5.9.3"
|
|
43
|
-
"vitest": "^4.0.18"
|
|
40
|
+
"typescript": "^5.9.3"
|
|
44
41
|
},
|
|
45
42
|
"files": [
|
|
46
43
|
"dist/",
|
|
47
44
|
"docs/",
|
|
48
45
|
"README.md",
|
|
49
46
|
"LICENSE"
|
|
50
|
-
]
|
|
47
|
+
],
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"minecraft-data": "^3.105.0"
|
|
50
|
+
}
|
|
51
51
|
}
|