@jsprismarine/raknet 0.1.0-rc.53 → 0.1.0
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/LICENSE +373 -0
- package/dist/ClientSocket.cjs.js +3 -0
- package/dist/ClientSocket.es.js +2 -0
- package/dist/Constants.cjs.js +23 -0
- package/dist/Constants.d.ts +9 -0
- package/dist/Constants.d.ts.map +1 -0
- package/dist/Constants.es.js +13 -0
- package/dist/Protocol-B7Z_wJaK.js +51 -0
- package/dist/Protocol-Bik5hgGW.cjs +53 -0
- package/dist/RakNet.cjs.js +83 -0
- package/dist/RakNet.d.ts +12 -14
- package/dist/RakNet.d.ts.map +1 -1
- package/dist/RakNet.es.js +38 -0
- package/dist/ServerSocket.cjs.js +160 -0
- package/dist/ServerSocket.d.ts +5 -5
- package/dist/ServerSocket.d.ts.map +1 -1
- package/dist/ServerSocket.es.js +152 -0
- package/dist/Session.cjs.js +386 -0
- package/dist/Session.d.ts +5 -5
- package/dist/Session.d.ts.map +1 -1
- package/dist/Session.es.js +375 -0
- package/dist/protocol/ACK.cjs.js +18 -0
- package/dist/protocol/ACK.d.ts +2 -2
- package/dist/protocol/ACK.d.ts.map +1 -1
- package/dist/protocol/ACK.es.js +14 -0
- package/dist/protocol/AcknowledgePacket.cjs.js +75 -0
- package/dist/protocol/AcknowledgePacket.d.ts +1 -1
- package/dist/protocol/AcknowledgePacket.d.ts.map +1 -1
- package/dist/protocol/AcknowledgePacket.es.js +67 -0
- package/dist/protocol/BitFlags.cjs.js +15 -0
- package/dist/protocol/BitFlags.es.js +10 -0
- package/dist/protocol/DisconnectNotification.cjs.js +19 -0
- package/dist/protocol/DisconnectNotification.d.ts +1 -1
- package/dist/protocol/DisconnectNotification.d.ts.map +1 -1
- package/dist/protocol/DisconnectNotification.es.js +15 -0
- package/dist/protocol/Frame.cjs.js +110 -0
- package/dist/protocol/Frame.d.ts +2 -2
- package/dist/protocol/Frame.d.ts.map +1 -1
- package/dist/protocol/Frame.es.js +100 -0
- package/dist/protocol/FrameReliability.cjs.js +19 -0
- package/dist/protocol/FrameReliability.es.js +14 -0
- package/dist/protocol/FrameSet.cjs.js +45 -0
- package/dist/protocol/FrameSet.d.ts +3 -3
- package/dist/protocol/FrameSet.d.ts.map +1 -1
- package/dist/protocol/FrameSet.es.js +40 -0
- package/dist/protocol/MessageIdentifiers.cjs.js +47 -0
- package/dist/protocol/MessageIdentifiers.es.js +43 -0
- package/dist/protocol/NACK.cjs.js +18 -0
- package/dist/protocol/NACK.d.ts +2 -2
- package/dist/protocol/NACK.d.ts.map +1 -1
- package/dist/protocol/NACK.es.js +14 -0
- package/dist/protocol/OfflineHandler.cjs.js +110 -0
- package/dist/protocol/OfflineHandler.d.ts +4 -4
- package/dist/protocol/OfflineHandler.d.ts.map +1 -1
- package/dist/protocol/OfflineHandler.es.js +102 -0
- package/dist/protocol/OfflinePacket.cjs.js +25 -0
- package/dist/protocol/OfflinePacket.d.ts +1 -1
- package/dist/protocol/OfflinePacket.d.ts.map +1 -1
- package/dist/protocol/OfflinePacket.es.js +21 -0
- package/dist/protocol/Packet.cjs.js +67 -0
- package/dist/protocol/Packet.d.ts +2 -2
- package/dist/protocol/Packet.d.ts.map +1 -1
- package/dist/protocol/Packet.es.js +59 -0
- package/dist/protocol/PacketPool.cjs.js +45 -0
- package/dist/protocol/PacketPool.d.ts +3 -3
- package/dist/protocol/PacketPool.d.ts.map +1 -1
- package/dist/protocol/PacketPool.es.js +41 -0
- package/dist/protocol/Protocol.cjs.js +57 -0
- package/dist/protocol/Protocol.d.ts +23 -25
- package/dist/protocol/Protocol.d.ts.map +1 -1
- package/dist/protocol/Protocol.es.js +28 -0
- package/dist/protocol/connection/ConnectedPing.cjs.js +24 -0
- package/dist/protocol/connection/ConnectedPing.d.ts +2 -2
- package/dist/protocol/connection/ConnectedPing.d.ts.map +1 -1
- package/dist/protocol/connection/ConnectedPing.es.js +20 -0
- package/dist/protocol/connection/ConnectedPong.cjs.js +23 -0
- package/dist/protocol/connection/ConnectedPong.d.ts +1 -1
- package/dist/protocol/connection/ConnectedPong.d.ts.map +1 -1
- package/dist/protocol/connection/ConnectedPong.es.js +19 -0
- package/dist/protocol/connection/IncompatibleProtocolVersion.cjs.js +26 -0
- package/dist/protocol/connection/IncompatibleProtocolVersion.d.ts +1 -1
- package/dist/protocol/connection/IncompatibleProtocolVersion.d.ts.map +1 -1
- package/dist/protocol/connection/IncompatibleProtocolVersion.es.js +22 -0
- package/dist/protocol/connection/NewIncomingConnection.cjs.js +37 -0
- package/dist/protocol/connection/NewIncomingConnection.d.ts +3 -3
- package/dist/protocol/connection/NewIncomingConnection.d.ts.map +1 -1
- package/dist/protocol/connection/NewIncomingConnection.es.js +33 -0
- package/dist/protocol/connection/OpenConnectionReply1.cjs.js +33 -0
- package/dist/protocol/connection/OpenConnectionReply1.d.ts +2 -2
- package/dist/protocol/connection/OpenConnectionReply1.d.ts.map +1 -1
- package/dist/protocol/connection/OpenConnectionReply1.es.js +29 -0
- package/dist/protocol/connection/OpenConnectionReply2.cjs.js +36 -0
- package/dist/protocol/connection/OpenConnectionReply2.d.ts +3 -3
- package/dist/protocol/connection/OpenConnectionReply2.d.ts.map +1 -1
- package/dist/protocol/connection/OpenConnectionReply2.es.js +32 -0
- package/dist/protocol/connection/OpenConnectionRequest1.cjs.js +31 -0
- package/dist/protocol/connection/OpenConnectionRequest1.d.ts +2 -2
- package/dist/protocol/connection/OpenConnectionRequest1.d.ts.map +1 -1
- package/dist/protocol/connection/OpenConnectionRequest1.es.js +27 -0
- package/dist/protocol/connection/OpenConnectionRequest2.cjs.js +34 -0
- package/dist/protocol/connection/OpenConnectionRequest2.d.ts +3 -3
- package/dist/protocol/connection/OpenConnectionRequest2.d.ts.map +1 -1
- package/dist/protocol/connection/OpenConnectionRequest2.es.js +30 -0
- package/dist/protocol/login/ConnectionRequest.cjs.js +29 -0
- package/dist/protocol/login/ConnectionRequest.d.ts +2 -2
- package/dist/protocol/login/ConnectionRequest.d.ts.map +1 -1
- package/dist/protocol/login/ConnectionRequest.es.js +25 -0
- package/dist/protocol/login/ConnectionRequestAccepted.cjs.js +39 -0
- package/dist/protocol/login/ConnectionRequestAccepted.d.ts +3 -3
- package/dist/protocol/login/ConnectionRequestAccepted.d.ts.map +1 -1
- package/dist/protocol/login/ConnectionRequestAccepted.es.js +35 -0
- package/dist/protocol/offline/UnconnectedPing.cjs.js +29 -0
- package/dist/protocol/offline/UnconnectedPing.d.ts +2 -2
- package/dist/protocol/offline/UnconnectedPing.d.ts.map +1 -1
- package/dist/protocol/offline/UnconnectedPing.es.js +25 -0
- package/dist/protocol/offline/UnconnectedPong.cjs.js +34 -0
- package/dist/protocol/offline/UnconnectedPong.d.ts +2 -2
- package/dist/protocol/offline/UnconnectedPong.d.ts.map +1 -1
- package/dist/protocol/offline/UnconnectedPong.es.js +30 -0
- package/dist/utils/InetAddress.cjs.js +29 -0
- package/dist/utils/InetAddress.es.js +25 -0
- package/dist/utils/ServerName.cjs.js +83 -0
- package/dist/utils/ServerName.es.js +79 -0
- package/package.json +51 -29
- package/dist/ClientSocket.js +0 -3
- package/dist/ClientSocket.js.map +0 -1
- package/dist/RakNet.js +0 -15
- package/dist/RakNet.js.map +0 -1
- package/dist/ServerSocket.js +0 -129
- package/dist/ServerSocket.js.map +0 -1
- package/dist/Session.js +0 -408
- package/dist/Session.js.map +0 -1
- package/dist/protocol/ACK.js +0 -8
- package/dist/protocol/ACK.js.map +0 -1
- package/dist/protocol/AcknowledgePacket.js +0 -69
- package/dist/protocol/AcknowledgePacket.js.map +0 -1
- package/dist/protocol/BitFlags.js +0 -9
- package/dist/protocol/BitFlags.js.map +0 -1
- package/dist/protocol/DisconnectNotification.js +0 -8
- package/dist/protocol/DisconnectNotification.js.map +0 -1
- package/dist/protocol/Frame.js +0 -103
- package/dist/protocol/Frame.js.map +0 -1
- package/dist/protocol/FrameReliability.js +0 -14
- package/dist/protocol/FrameReliability.js.map +0 -1
- package/dist/protocol/FrameSet.js +0 -34
- package/dist/protocol/FrameSet.js.map +0 -1
- package/dist/protocol/MessageIdentifiers.js +0 -42
- package/dist/protocol/MessageIdentifiers.js.map +0 -1
- package/dist/protocol/NACK.js +0 -8
- package/dist/protocol/NACK.js.map +0 -1
- package/dist/protocol/OfflineHandler.js +0 -103
- package/dist/protocol/OfflineHandler.js.map +0 -1
- package/dist/protocol/OfflinePacket.js +0 -16
- package/dist/protocol/OfflinePacket.js.map +0 -1
- package/dist/protocol/Packet.js +0 -59
- package/dist/protocol/Packet.js.map +0 -1
- package/dist/protocol/PacketPool.js +0 -29
- package/dist/protocol/PacketPool.js.map +0 -1
- package/dist/protocol/Protocol.js +0 -26
- package/dist/protocol/Protocol.js.map +0 -1
- package/dist/protocol/connection/ConnectedPing.js +0 -15
- package/dist/protocol/connection/ConnectedPing.js.map +0 -1
- package/dist/protocol/connection/ConnectedPong.js +0 -14
- package/dist/protocol/connection/ConnectedPong.js.map +0 -1
- package/dist/protocol/connection/IncompatibleProtocolVersion.js +0 -15
- package/dist/protocol/connection/IncompatibleProtocolVersion.js.map +0 -1
- package/dist/protocol/connection/NewIncomingConnection.js +0 -30
- package/dist/protocol/connection/NewIncomingConnection.js.map +0 -1
- package/dist/protocol/connection/OpenConnectionReply1.js +0 -22
- package/dist/protocol/connection/OpenConnectionReply1.js.map +0 -1
- package/dist/protocol/connection/OpenConnectionReply2.js +0 -25
- package/dist/protocol/connection/OpenConnectionReply2.js.map +0 -1
- package/dist/protocol/connection/OpenConnectionRequest1.js +0 -20
- package/dist/protocol/connection/OpenConnectionRequest1.js.map +0 -1
- package/dist/protocol/connection/OpenConnectionRequest2.js +0 -23
- package/dist/protocol/connection/OpenConnectionRequest2.js.map +0 -1
- package/dist/protocol/login/ConnectionRequest.js +0 -20
- package/dist/protocol/login/ConnectionRequest.js.map +0 -1
- package/dist/protocol/login/ConnectionRequestAccepted.js +0 -31
- package/dist/protocol/login/ConnectionRequestAccepted.js.map +0 -1
- package/dist/protocol/offline/UnconnectedPing.js +0 -20
- package/dist/protocol/offline/UnconnectedPing.js.map +0 -1
- package/dist/protocol/offline/UnconnectedPong.js +0 -23
- package/dist/protocol/offline/UnconnectedPong.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/utils/InetAddress.js +0 -23
- package/dist/utils/InetAddress.js.map +0 -1
- package/dist/utils/ServerName.js +0 -77
- package/dist/utils/ServerName.js.map +0 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import BinaryStream from '@jsprismarine/jsbinaryutils';
|
|
2
|
+
import Packet from './Packet.es.js';
|
|
3
|
+
import '../utils/InetAddress.es.js';
|
|
4
|
+
|
|
5
|
+
class AcknowledgePacket extends Packet {
|
|
6
|
+
sequenceNumbers = [];
|
|
7
|
+
decodePayload() {
|
|
8
|
+
this.sequenceNumbers = [];
|
|
9
|
+
const recordCount = this.readUnsignedShort();
|
|
10
|
+
for (let i = 0; i < recordCount; i++) {
|
|
11
|
+
const notRange = this.readBoolean();
|
|
12
|
+
if (notRange) {
|
|
13
|
+
this.sequenceNumbers.push(this.readUnsignedTriadLE());
|
|
14
|
+
} else {
|
|
15
|
+
const start = this.readUnsignedTriadLE();
|
|
16
|
+
const end = this.readUnsignedTriadLE();
|
|
17
|
+
for (let i2 = start; i2 <= end; i2++) {
|
|
18
|
+
this.sequenceNumbers.push(i2);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
encodePayload() {
|
|
24
|
+
const stream = new BinaryStream();
|
|
25
|
+
this.sequenceNumbers.sort((a, b) => a - b);
|
|
26
|
+
const count = this.sequenceNumbers.length;
|
|
27
|
+
let records = 0;
|
|
28
|
+
if (count > 0) {
|
|
29
|
+
let pointer = 1;
|
|
30
|
+
let start = this.sequenceNumbers[0];
|
|
31
|
+
let last = this.sequenceNumbers[0];
|
|
32
|
+
while (pointer < count) {
|
|
33
|
+
const current = this.sequenceNumbers[pointer++];
|
|
34
|
+
const diff = current - last;
|
|
35
|
+
if (diff === 1) {
|
|
36
|
+
last = current;
|
|
37
|
+
} else if (diff > 1) {
|
|
38
|
+
if (start === last) {
|
|
39
|
+
stream.writeBoolean(true);
|
|
40
|
+
stream.writeUnsignedTriadLE(start);
|
|
41
|
+
start = last = current;
|
|
42
|
+
} else {
|
|
43
|
+
stream.writeBoolean(false);
|
|
44
|
+
stream.writeUnsignedTriadLE(start);
|
|
45
|
+
stream.writeUnsignedTriadLE(last);
|
|
46
|
+
start = last = current;
|
|
47
|
+
}
|
|
48
|
+
++records;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (start === last) {
|
|
52
|
+
stream.writeBoolean(true);
|
|
53
|
+
stream.writeUnsignedTriadLE(start);
|
|
54
|
+
} else {
|
|
55
|
+
stream.writeBoolean(false);
|
|
56
|
+
stream.writeUnsignedTriadLE(start);
|
|
57
|
+
stream.writeUnsignedTriadLE(last);
|
|
58
|
+
}
|
|
59
|
+
++records;
|
|
60
|
+
}
|
|
61
|
+
this.writeUnsignedShort(records);
|
|
62
|
+
this.write(stream.getBuffer());
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export { AcknowledgePacket as default };
|
|
67
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNrbm93bGVkZ2VQYWNrZXQuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9BY2tub3dsZWRnZVBhY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmluYXJ5U3RyZWFtIGZyb20gJ0Bqc3ByaXNtYXJpbmUvanNiaW5hcnl1dGlscyc7XG5pbXBvcnQgUGFja2V0IGZyb20gJy4vUGFja2V0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWNrbm93bGVkZ2VQYWNrZXQgZXh0ZW5kcyBQYWNrZXQge1xuICAgIHB1YmxpYyBzZXF1ZW5jZU51bWJlcnM6IG51bWJlcltdID0gW107XG5cbiAgICBwdWJsaWMgZGVjb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2xlYXIgb2xkIGNhY2hlZCBkZWNvZGVkIHBhY2tldHNcbiAgICAgICAgdGhpcy5zZXF1ZW5jZU51bWJlcnMgPSBbXTtcblxuICAgICAgICBjb25zdCByZWNvcmRDb3VudCA9IHRoaXMucmVhZFVuc2lnbmVkU2hvcnQoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBub3RSYW5nZSA9IHRoaXMucmVhZEJvb2xlYW4oKTtcblxuICAgICAgICAgICAgaWYgKG5vdFJhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXF1ZW5jZU51bWJlcnMucHVzaCh0aGlzLnJlYWRVbnNpZ25lZFRyaWFkTEUoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5yZWFkVW5zaWduZWRUcmlhZExFKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gdGhpcy5yZWFkVW5zaWduZWRUcmlhZExFKCk7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPD0gZW5kOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXF1ZW5jZU51bWJlcnMucHVzaChpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZW5jb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IEJpbmFyeVN0cmVhbSgpO1xuICAgICAgICB0aGlzLnNlcXVlbmNlTnVtYmVycy5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy5zZXF1ZW5jZU51bWJlcnMubGVuZ3RoO1xuICAgICAgICBsZXQgcmVjb3JkcyA9IDA7XG5cbiAgICAgICAgaWYgKGNvdW50ID4gMCkge1xuICAgICAgICAgICAgbGV0IHBvaW50ZXIgPSAxO1xuICAgICAgICAgICAgbGV0IHN0YXJ0ID0gdGhpcy5zZXF1ZW5jZU51bWJlcnNbMF0hO1xuICAgICAgICAgICAgbGV0IGxhc3QgPSB0aGlzLnNlcXVlbmNlTnVtYmVyc1swXSE7XG5cbiAgICAgICAgICAgIHdoaWxlIChwb2ludGVyIDwgY291bnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5zZXF1ZW5jZU51bWJlcnNbcG9pbnRlcisrXSE7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlmZiA9IGN1cnJlbnQgLSBsYXN0O1xuICAgICAgICAgICAgICAgIGlmIChkaWZmID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgPSBjdXJyZW50O1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlmZiA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ID09PSBsYXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGVCb29sZWFuKHRydWUpOyAvLyBzaW5nbGU/XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFRyaWFkTEUoc3RhcnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBsYXN0ID0gY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZUJvb2xlYW4oZmFsc2UpOyAvLyBzaW5nbGU/XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFRyaWFkTEUoc3RhcnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRUcmlhZExFKGxhc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBsYXN0ID0gY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICArK3JlY29yZHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBsYXN0IGl0ZXJhdGlvblxuICAgICAgICAgICAgaWYgKHN0YXJ0ID09PSBsYXN0KSB7XG4gICAgICAgICAgICAgICAgc3RyZWFtLndyaXRlQm9vbGVhbih0cnVlKTsgLy8gc2luZ2xlP1xuICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkVHJpYWRMRShzdGFydCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZUJvb2xlYW4oZmFsc2UpOyAvLyBzaW5nbGU/XG4gICAgICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRUcmlhZExFKHN0YXJ0KTtcbiAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFRyaWFkTEUobGFzdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICArK3JlY29yZHM7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRTaG9ydChyZWNvcmRzKTtcbiAgICAgICAgdGhpcy53cml0ZShzdHJlYW0uZ2V0QnVmZmVyKCkpO1xuICAgIH1cbn1cbiJd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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
var BitFlags = /* @__PURE__ */ ((BitFlags2) => {
|
|
6
|
+
BitFlags2[BitFlags2["VALID"] = 128] = "VALID";
|
|
7
|
+
BitFlags2[BitFlags2["ACK"] = 64] = "ACK";
|
|
8
|
+
BitFlags2[BitFlags2["NACK"] = 32] = "NACK";
|
|
9
|
+
BitFlags2[BitFlags2["SPLIT"] = 16] = "SPLIT";
|
|
10
|
+
return BitFlags2;
|
|
11
|
+
})(BitFlags || {});
|
|
12
|
+
|
|
13
|
+
exports.BitFlags = BitFlags;
|
|
14
|
+
exports.default = BitFlags;
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQml0RmxhZ3MuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdG9jb2wvQml0RmxhZ3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQml0RmxhZ3Mge1xuICAgIFZBTElEID0gMHg4MCxcbiAgICBBQ0sgPSAweDQwLFxuICAgIE5BQ0sgPSAweDIwLFxuICAgIFNQTElUID0gMHgxMFxufVxuZXhwb3J0IGRlZmF1bHQgQml0RmxhZ3M7XG4iXSwibmFtZXMiOlsiQml0RmxhZ3MiXSwibWFwcGluZ3MiOiI7Ozs7QUFBWSxJQUFBLFFBQUEscUJBQUFBLFNBQUwsS0FBQTtBQUNILEVBQUFBLFNBQUFBLENBQUFBLFNBQUFBLENBQUEsV0FBUSxHQUFSLENBQUEsR0FBQSxPQUFBLENBQUE7QUFDQSxFQUFBQSxTQUFBQSxDQUFBQSxTQUFBQSxDQUFBLFNBQU0sRUFBTixDQUFBLEdBQUEsS0FBQSxDQUFBO0FBQ0EsRUFBQUEsU0FBQUEsQ0FBQUEsU0FBQUEsQ0FBQSxVQUFPLEVBQVAsQ0FBQSxHQUFBLE1BQUEsQ0FBQTtBQUNBLEVBQUFBLFNBQUFBLENBQUFBLFNBQUFBLENBQUEsV0FBUSxFQUFSLENBQUEsR0FBQSxPQUFBLENBQUE7QUFKUSxFQUFBQSxPQUFBQSxTQUFBQSxDQUFBQTtBQUFBLENBQUEsRUFBQSxRQUFBLElBQUEsRUFBQTs7Ozs7In0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var BitFlags = /* @__PURE__ */ ((BitFlags2) => {
|
|
2
|
+
BitFlags2[BitFlags2["VALID"] = 128] = "VALID";
|
|
3
|
+
BitFlags2[BitFlags2["ACK"] = 64] = "ACK";
|
|
4
|
+
BitFlags2[BitFlags2["NACK"] = 32] = "NACK";
|
|
5
|
+
BitFlags2[BitFlags2["SPLIT"] = 16] = "SPLIT";
|
|
6
|
+
return BitFlags2;
|
|
7
|
+
})(BitFlags || {});
|
|
8
|
+
|
|
9
|
+
export { BitFlags, BitFlags as default };
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQml0RmxhZ3MuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9CaXRGbGFncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBCaXRGbGFncyB7XG4gICAgVkFMSUQgPSAweDgwLFxuICAgIEFDSyA9IDB4NDAsXG4gICAgTkFDSyA9IDB4MjAsXG4gICAgU1BMSVQgPSAweDEwXG59XG5leHBvcnQgZGVmYXVsdCBCaXRGbGFncztcbiJdLCJuYW1lcyI6WyJCaXRGbGFncyJdLCJtYXBwaW5ncyI6IkFBQVksSUFBQSxRQUFBLHFCQUFBQSxTQUFMLEtBQUE7QUFDSCxFQUFBQSxTQUFBQSxDQUFBQSxTQUFBQSxDQUFBLFdBQVEsR0FBUixDQUFBLEdBQUEsT0FBQSxDQUFBO0FBQ0EsRUFBQUEsU0FBQUEsQ0FBQUEsU0FBQUEsQ0FBQSxTQUFNLEVBQU4sQ0FBQSxHQUFBLEtBQUEsQ0FBQTtBQUNBLEVBQUFBLFNBQUFBLENBQUFBLFNBQUFBLENBQUEsVUFBTyxFQUFQLENBQUEsR0FBQSxNQUFBLENBQUE7QUFDQSxFQUFBQSxTQUFBQSxDQUFBQSxTQUFBQSxDQUFBLFdBQVEsRUFBUixDQUFBLEdBQUEsT0FBQSxDQUFBO0FBSlEsRUFBQUEsT0FBQUEsU0FBQUEsQ0FBQUE7QUFBQSxDQUFBLEVBQUEsUUFBQSxJQUFBLEVBQUE7Ozs7In0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const protocol_MessageIdentifiers = require('./MessageIdentifiers.cjs.js');
|
|
6
|
+
const protocol_OfflinePacket = require('./OfflinePacket.cjs.js');
|
|
7
|
+
require('./Packet.cjs.js');
|
|
8
|
+
require('@jsprismarine/jsbinaryutils');
|
|
9
|
+
require('../utils/InetAddress.cjs.js');
|
|
10
|
+
require('../Constants.cjs.js');
|
|
11
|
+
|
|
12
|
+
class DisconnectNotification extends protocol_OfflinePacket.default {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(protocol_MessageIdentifiers.MessageIdentifiers.DISCONNECTION_NOTIFICATION);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.default = DisconnectNotification;
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzY29ubmVjdE5vdGlmaWNhdGlvbi5janMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9EaXNjb25uZWN0Tm90aWZpY2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VJZGVudGlmaWVycyB9IGZyb20gJy4vTWVzc2FnZUlkZW50aWZpZXJzJztcbmltcG9ydCBPZmZsaW5lUGFja2V0IGZyb20gJy4vT2ZmbGluZVBhY2tldCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERpc2Nvbm5lY3ROb3RpZmljYXRpb24gZXh0ZW5kcyBPZmZsaW5lUGFja2V0IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKE1lc3NhZ2VJZGVudGlmaWVycy5ESVNDT05ORUNUSU9OX05PVElGSUNBVElPTik7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIk9mZmxpbmVQYWNrZXQiLCJNZXNzYWdlSWRlbnRpZmllcnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsTUFBcUIsK0JBQStCQSw4QkFBYyxDQUFBO0FBQUEsRUFDdkQsV0FBYyxHQUFBO0FBQ2pCLElBQUEsS0FBQSxDQUFNQywrQ0FBbUIsMEJBQTBCLENBQUEsQ0FBQTtBQUFBLEdBQ3ZEO0FBQ0o7Ozs7In0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisconnectNotification.d.ts","sourceRoot":"","sources":["../../src/protocol/DisconnectNotification.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,
|
|
1
|
+
{"version":3,"file":"DisconnectNotification.d.ts","sourceRoot":"","sources":["../../src/protocol/DisconnectNotification.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa;;CAIhE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MessageIdentifiers } from './MessageIdentifiers.es.js';
|
|
2
|
+
import OfflinePacket from './OfflinePacket.es.js';
|
|
3
|
+
import './Packet.es.js';
|
|
4
|
+
import '@jsprismarine/jsbinaryutils';
|
|
5
|
+
import '../utils/InetAddress.es.js';
|
|
6
|
+
import '../Constants.es.js';
|
|
7
|
+
|
|
8
|
+
class DisconnectNotification extends OfflinePacket {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(MessageIdentifiers.DISCONNECTION_NOTIFICATION);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { DisconnectNotification as default };
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzY29ubmVjdE5vdGlmaWNhdGlvbi5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3RvY29sL0Rpc2Nvbm5lY3ROb3RpZmljYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZUlkZW50aWZpZXJzIH0gZnJvbSAnLi9NZXNzYWdlSWRlbnRpZmllcnMnO1xuaW1wb3J0IE9mZmxpbmVQYWNrZXQgZnJvbSAnLi9PZmZsaW5lUGFja2V0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGlzY29ubmVjdE5vdGlmaWNhdGlvbiBleHRlbmRzIE9mZmxpbmVQYWNrZXQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoTWVzc2FnZUlkZW50aWZpZXJzLkRJU0NPTk5FQ1RJT05fTk9USUZJQ0FUSU9OKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBLE1BQXFCLCtCQUErQixhQUFjLENBQUE7QUFBQSxFQUN2RCxXQUFjLEdBQUE7QUFDakIsSUFBQSxLQUFBLENBQU0sbUJBQW1CLDBCQUEwQixDQUFBLENBQUE7QUFBQSxHQUN2RDtBQUNKOzs7OyJ9
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const BinaryStream = require('@jsprismarine/jsbinaryutils');
|
|
6
|
+
const protocol_BitFlags = require('./BitFlags.cjs.js');
|
|
7
|
+
const protocol_FrameReliability = require('./FrameReliability.cjs.js');
|
|
8
|
+
const assert = require('assert');
|
|
9
|
+
|
|
10
|
+
const _interopDefault = e => e && e.__esModule ? e : { default: e };
|
|
11
|
+
|
|
12
|
+
const BinaryStream__default = /*#__PURE__*/_interopDefault(BinaryStream);
|
|
13
|
+
const assert__default = /*#__PURE__*/_interopDefault(assert);
|
|
14
|
+
|
|
15
|
+
const MAX_FRAME_BYTE_LENGTH = 23;
|
|
16
|
+
class Frame {
|
|
17
|
+
reliability = protocol_FrameReliability.FrameReliability.UNRELIABLE;
|
|
18
|
+
reliableIndex = null;
|
|
19
|
+
sequenceIndex = null;
|
|
20
|
+
orderIndex = null;
|
|
21
|
+
orderChannel;
|
|
22
|
+
fragmentSize = 0;
|
|
23
|
+
fragmentId;
|
|
24
|
+
fragmentIndex;
|
|
25
|
+
content;
|
|
26
|
+
fromBinary(stream) {
|
|
27
|
+
const header = stream.readByte();
|
|
28
|
+
this.reliability = (header & 224) >> 5;
|
|
29
|
+
const length = Math.ceil(stream.readShort() / 8);
|
|
30
|
+
if (this.isReliable()) {
|
|
31
|
+
this.reliableIndex = stream.readTriadLE();
|
|
32
|
+
}
|
|
33
|
+
if (this.isSequenced()) {
|
|
34
|
+
this.sequenceIndex = stream.readTriadLE();
|
|
35
|
+
}
|
|
36
|
+
if (this.isOrdered()) {
|
|
37
|
+
this.orderIndex = stream.readTriadLE();
|
|
38
|
+
this.orderChannel = stream.readByte();
|
|
39
|
+
}
|
|
40
|
+
if ((header & protocol_BitFlags.BitFlags.SPLIT) > 0) {
|
|
41
|
+
this.fragmentSize = stream.readInt();
|
|
42
|
+
this.fragmentId = stream.readShort();
|
|
43
|
+
this.fragmentIndex = stream.readInt();
|
|
44
|
+
}
|
|
45
|
+
this.content = stream.read(length);
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
toBinary() {
|
|
49
|
+
const stream = new BinaryStream__default.default();
|
|
50
|
+
const fragmented = this.isFragmented();
|
|
51
|
+
stream.writeByte(this.reliability << 5 | (fragmented ? protocol_BitFlags.BitFlags.SPLIT : 0));
|
|
52
|
+
stream.writeUnsignedShort(this.content.byteLength << 3);
|
|
53
|
+
if (this.isReliable()) {
|
|
54
|
+
assert__default.default(typeof this.reliableIndex === "number", "Invalid ReliableIndex for reliable Frame");
|
|
55
|
+
stream.writeUnsignedTriadLE(this.reliableIndex);
|
|
56
|
+
}
|
|
57
|
+
if (this.isSequenced()) {
|
|
58
|
+
assert__default.default(typeof this.sequenceIndex === "number", "Invalid SequenceIndex for sequenced Frame");
|
|
59
|
+
stream.writeUnsignedTriadLE(this.sequenceIndex);
|
|
60
|
+
}
|
|
61
|
+
if (this.isOrdered()) {
|
|
62
|
+
assert__default.default(typeof this.orderIndex === "number", "Invalid OrderIndex for ordered Frame");
|
|
63
|
+
stream.writeUnsignedTriadLE(this.orderIndex);
|
|
64
|
+
assert__default.default(typeof this.orderChannel === "number", "Invalid OrderChannel for ordered FrameSet");
|
|
65
|
+
stream.writeByte(this.orderChannel);
|
|
66
|
+
}
|
|
67
|
+
if (fragmented) {
|
|
68
|
+
stream.writeUnsignedInt(this.fragmentSize);
|
|
69
|
+
stream.writeUnsignedShort(this.fragmentId);
|
|
70
|
+
stream.writeUnsignedInt(this.fragmentIndex);
|
|
71
|
+
}
|
|
72
|
+
stream.write(this.content);
|
|
73
|
+
return stream;
|
|
74
|
+
}
|
|
75
|
+
getByteLength() {
|
|
76
|
+
return 3 + this.content.byteLength + (this.isReliable() ? 3 : 0) + (this.isSequenced() ? 3 : 0) + (this.isOrdered() ? 4 : 0) + (this.isFragmented() ? 10 : 0);
|
|
77
|
+
}
|
|
78
|
+
isReliable() {
|
|
79
|
+
return [
|
|
80
|
+
protocol_FrameReliability.FrameReliability.RELIABLE,
|
|
81
|
+
protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED,
|
|
82
|
+
protocol_FrameReliability.FrameReliability.RELIABLE_SEQUENCED,
|
|
83
|
+
protocol_FrameReliability.FrameReliability.RELIABLE_WITH_ACK_RECEIPT,
|
|
84
|
+
protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT
|
|
85
|
+
].includes(this.reliability);
|
|
86
|
+
}
|
|
87
|
+
isSequenced() {
|
|
88
|
+
return [protocol_FrameReliability.FrameReliability.RELIABLE_SEQUENCED, protocol_FrameReliability.FrameReliability.UNRELIABLE_SEQUENCED].includes(this.reliability);
|
|
89
|
+
}
|
|
90
|
+
isOrdered() {
|
|
91
|
+
return [
|
|
92
|
+
protocol_FrameReliability.FrameReliability.UNRELIABLE_SEQUENCED,
|
|
93
|
+
protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED,
|
|
94
|
+
protocol_FrameReliability.FrameReliability.RELIABLE_SEQUENCED,
|
|
95
|
+
protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT
|
|
96
|
+
].includes(this.reliability);
|
|
97
|
+
}
|
|
98
|
+
isOrderedExclusive() {
|
|
99
|
+
return [protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED, protocol_FrameReliability.FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT].includes(
|
|
100
|
+
this.reliability
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
isFragmented() {
|
|
104
|
+
return this.fragmentSize > 0;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
exports.MAX_FRAME_BYTE_LENGTH = MAX_FRAME_BYTE_LENGTH;
|
|
109
|
+
exports.default = Frame;
|
|
110
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWUuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdG9jb2wvRnJhbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpbmFyeVN0cmVhbSBmcm9tICdAanNwcmlzbWFyaW5lL2pzYmluYXJ5dXRpbHMnO1xuaW1wb3J0IEJpdEZsYWdzIGZyb20gJy4vQml0RmxhZ3MnO1xuaW1wb3J0IEZyYW1lUmVsaWFiaWxpdHkgZnJvbSAnLi9GcmFtZVJlbGlhYmlsaXR5JztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rYXJjaGl2ZS9SYWtOZXQvYmxvYi8xYTE2OTg5NWE5MDBjOWZjNDg0MWM1NTZlMTY1MTQxODJiNzVmYWY4L1NvdXJjZS9SZWxpYWJpbGl0eUxheWVyLmNwcCNMMTMzXG4vLyBJdCdzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyBhIGZyYW1lc2V0IGNhbiB0YWtlLiAoc3BsaXR0ZWQgcmVsaWFibGUgc2VxdWVuY2VkKS5cbmV4cG9ydCBjb25zdCBNQVhfRlJBTUVfQllURV9MRU5HVEggPSAyMztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnJhbWUge1xuICAgIHB1YmxpYyByZWxpYWJpbGl0eSA9IEZyYW1lUmVsaWFiaWxpdHkuVU5SRUxJQUJMRTtcblxuICAgIHB1YmxpYyByZWxpYWJsZUluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBzZXF1ZW5jZUluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBvcmRlckluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgb3JkZXJDaGFubmVsITogTm9uTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIHB1YmxpYyBmcmFnbWVudFNpemUgPSAwO1xuICAgIHB1YmxpYyBmcmFnbWVudElkITogbnVtYmVyO1xuICAgIHB1YmxpYyBmcmFnbWVudEluZGV4ITogbnVtYmVyO1xuXG4gICAgcHVibGljIGNvbnRlbnQhOiBCdWZmZXI7XG5cbiAgICBwdWJsaWMgZnJvbUJpbmFyeShzdHJlYW06IEJpbmFyeVN0cmVhbSk6IEZyYW1lIHtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gc3RyZWFtLnJlYWRCeXRlKCk7XG4gICAgICAgIHRoaXMucmVsaWFiaWxpdHkgPSAoaGVhZGVyICYgMHhlMCkgPj4gNTtcblxuICAgICAgICAvLyBMZW5ndGggZnJvbSBiaXRzIHRvIGJ5dGVzXG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGguY2VpbChzdHJlYW0ucmVhZFNob3J0KCkgLyA4KTtcblxuICAgICAgICBpZiAodGhpcy5pc1JlbGlhYmxlKCkpIHtcbiAgICAgICAgICAgIHRoaXMucmVsaWFibGVJbmRleCA9IHN0cmVhbS5yZWFkVHJpYWRMRSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTZXF1ZW5jZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXF1ZW5jZUluZGV4ID0gc3RyZWFtLnJlYWRUcmlhZExFKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc09yZGVyZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5vcmRlckluZGV4ID0gc3RyZWFtLnJlYWRUcmlhZExFKCk7XG4gICAgICAgICAgICB0aGlzLm9yZGVyQ2hhbm5lbCA9IHN0cmVhbS5yZWFkQnl0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChoZWFkZXIgJiBCaXRGbGFncy5TUExJVCkgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50U2l6ZSA9IHN0cmVhbS5yZWFkSW50KCk7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50SWQgPSBzdHJlYW0ucmVhZFNob3J0KCk7XG4gICAgICAgICAgICB0aGlzLmZyYWdtZW50SW5kZXggPSBzdHJlYW0ucmVhZEludCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb250ZW50ID0gc3RyZWFtLnJlYWQobGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHRvQmluYXJ5KCk6IEJpbmFyeVN0cmVhbSB7XG4gICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBCaW5hcnlTdHJlYW0oKTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnRlZCA9IHRoaXMuaXNGcmFnbWVudGVkKCk7XG5cbiAgICAgICAgc3RyZWFtLndyaXRlQnl0ZSgodGhpcy5yZWxpYWJpbGl0eSA8PCA1KSB8IChmcmFnbWVudGVkID8gQml0RmxhZ3MuU1BMSVQgOiAwKSk7XG4gICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkU2hvcnQodGhpcy5jb250ZW50LmJ5dGVMZW5ndGggPDwgMyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSZWxpYWJsZSgpKSB7XG4gICAgICAgICAgICBhc3NlcnQodHlwZW9mIHRoaXMucmVsaWFibGVJbmRleCA9PT0gJ251bWJlcicsICdJbnZhbGlkIFJlbGlhYmxlSW5kZXggZm9yIHJlbGlhYmxlIEZyYW1lJyk7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFRyaWFkTEUodGhpcy5yZWxpYWJsZUluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzU2VxdWVuY2VkKCkpIHtcbiAgICAgICAgICAgIGFzc2VydCh0eXBlb2YgdGhpcy5zZXF1ZW5jZUluZGV4ID09PSAnbnVtYmVyJywgJ0ludmFsaWQgU2VxdWVuY2VJbmRleCBmb3Igc2VxdWVuY2VkIEZyYW1lJyk7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFRyaWFkTEUodGhpcy5zZXF1ZW5jZUluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzT3JkZXJlZCgpKSB7XG4gICAgICAgICAgICBhc3NlcnQodHlwZW9mIHRoaXMub3JkZXJJbmRleCA9PT0gJ251bWJlcicsICdJbnZhbGlkIE9yZGVySW5kZXggZm9yIG9yZGVyZWQgRnJhbWUnKTtcbiAgICAgICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkVHJpYWRMRSh0aGlzLm9yZGVySW5kZXgpO1xuICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZiB0aGlzLm9yZGVyQ2hhbm5lbCA9PT0gJ251bWJlcicsICdJbnZhbGlkIE9yZGVyQ2hhbm5lbCBmb3Igb3JkZXJlZCBGcmFtZVNldCcpO1xuICAgICAgICAgICAgc3RyZWFtLndyaXRlQnl0ZSh0aGlzLm9yZGVyQ2hhbm5lbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZnJhZ21lbnRlZCkge1xuICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRJbnQodGhpcy5mcmFnbWVudFNpemUpO1xuICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRTaG9ydCh0aGlzLmZyYWdtZW50SWQpO1xuICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRJbnQodGhpcy5mcmFnbWVudEluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0cmVhbS53cml0ZSh0aGlzLmNvbnRlbnQpO1xuICAgICAgICByZXR1cm4gc3RyZWFtO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRCeXRlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAzICtcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5ieXRlTGVuZ3RoICtcbiAgICAgICAgICAgICh0aGlzLmlzUmVsaWFibGUoKSA/IDMgOiAwKSArXG4gICAgICAgICAgICAodGhpcy5pc1NlcXVlbmNlZCgpID8gMyA6IDApICtcbiAgICAgICAgICAgICh0aGlzLmlzT3JkZXJlZCgpID8gNCA6IDApICtcbiAgICAgICAgICAgICh0aGlzLmlzRnJhZ21lbnRlZCgpID8gMTAgOiAwKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1JlbGlhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRSxcbiAgICAgICAgICAgIEZyYW1lUmVsaWFiaWxpdHkuUkVMSUFCTEVfT1JERVJFRCxcbiAgICAgICAgICAgIEZyYW1lUmVsaWFiaWxpdHkuUkVMSUFCTEVfU0VRVUVOQ0VELFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9XSVRIX0FDS19SRUNFSVBULFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9PUkRFUkVEX1dJVEhfQUNLX1JFQ0VJUFRcbiAgICAgICAgXS5pbmNsdWRlcyh0aGlzLnJlbGlhYmlsaXR5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNTZXF1ZW5jZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9TRVFVRU5DRUQsIEZyYW1lUmVsaWFiaWxpdHkuVU5SRUxJQUJMRV9TRVFVRU5DRURdLmluY2x1ZGVzKHRoaXMucmVsaWFiaWxpdHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc09yZGVyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlVOUkVMSUFCTEVfU0VRVUVOQ0VELFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9PUkRFUkVELFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9TRVFVRU5DRUQsXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRURfV0lUSF9BQ0tfUkVDRUlQVFxuICAgICAgICBdLmluY2x1ZGVzKHRoaXMucmVsaWFiaWxpdHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc09yZGVyZWRFeGNsdXNpdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9PUkRFUkVELCBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRURfV0lUSF9BQ0tfUkVDRUlQVF0uaW5jbHVkZXMoXG4gICAgICAgICAgICB0aGlzLnJlbGlhYmlsaXR5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRnJhZ21lbnRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJhZ21lbnRTaXplID4gMDtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiRnJhbWVSZWxpYWJpbGl0eSIsIkJpdEZsYWdzIiwiQmluYXJ5U3RyZWFtIiwiYXNzZXJ0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQU9PLE1BQU0scUJBQXdCLEdBQUEsR0FBQTtBQUVyQyxNQUFxQixLQUFNLENBQUE7QUFBQSxFQUNoQixjQUFjQSwwQ0FBaUIsQ0FBQSxVQUFBLENBQUE7QUFBQSxFQUUvQixhQUErQixHQUFBLElBQUEsQ0FBQTtBQUFBLEVBRS9CLGFBQStCLEdBQUEsSUFBQSxDQUFBO0FBQUEsRUFFL0IsVUFBNEIsR0FBQSxJQUFBLENBQUE7QUFBQSxFQUM1QixZQUFBLENBQUE7QUFBQSxFQUVBLFlBQWUsR0FBQSxDQUFBLENBQUE7QUFBQSxFQUNmLFVBQUEsQ0FBQTtBQUFBLEVBQ0EsYUFBQSxDQUFBO0FBQUEsRUFFQSxPQUFBLENBQUE7QUFBQSxFQUVBLFdBQVcsTUFBNkIsRUFBQTtBQUMzQyxJQUFNLE1BQUEsTUFBQSxHQUFTLE9BQU8sUUFBUyxFQUFBLENBQUE7QUFDL0IsSUFBSyxJQUFBLENBQUEsV0FBQSxHQUFBLENBQWUsU0FBUyxHQUFTLEtBQUEsQ0FBQSxDQUFBO0FBR3RDLElBQUEsTUFBTSxTQUFTLElBQUssQ0FBQSxJQUFBLENBQUssTUFBTyxDQUFBLFNBQUEsS0FBYyxDQUFDLENBQUEsQ0FBQTtBQUUvQyxJQUFJLElBQUEsSUFBQSxDQUFLLFlBQWMsRUFBQTtBQUNuQixNQUFLLElBQUEsQ0FBQSxhQUFBLEdBQWdCLE9BQU8sV0FBWSxFQUFBLENBQUE7QUFBQSxLQUM1QztBQUVBLElBQUksSUFBQSxJQUFBLENBQUssYUFBZSxFQUFBO0FBQ3BCLE1BQUssSUFBQSxDQUFB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
|
package/dist/protocol/Frame.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/// <reference types="node"
|
|
1
|
+
/// <reference types="node" />
|
|
2
2
|
import BinaryStream from '@jsprismarine/jsbinaryutils';
|
|
3
|
-
import FrameReliability from './FrameReliability
|
|
3
|
+
import FrameReliability from './FrameReliability';
|
|
4
4
|
export declare const MAX_FRAME_BYTE_LENGTH = 23;
|
|
5
5
|
export default class Frame {
|
|
6
6
|
reliability: FrameReliability;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Frame.d.ts","sourceRoot":"","sources":["../../src/protocol/Frame.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,OAAO,gBAAgB,MAAM,
|
|
1
|
+
{"version":3,"file":"Frame.d.ts","sourceRoot":"","sources":["../../src/protocol/Frame.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAKlD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,KAAK;IACf,WAAW,mBAA+B;IAE1C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,YAAY,EAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAEnC,YAAY,SAAK;IACjB,UAAU,EAAG,MAAM,CAAC;IACpB,aAAa,EAAG,MAAM,CAAC;IAEvB,OAAO,EAAG,MAAM,CAAC;IAEjB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,KAAK;IA8BvC,QAAQ,IAAI,YAAY;IAkCxB,aAAa,IAAI,MAAM;IAWvB,UAAU,IAAI,OAAO;IAUrB,WAAW,IAAI,OAAO;IAItB,SAAS,IAAI,OAAO;IASpB,kBAAkB,IAAI,OAAO;IAM7B,YAAY,IAAI,OAAO;CAGjC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import BinaryStream from '@jsprismarine/jsbinaryutils';
|
|
2
|
+
import { BitFlags } from './BitFlags.es.js';
|
|
3
|
+
import { FrameReliability } from './FrameReliability.es.js';
|
|
4
|
+
import assert from 'assert';
|
|
5
|
+
|
|
6
|
+
const MAX_FRAME_BYTE_LENGTH = 23;
|
|
7
|
+
class Frame {
|
|
8
|
+
reliability = FrameReliability.UNRELIABLE;
|
|
9
|
+
reliableIndex = null;
|
|
10
|
+
sequenceIndex = null;
|
|
11
|
+
orderIndex = null;
|
|
12
|
+
orderChannel;
|
|
13
|
+
fragmentSize = 0;
|
|
14
|
+
fragmentId;
|
|
15
|
+
fragmentIndex;
|
|
16
|
+
content;
|
|
17
|
+
fromBinary(stream) {
|
|
18
|
+
const header = stream.readByte();
|
|
19
|
+
this.reliability = (header & 224) >> 5;
|
|
20
|
+
const length = Math.ceil(stream.readShort() / 8);
|
|
21
|
+
if (this.isReliable()) {
|
|
22
|
+
this.reliableIndex = stream.readTriadLE();
|
|
23
|
+
}
|
|
24
|
+
if (this.isSequenced()) {
|
|
25
|
+
this.sequenceIndex = stream.readTriadLE();
|
|
26
|
+
}
|
|
27
|
+
if (this.isOrdered()) {
|
|
28
|
+
this.orderIndex = stream.readTriadLE();
|
|
29
|
+
this.orderChannel = stream.readByte();
|
|
30
|
+
}
|
|
31
|
+
if ((header & BitFlags.SPLIT) > 0) {
|
|
32
|
+
this.fragmentSize = stream.readInt();
|
|
33
|
+
this.fragmentId = stream.readShort();
|
|
34
|
+
this.fragmentIndex = stream.readInt();
|
|
35
|
+
}
|
|
36
|
+
this.content = stream.read(length);
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
toBinary() {
|
|
40
|
+
const stream = new BinaryStream();
|
|
41
|
+
const fragmented = this.isFragmented();
|
|
42
|
+
stream.writeByte(this.reliability << 5 | (fragmented ? BitFlags.SPLIT : 0));
|
|
43
|
+
stream.writeUnsignedShort(this.content.byteLength << 3);
|
|
44
|
+
if (this.isReliable()) {
|
|
45
|
+
assert(typeof this.reliableIndex === "number", "Invalid ReliableIndex for reliable Frame");
|
|
46
|
+
stream.writeUnsignedTriadLE(this.reliableIndex);
|
|
47
|
+
}
|
|
48
|
+
if (this.isSequenced()) {
|
|
49
|
+
assert(typeof this.sequenceIndex === "number", "Invalid SequenceIndex for sequenced Frame");
|
|
50
|
+
stream.writeUnsignedTriadLE(this.sequenceIndex);
|
|
51
|
+
}
|
|
52
|
+
if (this.isOrdered()) {
|
|
53
|
+
assert(typeof this.orderIndex === "number", "Invalid OrderIndex for ordered Frame");
|
|
54
|
+
stream.writeUnsignedTriadLE(this.orderIndex);
|
|
55
|
+
assert(typeof this.orderChannel === "number", "Invalid OrderChannel for ordered FrameSet");
|
|
56
|
+
stream.writeByte(this.orderChannel);
|
|
57
|
+
}
|
|
58
|
+
if (fragmented) {
|
|
59
|
+
stream.writeUnsignedInt(this.fragmentSize);
|
|
60
|
+
stream.writeUnsignedShort(this.fragmentId);
|
|
61
|
+
stream.writeUnsignedInt(this.fragmentIndex);
|
|
62
|
+
}
|
|
63
|
+
stream.write(this.content);
|
|
64
|
+
return stream;
|
|
65
|
+
}
|
|
66
|
+
getByteLength() {
|
|
67
|
+
return 3 + this.content.byteLength + (this.isReliable() ? 3 : 0) + (this.isSequenced() ? 3 : 0) + (this.isOrdered() ? 4 : 0) + (this.isFragmented() ? 10 : 0);
|
|
68
|
+
}
|
|
69
|
+
isReliable() {
|
|
70
|
+
return [
|
|
71
|
+
FrameReliability.RELIABLE,
|
|
72
|
+
FrameReliability.RELIABLE_ORDERED,
|
|
73
|
+
FrameReliability.RELIABLE_SEQUENCED,
|
|
74
|
+
FrameReliability.RELIABLE_WITH_ACK_RECEIPT,
|
|
75
|
+
FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT
|
|
76
|
+
].includes(this.reliability);
|
|
77
|
+
}
|
|
78
|
+
isSequenced() {
|
|
79
|
+
return [FrameReliability.RELIABLE_SEQUENCED, FrameReliability.UNRELIABLE_SEQUENCED].includes(this.reliability);
|
|
80
|
+
}
|
|
81
|
+
isOrdered() {
|
|
82
|
+
return [
|
|
83
|
+
FrameReliability.UNRELIABLE_SEQUENCED,
|
|
84
|
+
FrameReliability.RELIABLE_ORDERED,
|
|
85
|
+
FrameReliability.RELIABLE_SEQUENCED,
|
|
86
|
+
FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT
|
|
87
|
+
].includes(this.reliability);
|
|
88
|
+
}
|
|
89
|
+
isOrderedExclusive() {
|
|
90
|
+
return [FrameReliability.RELIABLE_ORDERED, FrameReliability.RELIABLE_ORDERED_WITH_ACK_RECEIPT].includes(
|
|
91
|
+
this.reliability
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
isFragmented() {
|
|
95
|
+
return this.fragmentSize > 0;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export { MAX_FRAME_BYTE_LENGTH, Frame as default };
|
|
100
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWUuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9GcmFtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmluYXJ5U3RyZWFtIGZyb20gJ0Bqc3ByaXNtYXJpbmUvanNiaW5hcnl1dGlscyc7XG5pbXBvcnQgQml0RmxhZ3MgZnJvbSAnLi9CaXRGbGFncyc7XG5pbXBvcnQgRnJhbWVSZWxpYWJpbGl0eSBmcm9tICcuL0ZyYW1lUmVsaWFiaWxpdHknO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2thcmNoaXZlL1Jha05ldC9ibG9iLzFhMTY5ODk1YTkwMGM5ZmM0ODQxYzU1NmUxNjUxNDE4MmI3NWZhZjgvU291cmNlL1JlbGlhYmlsaXR5TGF5ZXIuY3BwI0wxMzNcbi8vIEl0J3MgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIGEgZnJhbWVzZXQgY2FuIHRha2UuIChzcGxpdHRlZCByZWxpYWJsZSBzZXF1ZW5jZWQpLlxuZXhwb3J0IGNvbnN0IE1BWF9GUkFNRV9CWVRFX0xFTkdUSCA9IDIzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGcmFtZSB7XG4gICAgcHVibGljIHJlbGlhYmlsaXR5ID0gRnJhbWVSZWxpYWJpbGl0eS5VTlJFTElBQkxFO1xuXG4gICAgcHVibGljIHJlbGlhYmxlSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIHNlcXVlbmNlSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIG9yZGVySW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBvcmRlckNoYW5uZWwhOiBOb25OdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgcHVibGljIGZyYWdtZW50U2l6ZSA9IDA7XG4gICAgcHVibGljIGZyYWdtZW50SWQhOiBudW1iZXI7XG4gICAgcHVibGljIGZyYWdtZW50SW5kZXghOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgY29udGVudCE6IEJ1ZmZlcjtcblxuICAgIHB1YmxpYyBmcm9tQmluYXJ5KHN0cmVhbTogQmluYXJ5U3RyZWFtKTogRnJhbWUge1xuICAgICAgICBjb25zdCBoZWFkZXIgPSBzdHJlYW0ucmVhZEJ5dGUoKTtcbiAgICAgICAgdGhpcy5yZWxpYWJpbGl0eSA9IChoZWFkZXIgJiAweGUwKSA+PiA1O1xuXG4gICAgICAgIC8vIExlbmd0aCBmcm9tIGJpdHMgdG8gYnl0ZXNcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5jZWlsKHN0cmVhbS5yZWFkU2hvcnQoKSAvIDgpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUmVsaWFibGUoKSkge1xuICAgICAgICAgICAgdGhpcy5yZWxpYWJsZUluZGV4ID0gc3RyZWFtLnJlYWRUcmlhZExFKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc1NlcXVlbmNlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnNlcXVlbmNlSW5kZXggPSBzdHJlYW0ucmVhZFRyaWFkTEUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzT3JkZXJlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLm9yZGVySW5kZXggPSBzdHJlYW0ucmVhZFRyaWFkTEUoKTtcbiAgICAgICAgICAgIHRoaXMub3JkZXJDaGFubmVsID0gc3RyZWFtLnJlYWRCeXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGhlYWRlciAmIEJpdEZsYWdzLlNQTElUKSA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZnJhZ21lbnRTaXplID0gc3RyZWFtLnJlYWRJbnQoKTtcbiAgICAgICAgICAgIHRoaXMuZnJhZ21lbnRJZCA9IHN0cmVhbS5yZWFkU2hvcnQoKTtcbiAgICAgICAgICAgIHRoaXMuZnJhZ21lbnRJbmRleCA9IHN0cmVhbS5yZWFkSW50KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbnRlbnQgPSBzdHJlYW0ucmVhZChsZW5ndGgpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9CaW5hcnkoKTogQmluYXJ5U3RyZWFtIHtcbiAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IEJpbmFyeVN0cmVhbSgpO1xuICAgICAgICBjb25zdCBmcmFnbWVudGVkID0gdGhpcy5pc0ZyYWdtZW50ZWQoKTtcblxuICAgICAgICBzdHJlYW0ud3JpdGVCeXRlKCh0aGlzLnJlbGlhYmlsaXR5IDw8IDUpIHwgKGZyYWdtZW50ZWQgPyBCaXRGbGFncy5TUExJVCA6IDApKTtcbiAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRTaG9ydCh0aGlzLmNvbnRlbnQuYnl0ZUxlbmd0aCA8PCAzKTtcblxuICAgICAgICBpZiAodGhpcy5pc1JlbGlhYmxlKCkpIHtcbiAgICAgICAgICAgIGFzc2VydCh0eXBlb2YgdGhpcy5yZWxpYWJsZUluZGV4ID09PSAnbnVtYmVyJywgJ0ludmFsaWQgUmVsaWFibGVJbmRleCBmb3IgcmVsaWFibGUgRnJhbWUnKTtcbiAgICAgICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkVHJpYWRMRSh0aGlzLnJlbGlhYmxlSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTZXF1ZW5jZWQoKSkge1xuICAgICAgICAgICAgYXNzZXJ0KHR5cGVvZiB0aGlzLnNlcXVlbmNlSW5kZXggPT09ICdudW1iZXInLCAnSW52YWxpZCBTZXF1ZW5jZUluZGV4IGZvciBzZXF1ZW5jZWQgRnJhbWUnKTtcbiAgICAgICAgICAgIHN0cmVhbS53cml0ZVVuc2lnbmVkVHJpYWRMRSh0aGlzLnNlcXVlbmNlSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcmRlcmVkKCkpIHtcbiAgICAgICAgICAgIGFzc2VydCh0eXBlb2YgdGhpcy5vcmRlckluZGV4ID09PSAnbnVtYmVyJywgJ0ludmFsaWQgT3JkZXJJbmRleCBmb3Igb3JkZXJlZCBGcmFtZScpO1xuICAgICAgICAgICAgc3RyZWFtLndyaXRlVW5zaWduZWRUcmlhZExFKHRoaXMub3JkZXJJbmRleCk7XG4gICAgICAgICAgICBhc3NlcnQodHlwZW9mIHRoaXMub3JkZXJDaGFubmVsID09PSAnbnVtYmVyJywgJ0ludmFsaWQgT3JkZXJDaGFubmVsIGZvciBvcmRlcmVkIEZyYW1lU2V0Jyk7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVCeXRlKHRoaXMub3JkZXJDaGFubmVsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmcmFnbWVudGVkKSB7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZEludCh0aGlzLmZyYWdtZW50U2l6ZSk7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZFNob3J0KHRoaXMuZnJhZ21lbnRJZCk7XG4gICAgICAgICAgICBzdHJlYW0ud3JpdGVVbnNpZ25lZEludCh0aGlzLmZyYWdtZW50SW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RyZWFtLndyaXRlKHRoaXMuY29udGVudCk7XG4gICAgICAgIHJldHVybiBzdHJlYW07XG4gICAgfVxuXG4gICAgcHVibGljIGdldEJ5dGVMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDMgK1xuICAgICAgICAgICAgdGhpcy5jb250ZW50LmJ5dGVMZW5ndGggK1xuICAgICAgICAgICAgKHRoaXMuaXNSZWxpYWJsZSgpID8gMyA6IDApICtcbiAgICAgICAgICAgICh0aGlzLmlzU2VxdWVuY2VkKCkgPyAzIDogMCkgK1xuICAgICAgICAgICAgKHRoaXMuaXNPcmRlcmVkKCkgPyA0IDogMCkgK1xuICAgICAgICAgICAgKHRoaXMuaXNGcmFnbWVudGVkKCkgPyAxMCA6IDApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUmVsaWFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFLFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9PUkRFUkVELFxuICAgICAgICAgICAgRnJhbWVSZWxpYWJpbGl0eS5SRUxJQUJMRV9TRVFVRU5DRUQsXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX1dJVEhfQUNLX1JFQ0VJUFQsXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRURfV0lUSF9BQ0tfUkVDRUlQVFxuICAgICAgICBdLmluY2x1ZGVzKHRoaXMucmVsaWFiaWxpdHkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NlcXVlbmNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFtGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX1NFUVVFTkNFRCwgRnJhbWVSZWxpYWJpbGl0eS5VTlJFTElBQkxFX1NFUVVFTkNFRF0uaW5jbHVkZXModGhpcy5yZWxpYWJpbGl0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzT3JkZXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIEZyYW1lUmVsaWFiaWxpdHkuVU5SRUxJQUJMRV9TRVFVRU5DRUQsXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRUQsXG4gICAgICAgICAgICBGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX1NFUVVFTkNFRCxcbiAgICAgICAgICAgIEZyYW1lUmVsaWFiaWxpdHkuUkVMSUFCTEVfT1JERVJFRF9XSVRIX0FDS19SRUNFSVBUXG4gICAgICAgIF0uaW5jbHVkZXModGhpcy5yZWxpYWJpbGl0eSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzT3JkZXJlZEV4Y2x1c2l2ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIFtGcmFtZVJlbGlhYmlsaXR5LlJFTElBQkxFX09SREVSRUQsIEZyYW1lUmVsaWFiaWxpdHkuUkVMSUFCTEVfT1JERVJFRF9XSVRIX0FDS19SRUNFSVBUXS5pbmNsdWRlcyhcbiAgICAgICAgICAgIHRoaXMucmVsaWFiaWxpdHlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNGcmFnbWVudGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mcmFnbWVudFNpemUgPiAwO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQU9PLE1BQU0scUJBQXdCLEdBQUEsR0FBQTtBQUVyQyxNQUFxQixLQUFNLENBQUE7QUFBQSxFQUNoQixjQUFjLGdCQUFpQixDQUFBLFVBQUEsQ0FBQTtBQUFBLEVBRS9CLGFBQStCLEdBQUEsSUFBQSxDQUFBO0FBQUEsRUFFL0IsYUFBK0IsR0FBQSxJQUFBLENBQUE7QUFBQSxFQUUvQixVQUE0QixHQUFBLElBQUEsQ0FBQTtBQUFBLEVBQzVCLFlBQUEsQ0FBQTtBQUFBLEVBRUEsWUFBZSxHQUFBLENBQUEsQ0FBQTtBQUFBLEVBQ2YsVUFBQSxDQUFBO0FBQUEsRUFDQSxhQUFBLENBQUE7QUFBQSxFQUVBLE9BQUEsQ0FBQTtBQUFBLEVBRUEsV0FBVyxNQUE2QixFQUFBO0FBQzNDLElBQU0sTUFBQSxNQUFBLEdBQVMsT0FBTyxRQUFTLEVBQUEsQ0FBQTtBQUMvQixJQUFLLElBQUEsQ0FBQSxXQUFBLEdBQUEsQ0FBZSxTQUFTLEdBQVMsS0FBQSxDQUFBLENBQUE7QUFHdEMsSUFBQSxNQUFNLFNBQVMsSUFBSyxDQUFBLElBQUEsQ0FBSyxNQUFPLENBQUEsU0FBQSxLQUFjLENBQUMsQ0FBQSxDQUFBO0FBRS9DLElBQUksSUFBQSxJQUFBLENBQUssWUFBYyxFQUFBO0FBQ25CLE1BQUssSUFBQSxDQUFBLGFBQUEsR0FBZ0IsT0FBTyxXQUFZLEVBQUEsQ0FBQTtBQUFBLEtBQzVDO0FBRUEsSUFBSSxJQUFBLElBQUEsQ0FBSyxhQUFlLEVBQUE7QUFDcEIsTUFBSyxJQUFBLENBQUEsYUFBQSxHQUFnQixPQUFPLFdBQVksRUFBQSxDQUFBO0FBQUEsS0FDNUM7QUFFQSxJQUFJLElBQUEsSUFBQSxD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
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
var FrameReliability = /* @__PURE__ */ ((FrameReliability2) => {
|
|
6
|
+
FrameReliability2[FrameReliability2["UNRELIABLE"] = 0] = "UNRELIABLE";
|
|
7
|
+
FrameReliability2[FrameReliability2["UNRELIABLE_SEQUENCED"] = 1] = "UNRELIABLE_SEQUENCED";
|
|
8
|
+
FrameReliability2[FrameReliability2["RELIABLE"] = 2] = "RELIABLE";
|
|
9
|
+
FrameReliability2[FrameReliability2["RELIABLE_ORDERED"] = 3] = "RELIABLE_ORDERED";
|
|
10
|
+
FrameReliability2[FrameReliability2["RELIABLE_SEQUENCED"] = 4] = "RELIABLE_SEQUENCED";
|
|
11
|
+
FrameReliability2[FrameReliability2["UNREALIABLE_WITH_ACK_RECEIPT"] = 5] = "UNREALIABLE_WITH_ACK_RECEIPT";
|
|
12
|
+
FrameReliability2[FrameReliability2["RELIABLE_WITH_ACK_RECEIPT"] = 6] = "RELIABLE_WITH_ACK_RECEIPT";
|
|
13
|
+
FrameReliability2[FrameReliability2["RELIABLE_ORDERED_WITH_ACK_RECEIPT"] = 7] = "RELIABLE_ORDERED_WITH_ACK_RECEIPT";
|
|
14
|
+
return FrameReliability2;
|
|
15
|
+
})(FrameReliability || {});
|
|
16
|
+
|
|
17
|
+
exports.FrameReliability = FrameReliability;
|
|
18
|
+
exports.default = FrameReliability;
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWVSZWxpYWJpbGl0eS5janMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9GcmFtZVJlbGlhYmlsaXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHA6Ly93d3cuamVua2luc3NvZnR3YXJlLmNvbS9yYWtuZXQvbWFudWFsL3JlbGlhYmlsaXR5dHlwZXMuaHRtbFxuZXhwb3J0IGVudW0gRnJhbWVSZWxpYWJpbGl0eSB7XG4gICAgVU5SRUxJQUJMRSxcbiAgICBVTlJFTElBQkxFX1NFUVVFTkNFRCxcbiAgICBSRUxJQUJMRSxcbiAgICBSRUxJQUJMRV9PUkRFUkVELFxuICAgIFJFTElBQkxFX1NFUVVFTkNFRCxcbiAgICBVTlJFQUxJQUJMRV9XSVRIX0FDS19SRUNFSVBULFxuICAgIFJFTElBQkxFX1dJVEhfQUNLX1JFQ0VJUFQsXG4gICAgUkVMSUFCTEVfT1JERVJFRF9XSVRIX0FDS19SRUNFSVBUXG59XG5leHBvcnQgZGVmYXVsdCBGcmFtZVJlbGlhYmlsaXR5O1xuIl0sIm5hbWVzIjpbIkZyYW1lUmVsaWFiaWxpdHkiXSwibWFwcGluZ3MiOiI7Ozs7QUFDWSxJQUFBLGdCQUFBLHFCQUFBQSxpQkFBTCxLQUFBO0FBQ0gsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLFlBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLFlBQUEsQ0FBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxzQkFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsc0JBQUEsQ0FBQTtBQUNBLEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxVQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxVQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsa0JBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLGtCQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsb0JBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLG9CQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsOEJBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLDhCQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsMkJBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLDJCQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsbUNBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLG1DQUFBLENBQUE7QUFSUSxFQUFBQSxPQUFBQSxpQkFBQUEsQ0FBQUE7QUFBQSxDQUFBLEVBQUEsZ0JBQUEsSUFBQSxFQUFBOzs7OzsifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var FrameReliability = /* @__PURE__ */ ((FrameReliability2) => {
|
|
2
|
+
FrameReliability2[FrameReliability2["UNRELIABLE"] = 0] = "UNRELIABLE";
|
|
3
|
+
FrameReliability2[FrameReliability2["UNRELIABLE_SEQUENCED"] = 1] = "UNRELIABLE_SEQUENCED";
|
|
4
|
+
FrameReliability2[FrameReliability2["RELIABLE"] = 2] = "RELIABLE";
|
|
5
|
+
FrameReliability2[FrameReliability2["RELIABLE_ORDERED"] = 3] = "RELIABLE_ORDERED";
|
|
6
|
+
FrameReliability2[FrameReliability2["RELIABLE_SEQUENCED"] = 4] = "RELIABLE_SEQUENCED";
|
|
7
|
+
FrameReliability2[FrameReliability2["UNREALIABLE_WITH_ACK_RECEIPT"] = 5] = "UNREALIABLE_WITH_ACK_RECEIPT";
|
|
8
|
+
FrameReliability2[FrameReliability2["RELIABLE_WITH_ACK_RECEIPT"] = 6] = "RELIABLE_WITH_ACK_RECEIPT";
|
|
9
|
+
FrameReliability2[FrameReliability2["RELIABLE_ORDERED_WITH_ACK_RECEIPT"] = 7] = "RELIABLE_ORDERED_WITH_ACK_RECEIPT";
|
|
10
|
+
return FrameReliability2;
|
|
11
|
+
})(FrameReliability || {});
|
|
12
|
+
|
|
13
|
+
export { FrameReliability, FrameReliability as default };
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWVSZWxpYWJpbGl0eS5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3RvY29sL0ZyYW1lUmVsaWFiaWxpdHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cDovL3d3dy5qZW5raW5zc29mdHdhcmUuY29tL3Jha25ldC9tYW51YWwvcmVsaWFiaWxpdHl0eXBlcy5odG1sXG5leHBvcnQgZW51bSBGcmFtZVJlbGlhYmlsaXR5IHtcbiAgICBVTlJFTElBQkxFLFxuICAgIFVOUkVMSUFCTEVfU0VRVUVOQ0VELFxuICAgIFJFTElBQkxFLFxuICAgIFJFTElBQkxFX09SREVSRUQsXG4gICAgUkVMSUFCTEVfU0VRVUVOQ0VELFxuICAgIFVOUkVBTElBQkxFX1dJVEhfQUNLX1JFQ0VJUFQsXG4gICAgUkVMSUFCTEVfV0lUSF9BQ0tfUkVDRUlQVCxcbiAgICBSRUxJQUJMRV9PUkRFUkVEX1dJVEhfQUNLX1JFQ0VJUFRcbn1cbmV4cG9ydCBkZWZhdWx0IEZyYW1lUmVsaWFiaWxpdHk7XG4iXSwibmFtZXMiOlsiRnJhbWVSZWxpYWJpbGl0eSJdLCJtYXBwaW5ncyI6IkFBQ1ksSUFBQSxnQkFBQSxxQkFBQUEsaUJBQUwsS0FBQTtBQUNILEVBQUFBLGlCQUFBLENBQUEsaUJBQUEsQ0FBQSxZQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxZQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsc0JBQUEsQ0FBQSxHQUFBLENBQUEsQ0FBQSxHQUFBLHNCQUFBLENBQUE7QUFDQSxFQUFBQSxpQkFBQSxDQUFBLGlCQUFBLENBQUEsVUFBQSxDQUFBLEdBQUEsQ0FBQSxDQUFBLEdBQUEsVUFBQSxDQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLGtCQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxrQkFBQSxDQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLG9CQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxvQkFBQSxDQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLDhCQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSw4QkFBQSxDQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLDJCQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSwyQkFBQSxDQUFBO0FBQ0EsRUFBQUEsaUJBQUEsQ0FBQSxpQkFBQSxDQUFBLG1DQUFBLENBQUEsR0FBQSxDQUFBLENBQUEsR0FBQSxtQ0FBQSxDQUFBO0FBUlEsRUFBQUEsT0FBQUEsaUJBQUFBLENBQUFBO0FBQUEsQ0FBQSxFQUFBLGdCQUFBLElBQUEsRUFBQTs7OzsifQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const protocol_BitFlags = require('./BitFlags.cjs.js');
|
|
6
|
+
const protocol_Frame = require('./Frame.cjs.js');
|
|
7
|
+
const protocol_Packet = require('./Packet.cjs.js');
|
|
8
|
+
require('@jsprismarine/jsbinaryutils');
|
|
9
|
+
require('./FrameReliability.cjs.js');
|
|
10
|
+
require('assert');
|
|
11
|
+
require('../utils/InetAddress.cjs.js');
|
|
12
|
+
|
|
13
|
+
const DATAGRAM_HEADER_BYTE_LENGTH = 6;
|
|
14
|
+
class FrameSet extends protocol_Packet.default {
|
|
15
|
+
constructor(buffer) {
|
|
16
|
+
super(protocol_BitFlags.BitFlags.VALID, buffer);
|
|
17
|
+
}
|
|
18
|
+
sequenceNumber;
|
|
19
|
+
frames = [];
|
|
20
|
+
decodePayload() {
|
|
21
|
+
this.sequenceNumber = this.readUnsignedTriadLE();
|
|
22
|
+
do {
|
|
23
|
+
this.frames.push(new protocol_Frame.default().fromBinary(this));
|
|
24
|
+
} while (!this.feof());
|
|
25
|
+
}
|
|
26
|
+
encodePayload() {
|
|
27
|
+
this.writeUnsignedTriadLE(this.sequenceNumber);
|
|
28
|
+
for (const frame of this.frames) {
|
|
29
|
+
this.write(frame.toBinary().getBuffer());
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// TODO: for continuos flag
|
|
33
|
+
// public addFrame(): boolean {}
|
|
34
|
+
getByteLength() {
|
|
35
|
+
let length = 4;
|
|
36
|
+
for (const frame of this.frames) {
|
|
37
|
+
length += frame.getByteLength();
|
|
38
|
+
}
|
|
39
|
+
return length;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
exports.DATAGRAM_HEADER_BYTE_LENGTH = DATAGRAM_HEADER_BYTE_LENGTH;
|
|
44
|
+
exports.default = FrameSet;
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWVTZXQuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdG9jb2wvRnJhbWVTZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpdEZsYWdzIGZyb20gJy4vQml0RmxhZ3MnO1xuaW1wb3J0IEZyYW1lIGZyb20gJy4vRnJhbWUnO1xuaW1wb3J0IFBhY2tldCBmcm9tICcuL1BhY2tldCc7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9va2FyY2hpdmUvUmFrTmV0L2Jsb2IvMWExNjk4OTVhOTAwYzlmYzQ4NDFjNTU2ZTE2NTE0MTgyYjc1ZmFmOC9Tb3VyY2UvUmVsaWFiaWxpdHlMYXllci5jcHAjTDEzM1xuZXhwb3J0IGNvbnN0IERBVEFHUkFNX0hFQURFUl9CWVRFX0xFTkdUSCA9IDY7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZyYW1lU2V0IGV4dGVuZHMgUGFja2V0IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoYnVmZmVyPzogQnVmZmVyKSB7XG4gICAgICAgIHN1cGVyKEJpdEZsYWdzLlZBTElELCBidWZmZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXF1ZW5jZU51bWJlciE6IG51bWJlcjtcbiAgICBwdWJsaWMgZnJhbWVzOiBGcmFtZVtdID0gW107XG5cbiAgICBwdWJsaWMgZGVjb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXF1ZW5jZU51bWJlciA9IHRoaXMucmVhZFVuc2lnbmVkVHJpYWRMRSgpO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICB0aGlzLmZyYW1lcy5wdXNoKG5ldyBGcmFtZSgpLmZyb21CaW5hcnkodGhpcykpO1xuICAgICAgICB9IHdoaWxlICghdGhpcy5mZW9mKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRUcmlhZExFKHRoaXMuc2VxdWVuY2VOdW1iZXIpO1xuICAgICAgICBmb3IgKGNvbnN0IGZyYW1lIG9mIHRoaXMuZnJhbWVzKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlKGZyYW1lLnRvQmluYXJ5KCkuZ2V0QnVmZmVyKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZm9yIGNvbnRpbnVvcyBmbGFnXG4gICAgLy8gcHVibGljIGFkZEZyYW1lKCk6IGJvb2xlYW4ge31cblxuICAgIHB1YmxpYyBnZXRCeXRlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIGxldCBsZW5ndGggPSA0OyAvLyBoZWFkZXIgKDEgYnl0ZSkgKyB0cmlhZCAoMyBieXRlcylcbiAgICAgICAgZm9yIChjb25zdCBmcmFtZSBvZiB0aGlzLmZyYW1lcykge1xuICAgICAgICAgICAgbGVuZ3RoICs9IGZyYW1lLmdldEJ5dGVMZW5ndGgoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGVuZ3RoO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJQYWNrZXQiLCJCaXRGbGFncyIsIkZyYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFLTyxNQUFNLDJCQUE4QixHQUFBLEVBQUE7QUFFM0MsTUFBcUIsaUJBQWlCQSx1QkFBTyxDQUFBO0FBQUEsRUFDbEMsWUFBWSxNQUFpQixFQUFBO0FBQ2hDLElBQU0sS0FBQSxDQUFBQywwQkFBQSxDQUFTLE9BQU8sTUFBTSxDQUFBLENBQUE7QUFBQSxHQUNoQztBQUFBLEVBRU8sY0FBQSxDQUFBO0FBQUEsRUFDQSxTQUFrQixFQUFDLENBQUE7QUFBQSxFQUVuQixhQUFzQixHQUFBO0FBQ3pCLElBQUssSUFBQSxDQUFBLGNBQUEsR0FBaUIsS0FBSyxtQkFBb0IsRUFBQSxDQUFBO0FBQy9DLElBQUcsR0FBQTtBQUNDLE1BQUEsSUFBQSxDQUFLLE9BQU8sSUFBSyxDQUFBLElBQUlDLHdCQUFRLENBQUEsVUFBQSxDQUFXLElBQUksQ0FBQyxDQUFBLENBQUE7QUFBQSxLQUNqRCxRQUFTLENBQUMsSUFBQSxDQUFLLElBQUssRUFBQSxFQUFBO0FBQUEsR0FDeEI7QUFBQSxFQUVPLGFBQXNCLEdBQUE7QUFDekIsSUFBSyxJQUFBLENBQUEsb0JBQUEsQ0FBcUIsS0FBSyxjQUFjLENBQUEsQ0FBQTtBQUM3QyxJQUFXLEtBQUEsTUFBQSxLQUFBLElBQVMsS0FBSyxNQUFRLEVBQUE7QUFDN0IsTUFBQSxJQUFBLENBQUssS0FBTSxDQUFBLEtBQUEsQ0FBTSxRQUFTLEVBQUEsQ0FBRSxXQUFXLENBQUEsQ0FBQTtBQUFBLEtBQzNDO0FBQUEsR0FDSjtBQUFBO0FBQUE7QUFBQSxFQUtPLGFBQXdCLEdBQUE7QUFDM0IsSUFBQSxJQUFJLE1BQVMsR0FBQSxDQUFBLENBQUE7QUFDYixJQUFXLEtBQUEsTUFBQSxLQUFBLElBQVMsS0FBSyxNQUFRLEVBQUE7QUFDN0IsTUFBQSxNQUFBLElBQVUsTUFBTSxhQUFjLEVBQUEsQ0FBQTtBQUFBLEtBQ2xDO0FBQ0EsSUFBTyxPQUFBLE1BQUEsQ0FBQTtBQUFBLEdBQ1g7QUFDSjs7Ozs7In0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/// <reference types="node"
|
|
2
|
-
import Frame from './Frame
|
|
3
|
-
import Packet from './Packet
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import Frame from './Frame';
|
|
3
|
+
import Packet from './Packet';
|
|
4
4
|
export declare const DATAGRAM_HEADER_BYTE_LENGTH = 6;
|
|
5
5
|
export default class FrameSet extends Packet {
|
|
6
6
|
constructor(buffer?: Buffer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameSet.d.ts","sourceRoot":"","sources":["../../src/protocol/FrameSet.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"FrameSet.d.ts","sourceRoot":"","sources":["../../src/protocol/FrameSet.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,MAAM;gBACrB,MAAM,CAAC,EAAE,MAAM;IAI3B,cAAc,EAAG,MAAM,CAAC;IACxB,MAAM,EAAE,KAAK,EAAE,CAAM;IAErB,aAAa,IAAI,IAAI;IAOrB,aAAa,IAAI,IAAI;IAUrB,aAAa,IAAI,MAAM;CAOjC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BitFlags } from './BitFlags.es.js';
|
|
2
|
+
import Frame from './Frame.es.js';
|
|
3
|
+
import Packet from './Packet.es.js';
|
|
4
|
+
import '@jsprismarine/jsbinaryutils';
|
|
5
|
+
import './FrameReliability.es.js';
|
|
6
|
+
import 'assert';
|
|
7
|
+
import '../utils/InetAddress.es.js';
|
|
8
|
+
|
|
9
|
+
const DATAGRAM_HEADER_BYTE_LENGTH = 6;
|
|
10
|
+
class FrameSet extends Packet {
|
|
11
|
+
constructor(buffer) {
|
|
12
|
+
super(BitFlags.VALID, buffer);
|
|
13
|
+
}
|
|
14
|
+
sequenceNumber;
|
|
15
|
+
frames = [];
|
|
16
|
+
decodePayload() {
|
|
17
|
+
this.sequenceNumber = this.readUnsignedTriadLE();
|
|
18
|
+
do {
|
|
19
|
+
this.frames.push(new Frame().fromBinary(this));
|
|
20
|
+
} while (!this.feof());
|
|
21
|
+
}
|
|
22
|
+
encodePayload() {
|
|
23
|
+
this.writeUnsignedTriadLE(this.sequenceNumber);
|
|
24
|
+
for (const frame of this.frames) {
|
|
25
|
+
this.write(frame.toBinary().getBuffer());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// TODO: for continuos flag
|
|
29
|
+
// public addFrame(): boolean {}
|
|
30
|
+
getByteLength() {
|
|
31
|
+
let length = 4;
|
|
32
|
+
for (const frame of this.frames) {
|
|
33
|
+
length += frame.getByteLength();
|
|
34
|
+
}
|
|
35
|
+
return length;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { DATAGRAM_HEADER_BYTE_LENGTH, FrameSet as default };
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWVTZXQuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm90b2NvbC9GcmFtZVNldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQml0RmxhZ3MgZnJvbSAnLi9CaXRGbGFncyc7XG5pbXBvcnQgRnJhbWUgZnJvbSAnLi9GcmFtZSc7XG5pbXBvcnQgUGFja2V0IGZyb20gJy4vUGFja2V0JztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rYXJjaGl2ZS9SYWtOZXQvYmxvYi8xYTE2OTg5NWE5MDBjOWZjNDg0MWM1NTZlMTY1MTQxODJiNzVmYWY4L1NvdXJjZS9SZWxpYWJpbGl0eUxheWVyLmNwcCNMMTMzXG5leHBvcnQgY29uc3QgREFUQUdSQU1fSEVBREVSX0JZVEVfTEVOR1RIID0gNjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnJhbWVTZXQgZXh0ZW5kcyBQYWNrZXQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihidWZmZXI/OiBCdWZmZXIpIHtcbiAgICAgICAgc3VwZXIoQml0RmxhZ3MuVkFMSUQsIGJ1ZmZlcik7XG4gICAgfVxuXG4gICAgcHVibGljIHNlcXVlbmNlTnVtYmVyITogbnVtYmVyO1xuICAgIHB1YmxpYyBmcmFtZXM6IEZyYW1lW10gPSBbXTtcblxuICAgIHB1YmxpYyBkZWNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcXVlbmNlTnVtYmVyID0gdGhpcy5yZWFkVW5zaWduZWRUcmlhZExFKCk7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIHRoaXMuZnJhbWVzLnB1c2gobmV3IEZyYW1lKCkuZnJvbUJpbmFyeSh0aGlzKSk7XG4gICAgICAgIH0gd2hpbGUgKCF0aGlzLmZlb2YoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGVuY29kZVBheWxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud3JpdGVVbnNpZ25lZFRyaWFkTEUodGhpcy5zZXF1ZW5jZU51bWJlcik7XG4gICAgICAgIGZvciAoY29uc3QgZnJhbWUgb2YgdGhpcy5mcmFtZXMpIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGUoZnJhbWUudG9CaW5hcnkoKS5nZXRCdWZmZXIoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmb3IgY29udGludW9zIGZsYWdcbiAgICAvLyBwdWJsaWMgYWRkRnJhbWUoKTogYm9vbGVhbiB7fVxuXG4gICAgcHVibGljIGdldEJ5dGVMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGxlbmd0aCA9IDQ7IC8vIGhlYWRlciAoMSBieXRlKSArIHRyaWFkICgzIGJ5dGVzKVxuICAgICAgICBmb3IgKGNvbnN0IGZyYW1lIG9mIHRoaXMuZnJhbWVzKSB7XG4gICAgICAgICAgICBsZW5ndGggKz0gZnJhbWUuZ2V0Qnl0ZUxlbmd0aCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsZW5ndGg7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBS08sTUFBTSwyQkFBOEIsR0FBQSxFQUFBO0FBRTNDLE1BQXFCLGlCQUFpQixNQUFPLENBQUE7QUFBQSxFQUNsQyxZQUFZLE1BQWlCLEVBQUE7QUFDaEMsSUFBTSxLQUFBLENBQUEsUUFBQSxDQUFTLE9BQU8sTUFBTSxDQUFBLENBQUE7QUFBQSxHQUNoQztBQUFBLEVBRU8sY0FBQSxDQUFBO0FBQUEsRUFDQSxTQUFrQixFQUFDLENBQUE7QUFBQSxFQUVuQixhQUFzQixHQUFBO0FBQ3pCLElBQUssSUFBQSxDQUFBLGNBQUEsR0FBaUIsS0FBSyxtQkFBb0IsRUFBQSxDQUFBO0FBQy9DLElBQUcsR0FBQTtBQUNDLE1BQUEsSUFBQSxDQUFLLE9BQU8sSUFBSyxDQUFBLElBQUksT0FBUSxDQUFBLFVBQUEsQ0FBVyxJQUFJLENBQUMsQ0FBQSxDQUFBO0FBQUEsS0FDakQsUUFBUyxDQUFDLElBQUEsQ0FBSyxJQUFLLEVBQUEsRUFBQTtBQUFBLEdBQ3hCO0FBQUEsRUFFTyxhQUFzQixHQUFBO0FBQ3pCLElBQUssSUFBQSxDQUFBLG9CQUFBLENBQXFCLEtBQUssY0FBYyxDQUFBLENBQUE7QUFDN0MsSUFBVyxLQUFBLE1BQUEsS0FBQSxJQUFTLEtBQUssTUFBUSxFQUFBO0FBQzdCLE1BQUEsSUFBQSxDQUFLLEtBQU0sQ0FBQSxLQUFBLENBQU0sUUFBUyxFQUFBLENBQUUsV0FBVyxDQUFBLENBQUE7QUFBQSxLQUMzQztBQUFBLEdBQ0o7QUFBQTtBQUFBO0FBQUEsRUFLTyxhQUF3QixHQUFBO0FBQzNCLElBQUEsSUFBSSxNQUFTLEdBQUEsQ0FBQSxDQUFBO0FBQ2IsSUFBVyxLQUFBLE1BQUEsS0FBQSxJQUFTLEtBQUssTUFBUSxFQUFBO0FBQzdCLE1BQUEsTUFBQSxJQUFVLE1BQU0sYUFBYyxFQUFBLENBQUE7QUFBQSxLQUNsQztBQUNBLElBQU8sT0FBQSxNQUFBLENBQUE7QUFBQSxHQUNYO0FBQ0o7Ozs7In0=
|