implement multiplayer direct connect, implement network manager, implement handshake and login packets, implement ByteBuf, implement RSA and AES encryption, bump version to 1.1.0
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
import Packet from "../../../Packet.js";
|
||||
|
||||
export default class HandshakePacket extends Packet {
|
||||
|
||||
constructor(version, nextState) {
|
||||
super();
|
||||
|
||||
this.version = version;
|
||||
this.nextState = nextState;
|
||||
}
|
||||
|
||||
write(buffer) {
|
||||
buffer.writeVarInt(this.version); // Protocol version
|
||||
buffer.writeString("localhost"); // Server address
|
||||
buffer.writeShort(25565); // Server port
|
||||
buffer.writeVarInt(this.nextState); // Next state
|
||||
}
|
||||
|
||||
read(buffer) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import Packet from "../../../Packet.js";
|
||||
import CryptManager from "../../../util/CryptManager.js";
|
||||
|
||||
export default class EncryptionResponsePacket extends Packet {
|
||||
|
||||
constructor(secretKey, publicKey, verifyToken) {
|
||||
super();
|
||||
|
||||
this.secretKeyEncrypted = CryptManager.encryptRSA(publicKey, secretKey);
|
||||
this.verifyTokenEncrypted = CryptManager.encryptRSA(publicKey, verifyToken);
|
||||
}
|
||||
|
||||
write(buffer) {
|
||||
buffer.writeByteArray(this.secretKeyEncrypted);
|
||||
buffer.writeByteArray(this.verifyTokenEncrypted);
|
||||
}
|
||||
|
||||
read(buffer) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import Packet from "../../../Packet.js";
|
||||
|
||||
export default class LoginStartPacket extends Packet {
|
||||
|
||||
constructor(username) {
|
||||
super();
|
||||
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
write(buffer) {
|
||||
buffer.writeString(this.username);
|
||||
}
|
||||
|
||||
read(buffer) {
|
||||
this.username = buffer.readString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import Packet from "../../../Packet.js";
|
||||
|
||||
export default class EncryptionRequestPacket extends Packet {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
write(buffer) {
|
||||
|
||||
}
|
||||
|
||||
read(buffer) {
|
||||
this.serverId = buffer.readString();
|
||||
this.publicKey = buffer.readByteArray();
|
||||
this.verifyToken = buffer.readByteArray();
|
||||
}
|
||||
|
||||
handle(handler) {
|
||||
handler.handleEncryptionRequest(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import Packet from "../../../Packet.js";
|
||||
import {format} from "../../../../../../../../../libraries/chat.js";
|
||||
|
||||
export default class LoginDisconnectPacket extends Packet {
|
||||
|
||||
constructor(message) {
|
||||
super();
|
||||
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
write(buffer) {
|
||||
buffer.writeString(this.message);
|
||||
}
|
||||
|
||||
read(buffer) {
|
||||
this.message = format(JSON.parse(buffer.readString()));
|
||||
}
|
||||
|
||||
handle(handler) {
|
||||
handler.handleLoginDisconnect(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import Packet from "../../../Packet.js";
|
||||
|
||||
export default class StatusQueryPacket extends Packet {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
write(buffer) {
|
||||
}
|
||||
|
||||
read(buffer) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import Packet from "../../../Packet.js";
|
||||
|
||||
export default class StatusResponsePacket extends Packet {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
write(buffer) {
|
||||
|
||||
}
|
||||
|
||||
read(buffer) {
|
||||
this.object = JSON.parse(buffer.readString());
|
||||
}
|
||||
|
||||
handle(packetHandler) {
|
||||
packetHandler.handleStatusResponse(this)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user