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; package mc.protocol;
import mc.protocol.io.NetInputStream;
import mc.protocol.io.NetOutputStream;
public interface Packet { public interface Packet {
void readSelf(NetInputStream netInputStream); void readSelf(NetInputStream netInputStream);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,10 @@
package mc.protocol.coder; package mc.protocol.io.coder;
import lombok.RequiredArgsConstructor; 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; import java.util.Objects;

View File

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

View File

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