teeworlds 2.5.4 → 2.5.6

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.
Files changed (54) hide show
  1. package/README.md +4 -3
  2. package/{index.ts → index.d.ts} +6 -6
  3. package/index.js +25 -24
  4. package/index.js.map +1 -0
  5. package/lib/MsgPacker.d.ts +11 -0
  6. package/lib/MsgPacker.js +47 -55
  7. package/lib/MsgPacker.js.map +1 -0
  8. package/lib/MsgUnpacker.d.ts +16 -0
  9. package/lib/MsgUnpacker.js +53 -53
  10. package/lib/MsgUnpacker.js.map +1 -0
  11. package/lib/UUIDManager.d.ts +27 -0
  12. package/lib/UUIDManager.js +45 -50
  13. package/lib/UUIDManager.js.map +1 -0
  14. package/lib/client.d.ts +135 -0
  15. package/lib/client.js +762 -830
  16. package/lib/client.js.map +1 -0
  17. package/lib/components/game.d.ts +32 -0
  18. package/lib/components/game.js +104 -106
  19. package/lib/components/game.js.map +1 -0
  20. package/lib/components/movement.d.ts +34 -0
  21. package/lib/components/movement.js +75 -82
  22. package/lib/components/movement.js.map +1 -0
  23. package/lib/components/rcon.d.ts +33 -0
  24. package/lib/components/rcon.js +92 -122
  25. package/lib/components/rcon.js.map +1 -0
  26. package/lib/components/snapshot.d.ts +59 -0
  27. package/lib/components/snapshot.js +144 -234
  28. package/lib/components/snapshot.js.map +1 -0
  29. package/lib/enums_types/protocol.d.ts +120 -0
  30. package/lib/enums_types/protocol.js +14 -13
  31. package/lib/enums_types/protocol.js.map +1 -0
  32. package/lib/huffman.d.ts +24 -0
  33. package/lib/huffman.js +187 -192
  34. package/lib/huffman.js.map +1 -0
  35. package/lib/snapshot.d.ts +49 -0
  36. package/lib/snapshot.js +599 -610
  37. package/lib/snapshot.js.map +1 -0
  38. package/package.json +21 -24
  39. package/docs/documentation.md +0 -368
  40. package/docs/examples/chat_bot.js +0 -25
  41. package/docs/examples/kill_on_freeze.js +0 -20
  42. package/lib/MsgPacker.ts +0 -45
  43. package/lib/MsgUnpacker.ts +0 -58
  44. package/lib/UUIDManager.ts +0 -45
  45. package/lib/client.ts +0 -926
  46. package/lib/components/game.ts +0 -133
  47. package/lib/components/movement.ts +0 -88
  48. package/lib/components/rcon.ts +0 -114
  49. package/lib/components/snapshot.ts +0 -187
  50. package/lib/enums_types/protocol.ts +0 -137
  51. package/lib/enums_types/types.d.ts +0 -236
  52. package/lib/huffman.ts +0 -226
  53. package/lib/snapshot.ts +0 -632
  54. package/tsconfig.json +0 -69
package/README.md CHANGED
@@ -1,12 +1,13 @@
1
1
  # Teeworlds Client
2
2
  Library to connect a bot to a Teeworlds server.
3
3
 
4
- https://gitlab.com/swarfey/teeworlds-client/-/tree/main/
4
+ # Links
5
+ https://github.com/swarfeya/teeworlds-library-ts/tree/main
5
6
  https://www.npmjs.com/package/teeworlds
6
7
 
7
8
  # Documentation
8
- You can find an documentation to what most components do in the [docs/documentation.md](https://gitlab.com/swarfey/teeworlds-client/-/blob/main/docs/documentation.md).
9
- You can also find a few examples inside of the [docs/examples](https://gitlab.com/swarfey/teeworlds-client/-/tree/main/docs/examples) directory.
9
+ You can find an documentation to what most components do in the [docs/documentation.md](https://github.com/swarfeya/teeworlds-library-ts/blob/main/docs/documentation.md).
10
+ You can also find a few examples inside of the [docs/examples](https://github.com/swarfeya/teeworlds-library-ts/tree/main/docs/examples) directory.
10
11
 
11
12
  # Projects using this library
12
13
  Note: If you have or know any projects running using this library, please contact me so i can add them, or PR them yourself.
@@ -1,6 +1,6 @@
1
- export { Client } from "./lib/client";
2
- export * from "./lib/MsgPacker";
3
- export * from "./lib/MsgUnpacker";
4
- export * from "./lib/snapshot";
5
- export * from "./lib/huffman"
6
- export * from "./lib/UUIDManager"
1
+ export { Client } from "./lib/client";
2
+ export * from "./lib/MsgPacker";
3
+ export * from "./lib/MsgUnpacker";
4
+ export * from "./lib/snapshot";
5
+ export * from "./lib/huffman";
6
+ export * from "./lib/UUIDManager";
package/index.js CHANGED
@@ -1,24 +1,25 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.Client = void 0;
18
- var client_1 = require("./lib/client");
19
- Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return client_1.Client; } });
20
- __exportStar(require("./lib/MsgPacker"), exports);
21
- __exportStar(require("./lib/MsgUnpacker"), exports);
22
- __exportStar(require("./lib/snapshot"), exports);
23
- __exportStar(require("./lib/huffman"), exports);
24
- __exportStar(require("./lib/UUIDManager"), exports);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Client = void 0;
18
+ var client_1 = require("./lib/client");
19
+ Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return client_1.Client; } });
20
+ __exportStar(require("./lib/MsgPacker"), exports);
21
+ __exportStar(require("./lib/MsgUnpacker"), exports);
22
+ __exportStar(require("./lib/snapshot"), exports);
23
+ __exportStar(require("./lib/huffman"), exports);
24
+ __exportStar(require("./lib/UUIDManager"), exports);
25
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAsC;AAA7B,gGAAA,MAAM,OAAA;AACf,kDAAgC;AAChC,oDAAkC;AAClC,iDAA+B;AAC/B,gDAA6B;AAC7B,oDAAiC"}
@@ -0,0 +1,11 @@
1
+ export declare class MsgPacker {
2
+ result: Buffer;
3
+ sys: boolean;
4
+ flag: number;
5
+ constructor(msg: number, sys: boolean, flag: number);
6
+ AddString(str: string): void;
7
+ AddBuffer(buffer: Buffer): void;
8
+ AddInt(i: number): void;
9
+ get size(): number;
10
+ get buffer(): Buffer<ArrayBufferLike>;
11
+ }
package/lib/MsgPacker.js CHANGED
@@ -1,55 +1,47 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MsgPacker = void 0;
4
- var MsgPacker = /** @class */ (function () {
5
- function MsgPacker(msg, sys, flag) {
6
- this.result = Buffer.from([2 * msg + (sys ? 1 : 0)]);
7
- this.sys = sys;
8
- this.flag = flag;
9
- }
10
- MsgPacker.prototype.AddString = function (str) {
11
- this.result = Buffer.concat([this.result, Buffer.from(str), Buffer.from([0x00])]);
12
- };
13
- MsgPacker.prototype.AddBuffer = function (buffer) {
14
- this.result = Buffer.concat([this.result, buffer]);
15
- };
16
- MsgPacker.prototype.AddInt = function (i) {
17
- var result = [];
18
- var pDst = (i >> 25) & 0x40;
19
- var i = i ^ (i >> 31);
20
- pDst |= i & 0x3f;
21
- i >>= 6;
22
- if (i) {
23
- pDst |= 0x80;
24
- result.push(pDst);
25
- while (true) {
26
- pDst++;
27
- pDst = i & (0x7f);
28
- i >>= 7;
29
- pDst |= (Number(i != 0)) << 7;
30
- result.push(pDst);
31
- if (!i)
32
- break;
33
- }
34
- }
35
- else
36
- result.push(pDst);
37
- this.result = Buffer.concat([this.result, Buffer.from(result)]);
38
- };
39
- Object.defineProperty(MsgPacker.prototype, "size", {
40
- get: function () {
41
- return this.result.byteLength;
42
- },
43
- enumerable: false,
44
- configurable: true
45
- });
46
- Object.defineProperty(MsgPacker.prototype, "buffer", {
47
- get: function () {
48
- return this.result;
49
- },
50
- enumerable: false,
51
- configurable: true
52
- });
53
- return MsgPacker;
54
- }());
55
- exports.MsgPacker = MsgPacker;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MsgPacker = void 0;
4
+ class MsgPacker {
5
+ constructor(msg, sys, flag) {
6
+ this.result = Buffer.from([2 * msg + (sys ? 1 : 0)]);
7
+ this.sys = sys;
8
+ this.flag = flag;
9
+ }
10
+ AddString(str) {
11
+ this.result = Buffer.concat([this.result, Buffer.from(str), Buffer.from([0x00])]);
12
+ }
13
+ AddBuffer(buffer) {
14
+ this.result = Buffer.concat([this.result, buffer]);
15
+ }
16
+ AddInt(i) {
17
+ var result = [];
18
+ var pDst = (i >> 25) & 0x40;
19
+ var i = i ^ (i >> 31);
20
+ pDst |= i & 0x3f;
21
+ i >>= 6;
22
+ if (i) {
23
+ pDst |= 0x80;
24
+ result.push(pDst);
25
+ while (true) {
26
+ pDst++;
27
+ pDst = i & (0x7f);
28
+ i >>= 7;
29
+ pDst |= (Number(i != 0)) << 7;
30
+ result.push(pDst);
31
+ if (!i)
32
+ break;
33
+ }
34
+ }
35
+ else
36
+ result.push(pDst);
37
+ this.result = Buffer.concat([this.result, Buffer.from(result)]);
38
+ }
39
+ get size() {
40
+ return this.result.byteLength;
41
+ }
42
+ get buffer() {
43
+ return this.result;
44
+ }
45
+ }
46
+ exports.MsgPacker = MsgPacker;
47
+ //# sourceMappingURL=MsgPacker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MsgPacker.js","sourceRoot":"","sources":["../../lib/MsgPacker.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAIrB,YAAY,GAAW,EAAE,GAAY,EAAE,IAAY;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,SAAS,CAAC,GAAW;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAClF,CAAC;IACD,SAAS,CAAC,MAAc;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,CAAC,CAAS;QACf,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,IAAE,EAAE,CAAC,CAAA;QAClB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAA;QAChB,CAAC,KAAK,CAAC,CAAA;QACP,IAAI,CAAC,EAAE,CAAC;YACP,IAAI,IAAI,IAAI,CAAA;YACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjB,OAAO,IAAI,EAAE,CAAC;gBACb,IAAI,EAAE,CAAC;gBACP,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACjB,CAAC,KAAI,CAAC,CAAC;gBACP,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACjB,IAAI,CAAC,CAAC;oBACL,MAAM;YACR,CAAC;QACF,CAAC;;YACA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAElB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC;IACD,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;CACD;AA5CD,8BA4CC"}
@@ -0,0 +1,16 @@
1
+ export declare function unpackInt(pSrc: Buffer): {
2
+ result: number;
3
+ remaining: Buffer;
4
+ };
5
+ export declare function unpackString(pSrc: Buffer): {
6
+ result: string;
7
+ remaining: Buffer;
8
+ };
9
+ export declare class MsgUnpacker {
10
+ remaining: Buffer;
11
+ constructor(pSrc: Buffer);
12
+ unpackInt(): number;
13
+ unpackString(): string;
14
+ /** @param size - size in bytes */
15
+ unpackRaw(size: number): Buffer;
16
+ }
@@ -1,53 +1,53 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MsgUnpacker = exports.unpackString = exports.unpackInt = void 0;
4
- var decoder = new TextDecoder('utf-8');
5
- function unpackInt(pSrc) {
6
- var srcIndex = 0;
7
- var sign = ((pSrc[srcIndex] >> 6) & 1);
8
- var result = (pSrc[srcIndex] & 63);
9
- while (srcIndex <= 4) {
10
- if ((pSrc[srcIndex] & 128) === 0)
11
- break;
12
- srcIndex++;
13
- result |= ((pSrc[srcIndex] & 127)) << (6 + 7 * (srcIndex - 1));
14
- }
15
- result ^= -sign;
16
- return { result: result, remaining: pSrc.slice(srcIndex + 1) };
17
- }
18
- exports.unpackInt = unpackInt;
19
- function unpackString(pSrc) {
20
- var result = pSrc.slice(0, pSrc.indexOf(0));
21
- pSrc = pSrc.slice(pSrc.indexOf(0) + 1, pSrc.length);
22
- return { result: decoder.decode(new Uint8Array(result)), remaining: pSrc };
23
- }
24
- exports.unpackString = unpackString;
25
- var MsgUnpacker = /** @class */ (function () {
26
- function MsgUnpacker(pSrc) {
27
- this.remaining = pSrc;
28
- }
29
- MsgUnpacker.prototype.unpackInt = function () {
30
- // let unpacked;
31
- // if (!_unpacked) {
32
- var unpacked = unpackInt(this.remaining);
33
- this.remaining = unpacked.remaining;
34
- // } else {
35
- // unpacked = {result: this.remaining[0]};
36
- // this.remaining = this.remaining.slice(1);
37
- // }
38
- return unpacked.result;
39
- };
40
- MsgUnpacker.prototype.unpackString = function () {
41
- var unpacked = unpackString(this.remaining);
42
- this.remaining = unpacked.remaining;
43
- return unpacked.result;
44
- };
45
- /** @param size - size in bytes */
46
- MsgUnpacker.prototype.unpackRaw = function (size) {
47
- var unpacked = this.remaining.slice(0, size);
48
- this.remaining = this.remaining.slice(size);
49
- return unpacked;
50
- };
51
- return MsgUnpacker;
52
- }());
53
- exports.MsgUnpacker = MsgUnpacker;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MsgUnpacker = void 0;
4
+ exports.unpackInt = unpackInt;
5
+ exports.unpackString = unpackString;
6
+ const decoder = new TextDecoder('utf-8');
7
+ function unpackInt(pSrc) {
8
+ var srcIndex = 0;
9
+ const sign = ((pSrc[srcIndex] >> 6) & 1);
10
+ var result = (pSrc[srcIndex] & 63);
11
+ while (srcIndex <= 4) {
12
+ if ((pSrc[srcIndex] & 128) === 0)
13
+ break;
14
+ srcIndex++;
15
+ result |= ((pSrc[srcIndex] & 127)) << (6 + 7 * (srcIndex - 1));
16
+ }
17
+ result ^= -sign;
18
+ return { result, remaining: pSrc.slice(srcIndex + 1) };
19
+ }
20
+ function unpackString(pSrc) {
21
+ var result = pSrc.slice(0, pSrc.indexOf(0));
22
+ pSrc = pSrc.slice(pSrc.indexOf(0) + 1, pSrc.length);
23
+ return { result: decoder.decode(new Uint8Array(result)), remaining: pSrc };
24
+ }
25
+ class MsgUnpacker {
26
+ constructor(pSrc) {
27
+ this.remaining = pSrc;
28
+ }
29
+ unpackInt() {
30
+ // let unpacked;
31
+ // if (!_unpacked) {
32
+ let unpacked = unpackInt(this.remaining);
33
+ this.remaining = unpacked.remaining;
34
+ // } else {
35
+ // unpacked = {result: this.remaining[0]};
36
+ // this.remaining = this.remaining.slice(1);
37
+ // }
38
+ return unpacked.result;
39
+ }
40
+ unpackString() {
41
+ let unpacked = unpackString(this.remaining);
42
+ this.remaining = unpacked.remaining;
43
+ return unpacked.result;
44
+ }
45
+ /** @param size - size in bytes */
46
+ unpackRaw(size) {
47
+ let unpacked = this.remaining.slice(0, size);
48
+ this.remaining = this.remaining.slice(size);
49
+ return unpacked;
50
+ }
51
+ }
52
+ exports.MsgUnpacker = MsgUnpacker;
53
+ //# sourceMappingURL=MsgUnpacker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MsgUnpacker.js","sourceRoot":"","sources":["../../lib/MsgUnpacker.ts"],"names":[],"mappings":";;;AACA,8BAkBC;AACD,oCAIC;AAxBD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AACzC,SAAgB,SAAS,CAAC,IAAY;IAErC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAExC,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAW,CAAC,CAAA;IAC3C,OAAO,QAAQ,IAAI,CAAC,EAAE,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAW,CAAC,KAAK,CAAC;YACvC,MAAM;QAEP,QAAQ,EAAE,CAAC;QACX,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,CAAC,CAAA;IAEjE,CAAC;IACD,MAAM,IAAI,CAAC,IAAI,CAAC;IAEhB,OAAO,EAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAC,CAAC,CAAC,EAAC,CAAC;AACpD,CAAC;AACD,SAAgB,YAAY,CAAC,IAAY;IACxC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACnD,OAAO,EAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAC,CAAA;AACzE,CAAC;AAED,MAAa,WAAW;IAEvB,YAAY,IAAY;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,SAAS;QACR,gBAAgB;QAChB,qBAAqB;QACrB,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACpC,WAAW;QACV,0CAA0C;QAC1C,4CAA4C;QAE7C,IAAI;QACJ,OAAO,QAAQ,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,YAAY;QACX,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACpC,OAAO,QAAQ,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,kCAAkC;IAClC,SAAS,CAAC,IAAY;QACrB,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD;AA/BD,kCA+BC"}
@@ -0,0 +1,27 @@
1
+ export declare const createTwMD5Hash: (name: string) => Buffer<ArrayBufferLike>;
2
+ export declare class UUIDManager {
3
+ uuids: {
4
+ name: string;
5
+ hash: Buffer;
6
+ type_id: number;
7
+ }[];
8
+ offset: number;
9
+ snapshot: boolean;
10
+ constructor(pOffset?: number, pSnapshot?: boolean);
11
+ LookupUUID(hash: Buffer): {
12
+ name: string;
13
+ hash: Buffer;
14
+ type_id: number;
15
+ } | undefined;
16
+ LookupName(name: string): {
17
+ name: string;
18
+ hash: Buffer;
19
+ type_id: number;
20
+ } | undefined;
21
+ LookupType(ID: number): {
22
+ name: string;
23
+ hash: Buffer;
24
+ type_id: number;
25
+ } | undefined;
26
+ RegisterName(name: string, type_id?: number): void;
27
+ }
@@ -1,50 +1,45 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UUIDManager = exports.createTwMD5Hash = void 0;
4
- var crypto_1 = require("crypto");
5
- var createTwMD5Hash = function (name) {
6
- var hash = (0, crypto_1.createHash)("md5")
7
- .update(Buffer.from([0xe0, 0x5d, 0xda, 0xaa, 0xc4, 0xe6, 0x4c, 0xfb, 0xb6, 0x42, 0x5d, 0x48, 0xe8, 0x0c, 0x00, 0x29]))
8
- .update(name)
9
- .digest();
10
- hash[6] &= 0x0f;
11
- hash[6] |= 0x30;
12
- hash[8] &= 0x3f;
13
- hash[8] |= 0x80;
14
- return hash;
15
- };
16
- exports.createTwMD5Hash = createTwMD5Hash;
17
- // [{name: string, hash: Buffer}, ..]
18
- var UUIDManager = /** @class */ (function () {
19
- function UUIDManager(pOffset, pSnapshot) {
20
- if (pOffset === void 0) { pOffset = 65536; }
21
- if (pSnapshot === void 0) { pSnapshot = false; }
22
- this.uuids = [];
23
- this.offset = pOffset;
24
- this.snapshot = pSnapshot;
25
- }
26
- UUIDManager.prototype.LookupUUID = function (hash) {
27
- return this.uuids.find(function (a) { return a.hash.compare(hash) == 0; });
28
- };
29
- UUIDManager.prototype.LookupName = function (name) {
30
- return this.uuids.find(function (a) { return a.name === name; });
31
- };
32
- UUIDManager.prototype.LookupType = function (ID) {
33
- if (!this.snapshot) {
34
- return this.uuids[ID - this.offset];
35
- }
36
- else {
37
- return this.uuids.find(function (a) { return a.type_id == ID; });
38
- }
39
- };
40
- UUIDManager.prototype.RegisterName = function (name, type_id) {
41
- if (type_id === void 0) { type_id = this.offset - this.uuids.length; }
42
- this.uuids.push({
43
- name: name,
44
- hash: (0, exports.createTwMD5Hash)(name),
45
- type_id: type_id
46
- });
47
- };
48
- return UUIDManager;
49
- }());
50
- exports.UUIDManager = UUIDManager;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UUIDManager = exports.createTwMD5Hash = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const createTwMD5Hash = (name) => {
6
+ let hash = (0, crypto_1.createHash)("md5")
7
+ .update(Buffer.from([0xe0, 0x5d, 0xda, 0xaa, 0xc4, 0xe6, 0x4c, 0xfb, 0xb6, 0x42, 0x5d, 0x48, 0xe8, 0x0c, 0x00, 0x29]))
8
+ .update(name)
9
+ .digest();
10
+ hash[6] &= 0x0f;
11
+ hash[6] |= 0x30;
12
+ hash[8] &= 0x3f;
13
+ hash[8] |= 0x80;
14
+ return hash;
15
+ };
16
+ exports.createTwMD5Hash = createTwMD5Hash;
17
+ // [{name: string, hash: Buffer}, ..]
18
+ class UUIDManager {
19
+ constructor(pOffset = 65536, pSnapshot = false) {
20
+ this.uuids = [];
21
+ this.offset = pOffset;
22
+ this.snapshot = pSnapshot;
23
+ }
24
+ LookupUUID(hash) {
25
+ return this.uuids.find(a => a.hash.compare(hash) == 0);
26
+ }
27
+ LookupName(name) {
28
+ return this.uuids.find(a => a.name === name);
29
+ }
30
+ LookupType(ID) {
31
+ if (!this.snapshot) {
32
+ return this.uuids[ID - this.offset];
33
+ }
34
+ else {
35
+ return this.uuids.find(a => a.type_id == ID);
36
+ }
37
+ }
38
+ RegisterName(name, type_id = this.offset - this.uuids.length) {
39
+ this.uuids.push({
40
+ name, hash: (0, exports.createTwMD5Hash)(name), type_id
41
+ });
42
+ }
43
+ }
44
+ exports.UUIDManager = UUIDManager;
45
+ //# sourceMappingURL=UUIDManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UUIDManager.js","sourceRoot":"","sources":["../../lib/UUIDManager.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAC7B,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE;IAC/C,IAAI,IAAI,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC;SAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;SACrH,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,EAAE,CAAA;IACV,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAChB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAChB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAChB,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,CAAC;AACb,CAAC,CAAA;AAVY,QAAA,eAAe,mBAU3B;AAED,qCAAqC;AACrC,MAAa,WAAW;IAIvB,YAAY,OAAO,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK;QAH9C,UAAK,GAAoD,EAAE,CAAC;QAI3D,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IAC1D,CAAC;IACD,UAAU,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAE,CAAC;IAChD,CAAC;IAED,UAAU,CAAC,EAAU;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACP,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;IACD,YAAY,CAAC,IAAY,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;QACnE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,IAAI,EAAE,IAAA,uBAAe,EAAC,IAAI,CAAC,EAAE,OAAO;SAC1C,CAAC,CAAC;IAEJ,CAAC;CAED;AA9BD,kCA8BC"}
@@ -0,0 +1,135 @@
1
+ import { EventEmitter } from 'stream';
2
+ import Movement from './components/movement';
3
+ import { DeltaItem, SnapshotItemTypes } from './enums_types/types';
4
+ import { MsgPacker } from './MsgPacker';
5
+ import { Snapshot } from './snapshot';
6
+ import { Game } from "./components/game";
7
+ import { SnapshotWrapper } from "./components/snapshot";
8
+ import { Rcon } from "./components/rcon";
9
+ declare interface iMessage {
10
+ team: number;
11
+ client_id: number;
12
+ author?: {
13
+ ClientInfo?: SnapshotItemTypes.ClientInfo;
14
+ PlayerInfo?: SnapshotItemTypes.PlayerInfo;
15
+ };
16
+ message: string;
17
+ }
18
+ declare interface iEmoticon {
19
+ client_id: number;
20
+ emoticon: number;
21
+ author?: {
22
+ ClientInfo?: SnapshotItemTypes.ClientInfo;
23
+ PlayerInfo?: SnapshotItemTypes.PlayerInfo;
24
+ };
25
+ }
26
+ declare interface iKillMsg {
27
+ killer_id: number;
28
+ killer?: {
29
+ ClientInfo?: SnapshotItemTypes.ClientInfo;
30
+ PlayerInfo?: SnapshotItemTypes.PlayerInfo;
31
+ };
32
+ victim_id: number;
33
+ victim?: {
34
+ ClientInfo?: SnapshotItemTypes.ClientInfo;
35
+ PlayerInfo?: SnapshotItemTypes.PlayerInfo;
36
+ };
37
+ weapon: number;
38
+ special_mode: number;
39
+ }
40
+ declare interface iOptions {
41
+ identity?: SnapshotItemTypes.ClientInfo;
42
+ password?: string;
43
+ ddnet_version?: {
44
+ version: number;
45
+ release_version: string;
46
+ };
47
+ timeout?: number;
48
+ NET_VERSION?: string;
49
+ lightweight?: boolean;
50
+ }
51
+ interface ClientEvents {
52
+ connected: () => void;
53
+ disconnect: (reason: string) => void;
54
+ emote: (message: iEmoticon) => void;
55
+ message: (message: iMessage) => void;
56
+ broadcast: (message: string) => void;
57
+ kill: (kill: iKillMsg) => void;
58
+ motd: (message: string) => void;
59
+ map_details: (message: {
60
+ map_name: string;
61
+ map_sha256: Buffer;
62
+ map_crc: number;
63
+ map_size: number;
64
+ map_url: string;
65
+ }) => void;
66
+ capabilities: (message: {
67
+ ChatTimeoutCode: boolean;
68
+ AnyPlayerFlag: boolean;
69
+ PingEx: boolean;
70
+ AllowDummy: boolean;
71
+ SyncWeaponInput: boolean;
72
+ }) => void;
73
+ snapshot: (items: DeltaItem[]) => void;
74
+ rcon_line: (line: string) => void;
75
+ }
76
+ export declare class Client extends EventEmitter {
77
+ on<K extends keyof ClientEvents>(event: K, listener: ClientEvents[K]): this;
78
+ emit<K extends keyof ClientEvents>(event: K, ...args: Parameters<ClientEvents[K]>): boolean;
79
+ rcon: Rcon;
80
+ private host;
81
+ private port;
82
+ private name;
83
+ private State;
84
+ private ack;
85
+ private clientAck;
86
+ private lastCheckedChunkAck;
87
+ private receivedSnaps;
88
+ private socket;
89
+ private TKEN;
90
+ private time;
91
+ private SnapUnpacker;
92
+ SnapshotUnpacker: SnapshotWrapper;
93
+ private PredGameTick;
94
+ private AckGameTick;
95
+ private SnapshotParts;
96
+ private currentSnapshotGameTick;
97
+ private snaps;
98
+ private sentChunkQueue;
99
+ private queueChunkEx;
100
+ private lastSendTime;
101
+ private lastRecvTime;
102
+ private lastSentMessages;
103
+ movement: Movement;
104
+ game: Game;
105
+ private VoteList;
106
+ readonly options?: iOptions;
107
+ private requestResend;
108
+ private UUIDManager;
109
+ constructor(ip: string, port: number, nickname: string, options?: iOptions);
110
+ private OnEnterGame;
111
+ private ResendAfter;
112
+ private Unpack;
113
+ /** Send a Control Msg to the server. (used for disconnect)*/
114
+ SendControlMsg(msg: number, ExtraMsg?: string): Promise<unknown>;
115
+ /** Send a Msg (or Msg[]) to the server.*/
116
+ SendMsgEx(Msgs: MsgPacker[] | MsgPacker, flags?: number): void;
117
+ /** Queue a chunk (instantly sent if flush flag is set - otherwise it will be sent in the next packet). */
118
+ QueueChunkEx(Msg: MsgPacker | MsgPacker[]): void;
119
+ /** Send a Raw Buffer (as chunk) to the server. */
120
+ SendMsgRaw(chunks: Buffer[]): void;
121
+ private MsgToChunk;
122
+ Flush(): void;
123
+ /** Connect the client to the server. */
124
+ connect(): Promise<void>;
125
+ /** Sending the input. (automatically done unless options.lightweight is on) */
126
+ sendInput(input?: import("./components/movement").NetObj_PlayerInput): void;
127
+ /** returns the movement object of the client */
128
+ get input(): import("./components/movement").NetObj_PlayerInput;
129
+ /** Disconnect the client. */
130
+ Disconnect(): Promise<unknown>;
131
+ /** Get all available vote options (for example for map voting) */
132
+ get VoteOptionList(): string[];
133
+ get rawSnapUnpacker(): Snapshot;
134
+ }
135
+ export {};