Files
Protocol/src/main/java/org/openautonomousconnection/protocol/packets/OACPacket.java

55 lines
2.1 KiB
Java
Raw Normal View History

package org.openautonomousconnection.protocol.packets;
2025-09-19 21:27:35 +02:00
import org.openautonomousconnection.protocol.versions.ProtocolVersion;
import org.openautonomousconnection.protocol.versions.v1_0_0.beta.DNSResponseCode;
import lombok.Getter;
import dev.unlegitdqrk.unlegitlibrary.network.system.packets.Packet;
import dev.unlegitdqrk.unlegitlibrary.network.system.packets.PacketHandler;
2025-09-20 19:55:28 +02:00
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
2025-09-19 21:27:35 +02:00
public abstract class OACPacket extends Packet {
2025-09-20 19:55:28 +02:00
2025-09-19 21:27:35 +02:00
@Getter
2025-09-20 15:17:36 +02:00
private final ProtocolVersion protocolVersion;
2025-09-19 21:27:35 +02:00
2025-09-20 19:55:28 +02:00
private DNSResponseCode responseCode = DNSResponseCode.RESPONSE_NOT_REQUIRED;
2025-09-20 20:42:58 +02:00
public OACPacket(int id, ProtocolVersion protocolVersion) {
super(id);
this.protocolVersion = protocolVersion;
2025-09-20 19:55:28 +02:00
}
protected final DNSResponseCode getResponseCode() {
return responseCode;
}
2025-09-20 20:42:58 +02:00
protected final void setResponseCode(DNSResponseCode responseCode) {
this.responseCode = responseCode;
2025-09-19 21:27:35 +02:00
}
2025-09-20 19:55:28 +02:00
@Override
public final void write(PacketHandler packetHandler, ObjectOutputStream objectOutputStream) throws IOException, ClassNotFoundException {
onWrite(packetHandler, objectOutputStream);
if (protocolVersion != ProtocolVersion.PV_1_0_0_CLASSIC) objectOutputStream.writeObject(responseCode);
}
@Override
public final void read(PacketHandler packetHandler, ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException {
onRead(packetHandler, objectInputStream);
if (protocolVersion != ProtocolVersion.PV_1_0_0_CLASSIC) {
responseCode = (DNSResponseCode) objectInputStream.readObject();
onResponseCodeRead(packetHandler, objectInputStream);
}
2025-09-20 19:55:28 +02:00
}
public abstract void onWrite(PacketHandler packetHandler, ObjectOutputStream objectOutputStream) throws IOException, ClassNotFoundException;
2025-09-20 20:42:58 +02:00
2025-09-20 19:55:28 +02:00
public abstract void onRead(PacketHandler packetHandler, ObjectInputStream objectInputStream) throws IOException, ClassNotFoundException;
2025-09-20 20:42:58 +02:00
protected void onResponseCodeRead(PacketHandler packetHandler, ObjectInputStream objectInputStream) {
}
2025-09-19 21:27:35 +02:00
}