Улучшенная типизация пакетов

This commit is contained in:
RoyceDa
2026-02-04 06:00:05 +02:00
parent bb413a7976
commit 10f257297d
3 changed files with 12 additions and 12 deletions

View File

@@ -10,13 +10,6 @@ public abstract class Packet {
public int packetId; public int packetId;
public PacketManager packetManager; public PacketManager packetManager;
/**
* Записывает данные пакета в поток. Исползуется при отправке
*
* @return Поток с записанными данными пакета.
*/
public abstract Stream write();
/** /**
* Читает данные пакета из потока. Используется при получении * Читает данные пакета из потока. Используется при получении
* *
@@ -24,4 +17,11 @@ public abstract class Packet {
*/ */
public abstract void read(Stream stream); public abstract void read(Stream stream);
/**
* Записывает данные пакета в поток. Исползуется при отправке
*
* @return Поток с записанными данными пакета.
*/
public abstract Stream write();
} }

View File

@@ -7,7 +7,7 @@ import io.orprotocol.client.Client;
/** /**
* Базовый класс для обработчиков пакетов. * Базовый класс для обработчиков пакетов.
*/ */
public abstract class PacketExecutor { public abstract class PacketExecutor<T> {
public Settings settings; public Settings settings;
/** /**
@@ -22,5 +22,5 @@ public abstract class PacketExecutor {
* @param packet Пакет, полученный от клиента. * @param packet Пакет, полученный от клиента.
* @param client Клиент, отправивший пакет. * @param client Клиент, отправивший пакет.
*/ */
public abstract void onPacketReceived(Packet packet, Client client) throws Exception, ProtocolException; public abstract void onPacketReceived(T packet, Client client) throws Exception, ProtocolException;
} }

View File

@@ -8,7 +8,7 @@ import java.util.HashMap;
public class PacketManager { public class PacketManager {
private HashMap<Integer, Class<? extends Packet>> packets; private HashMap<Integer, Class<? extends Packet>> packets;
private HashMap<Integer, PacketExecutor> executors; private HashMap<Integer, PacketExecutor<?>> executors;
public PacketManager() { public PacketManager() {
this.packets = new HashMap<>(); this.packets = new HashMap<>();
@@ -46,7 +46,7 @@ public class PacketManager {
* Возвращает зарегистрированные исполнители пакетов. * Возвращает зарегистрированные исполнители пакетов.
* @return Хэш-карта зарегистрированных исполнителей пакетов. * @return Хэш-карта зарегистрированных исполнителей пакетов.
*/ */
public HashMap<Integer, PacketExecutor> getExecutors() { public HashMap<Integer, PacketExecutor<?>> getExecutors() {
return this.executors; return this.executors;
} }
@@ -73,7 +73,7 @@ public class PacketManager {
* @param packetId ID пакета * @param packetId ID пакета
* @param executor Обработчик пакета * @param executor Обработчик пакета
*/ */
public void registerExecutor(int packetId, PacketExecutor executor) { public void registerExecutor(int packetId, PacketExecutor<?> executor) {
if (this.executors == null) { if (this.executors == null) {
this.executors = new HashMap<>(); this.executors = new HashMap<>();
} }