0

небольшой рефакторинг классов

This commit is contained in:
2020-05-01 19:35:54 +03:00
parent 892ca617e8
commit 3660b2e5e8
11 changed files with 54 additions and 34 deletions

View File

@@ -1,5 +1,8 @@
package mc.protocol;
import mc.protocol.io.NetInputStream;
import mc.protocol.io.NetOutputStream;
public interface Packet {
void readSelf(NetInputStream netInputStream);

View File

@@ -2,10 +2,8 @@ package mc.protocol;
import com.google.common.collect.BiMap;
import com.google.common.collect.ImmutableBiMap;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import mc.protocol.handshake.client.HandshakePacket;
import mc.protocol.status.client.StatusServerRequest;
import mc.protocol.status.server.StatusServerResponse;
@@ -13,20 +11,23 @@ import mc.protocol.status.server.StatusServerResponse;
@RequiredArgsConstructor
public enum State {
HANDSHAKING(-1){{
setServerBoundPackets(ImmutableBiMap.of(
HANDSHAKING(-1,
// server bound
ImmutableBiMap.of(
0x00, HandshakePacket.class
));
}},
)
),
PLAY(0),
STATUS(1){{
setServerBoundPackets(ImmutableBiMap.of(
STATUS(1,
// server bound
ImmutableBiMap.of(
0x00, StatusServerRequest.class
));
setClientBoundPackets(ImmutableBiMap.of(
),
// client bound
ImmutableBiMap.of(
0x00, StatusServerResponse.class
));
}},
)
),
LOGIN(2);
public static State getById(int id) {
@@ -42,11 +43,20 @@ public enum State {
@Getter
private final int id;
@Setter(value = AccessLevel.PROTECTED)
private BiMap<Integer, Class<? extends Packet>> serverBoundPackets;
private BiMap<Integer, Class<? extends Packet>> clientBoundPackets;
@Setter(value = AccessLevel.PROTECTED)
private BiMap<Integer, Class<? extends Packet>> serverBoundPackets;
State(int id, BiMap<Integer, Class<? extends Packet>> serverBoundPackets) {
this.id = id;
this.serverBoundPackets = serverBoundPackets;
}
State(int id, BiMap<Integer, Class<? extends Packet>> serverBoundPackets, BiMap<Integer, Class<? extends Packet>> clientBoundPackets) {
this.id = id;
this.serverBoundPackets = serverBoundPackets;
this.clientBoundPackets = clientBoundPackets;
}
public Class<? extends Packet> getPacketById(PacketDirection direction, int id) {
if (direction == PacketDirection.CLIENT_BOUND) {

View File

@@ -1,10 +1,10 @@
package mc.protocol.handshake.client;
import lombok.Data;
import mc.protocol.NetInputStream;
import mc.protocol.NetOutputStream;
import mc.protocol.Packet;
import mc.protocol.State;
import mc.protocol.io.NetInputStream;
import mc.protocol.io.NetOutputStream;
@Data
public class HandshakePacket implements Packet {

View File

@@ -1,4 +1,4 @@
package mc.protocol;
package mc.protocol.io;
public class DecoderException extends RuntimeException {

View File

@@ -1,4 +1,4 @@
package mc.protocol;
package mc.protocol.io;
import java.io.IOException;
import java.io.InputStream;
@@ -101,6 +101,8 @@ public abstract class NetInputStream extends InputStream {
}
public abstract byte readByte();
public abstract int readBytes(byte[] buffer, int offset, int lengtn);
public abstract int readShort();
}

View File

@@ -1,4 +1,4 @@
package mc.protocol;
package mc.protocol.io;
import java.io.IOException;
import java.io.OutputStream;
@@ -84,6 +84,8 @@ public abstract class NetOutputStream extends OutputStream {
}
public abstract void writeByte(int value);
public abstract void writeBytes(byte[] buffer, int offset, int lengtn);
public abstract void writeShort(int value);
}

View File

@@ -1,6 +1,6 @@
package mc.protocol.coder;
package mc.protocol.io.coder;
import mc.protocol.NetOutputStream;
import mc.protocol.io.NetOutputStream;
import java.io.ByteArrayOutputStream;

View File

@@ -1,4 +1,4 @@
package mc.protocol.coder;
package mc.protocol.io.coder;
/*
Packet format:
@@ -13,10 +13,10 @@ https://wiki.vg/index.php?title=Protocol&oldid=7368#Without_compression
*/
import lombok.RequiredArgsConstructor;
import mc.protocol.NetInputStream;
import mc.protocol.Packet;
import mc.protocol.PacketDirection;
import mc.protocol.State;
import mc.protocol.io.NetInputStream;
import java.util.Objects;

View File

@@ -1,7 +1,10 @@
package mc.protocol.coder;
package mc.protocol.io.coder;
import lombok.RequiredArgsConstructor;
import mc.protocol.*;
import mc.protocol.Packet;
import mc.protocol.PacketDirection;
import mc.protocol.State;
import mc.protocol.io.NetOutputStream;
import java.util.Objects;

View File

@@ -1,8 +1,8 @@
package mc.protocol.status.client;
import mc.protocol.NetInputStream;
import mc.protocol.NetOutputStream;
import mc.protocol.Packet;
import mc.protocol.io.NetInputStream;
import mc.protocol.io.NetOutputStream;
public class StatusServerRequest implements Packet {

View File

@@ -1,9 +1,9 @@
package mc.protocol.status.server;
import lombok.Data;
import mc.protocol.NetInputStream;
import mc.protocol.NetOutputStream;
import mc.protocol.Packet;
import mc.protocol.io.NetInputStream;
import mc.protocol.io.NetOutputStream;
@Data
public class StatusServerResponse implements Packet {