Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-10-08 11:10:06 +02:00
Allow custom PacketMappings implementation in AbstractProtocol
Dieser Commit ist enthalten in:
Ursprung
35263e36ff
Commit
3e2ee37829
@ -64,12 +64,13 @@ public abstract class AbstractProtocol<CU extends ClientboundPacketType, CM exte
|
||||
protected final Class<CM> mappedClientboundPacketType;
|
||||
protected final Class<SM> mappedServerboundPacketType;
|
||||
protected final Class<SU> unmappedServerboundPacketType;
|
||||
private final PacketTypesProvider<CU, CM, SM, SU> packetTypesProvider;
|
||||
private final PacketMappings serverboundMappings = PacketMappings.arrayMappings();
|
||||
private final PacketMappings clientboundMappings = PacketMappings.arrayMappings();
|
||||
protected final PacketTypesProvider<CU, CM, SM, SU> packetTypesProvider;
|
||||
protected final PacketMappings clientboundMappings;
|
||||
protected final PacketMappings serverboundMappings;
|
||||
private final Map<Class<?>, Object> storedObjects = new HashMap<>();
|
||||
private boolean initialized;
|
||||
|
||||
@Deprecated
|
||||
protected AbstractProtocol() {
|
||||
this(null, null, null, null);
|
||||
}
|
||||
@ -84,6 +85,8 @@ public abstract class AbstractProtocol<CU extends ClientboundPacketType, CM exte
|
||||
this.mappedServerboundPacketType = mappedServerboundPacketType;
|
||||
this.unmappedServerboundPacketType = unmappedServerboundPacketType;
|
||||
this.packetTypesProvider = createPacketTypesProvider();
|
||||
this.clientboundMappings = createClientboundPacketMappings();
|
||||
this.serverboundMappings = createServerboundPacketMappings();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -188,6 +191,14 @@ public abstract class AbstractProtocol<CU extends ClientboundPacketType, CM exte
|
||||
);
|
||||
}
|
||||
|
||||
protected PacketMappings createClientboundPacketMappings() {
|
||||
return PacketMappings.arrayMappings();
|
||||
}
|
||||
|
||||
protected PacketMappings createServerboundPacketMappings() {
|
||||
return PacketMappings.arrayMappings();
|
||||
}
|
||||
|
||||
private <P extends PacketType> Map<State, PacketTypeMap<P>> packetTypeMap(Class<P> packetTypeClass) {
|
||||
if (packetTypeClass != null) {
|
||||
Map<State, PacketTypeMap<P>> map = new EnumMap<>(State.class);
|
||||
|
@ -22,6 +22,15 @@
|
||||
*/
|
||||
package com.viaversion.viaversion.api.protocol;
|
||||
|
||||
/**
|
||||
* A simple protocol which does not have any packet types.
|
||||
* <p>
|
||||
* {@link AbstractProtocol} should be preferred over this class in most cases.
|
||||
*/
|
||||
public abstract class AbstractSimpleProtocol extends AbstractProtocol<SimpleProtocol.DummyPacketTypes, SimpleProtocol.DummyPacketTypes,
|
||||
SimpleProtocol.DummyPacketTypes, SimpleProtocol.DummyPacketTypes> implements SimpleProtocol {
|
||||
|
||||
protected AbstractSimpleProtocol() {
|
||||
super(null, null, null, null);
|
||||
}
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ public interface SimpleProtocol extends Protocol<SimpleProtocol.DummyPacketTypes
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return ordinal();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -22,4 +22,8 @@ import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ClientboundPacke
|
||||
import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ServerboundPackets1_14;
|
||||
|
||||
public class Protocol1_14_2To1_14_1 extends AbstractProtocol<ClientboundPackets1_14, ClientboundPackets1_14, ServerboundPackets1_14, ServerboundPackets1_14> {
|
||||
|
||||
public Protocol1_14_2To1_14_1() {
|
||||
super(ClientboundPackets1_14.class, ClientboundPackets1_14.class, ServerboundPackets1_14.class, ServerboundPackets1_14.class);
|
||||
}
|
||||
}
|
||||
|
@ -22,4 +22,8 @@ import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ServerboundPacke
|
||||
import com.viaversion.viaversion.protocols.protocol1_15to1_14_4.ClientboundPackets1_15;
|
||||
|
||||
public class Protocol1_15_1To1_15 extends AbstractProtocol<ClientboundPackets1_15, ClientboundPackets1_15, ServerboundPackets1_14, ServerboundPackets1_14> {
|
||||
|
||||
public Protocol1_15_1To1_15() {
|
||||
super(ClientboundPackets1_15.class, ClientboundPackets1_15.class, ServerboundPackets1_14.class, ServerboundPackets1_14.class);
|
||||
}
|
||||
}
|
||||
|
@ -22,4 +22,8 @@ import com.viaversion.viaversion.protocols.protocol1_14to1_13_2.ServerboundPacke
|
||||
import com.viaversion.viaversion.protocols.protocol1_15to1_14_4.ClientboundPackets1_15;
|
||||
|
||||
public class Protocol1_15_2To1_15_1 extends AbstractProtocol<ClientboundPackets1_15, ClientboundPackets1_15, ServerboundPackets1_14, ServerboundPackets1_14> {
|
||||
|
||||
public Protocol1_15_2To1_15_1() {
|
||||
super(ClientboundPackets1_15.class, ClientboundPackets1_15.class, ServerboundPackets1_14.class, ServerboundPackets1_14.class);
|
||||
}
|
||||
}
|
||||
|
@ -22,4 +22,8 @@ import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.ClientboundPacke
|
||||
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.ServerboundPackets1_16;
|
||||
|
||||
public class Protocol1_16_1To1_16 extends AbstractProtocol<ClientboundPackets1_16, ClientboundPackets1_16, ServerboundPackets1_16, ServerboundPackets1_16> {
|
||||
|
||||
public Protocol1_16_1To1_16() {
|
||||
super(ClientboundPackets1_16.class, ClientboundPackets1_16.class, ServerboundPackets1_16.class, ServerboundPackets1_16.class);
|
||||
}
|
||||
}
|
||||
|
@ -22,4 +22,8 @@ import com.viaversion.viaversion.protocols.protocol1_16_2to1_16_1.ClientboundPac
|
||||
import com.viaversion.viaversion.protocols.protocol1_16_2to1_16_1.ServerboundPackets1_16_2;
|
||||
|
||||
public class Protocol1_16_3To1_16_2 extends AbstractProtocol<ClientboundPackets1_16_2, ClientboundPackets1_16_2, ServerboundPackets1_16_2, ServerboundPackets1_16_2> {
|
||||
|
||||
public Protocol1_16_3To1_16_2() {
|
||||
super(ClientboundPackets1_16_2.class, ClientboundPackets1_16_2.class, ServerboundPackets1_16_2.class, ServerboundPackets1_16_2.class);
|
||||
}
|
||||
}
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren