Login
This commit is contained in:
@@ -24,6 +24,11 @@ public class ByteArrayOutputNetStream extends NetStream {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int readInt() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeByte(int value) {
|
||||
baos.write(value);
|
||||
@@ -34,6 +39,14 @@ public class ByteArrayOutputNetStream extends NetStream {
|
||||
baos.write(buffer, 0, buffer.length);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeInt(final int value) {
|
||||
baos.write((byte) value >>> 24);
|
||||
baos.write((byte) value >>> 16);
|
||||
baos.write((byte) value >>> 8);
|
||||
baos.write((byte) value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void skipBytes(int count) {
|
||||
throw new UnsupportedOperationException();
|
||||
|
||||
@@ -77,9 +77,11 @@ public abstract class NetStream {
|
||||
public abstract byte readByte();
|
||||
public abstract void readBytes(byte[] buffer);
|
||||
public abstract int readUnsignedShort();
|
||||
public abstract int readInt();
|
||||
|
||||
public abstract void writeByte(int value);
|
||||
public abstract void writeBytes(byte[] buffer);
|
||||
public abstract void writeInt(int value);
|
||||
|
||||
public abstract void skipBytes(int count);
|
||||
}
|
||||
|
||||
@@ -43,6 +43,11 @@ public class ByteArrayOutputNetStream extends NetStream {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int readInt() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeByte(int value) {
|
||||
baos.write(value);
|
||||
@@ -53,6 +58,14 @@ public class ByteArrayOutputNetStream extends NetStream {
|
||||
baos.write(buffer, 0, buffer.length);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeInt(int value) {
|
||||
baos.write((byte) value >>> 24);
|
||||
baos.write((byte) value >>> 16);
|
||||
baos.write((byte) value >>> 8);
|
||||
baos.write((byte) value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void skipBytes(int count) {
|
||||
throw new UnsupportedOperationException();
|
||||
|
||||
@@ -13,6 +13,7 @@ import mc.core.Config;
|
||||
import mc.core.Main;
|
||||
import mc.core.netty.proto_125.packets.HandshakePacket;
|
||||
import mc.core.netty.proto_125.packets.KickPacket;
|
||||
import mc.core.netty.proto_125.packets.LoginPacket;
|
||||
import mc.core.netty.proto_125.packets.PingPacket;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
@@ -49,4 +50,13 @@ public class PacketHandler extends SimpleChannelInboundHandler<CSPacket> {
|
||||
public void onHandshakePacket(Channel channel, HandshakePacket packet) {
|
||||
channel.writeAndFlush(packet);
|
||||
}
|
||||
|
||||
public void onLoginPacket(Channel channel, LoginPacket packet) {
|
||||
packet.setLevelType("FLAT");
|
||||
packet.setServerMode(1/*creative*/);
|
||||
packet.setDimension(0/*Overworld*/);
|
||||
packet.setDifficulty(0/*Peaceful*/);
|
||||
packet.setMaxPlayers(config.getMaxPlayers());
|
||||
channel.writeAndFlush(packet);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,10 +10,12 @@ import mc.core.CSPacket;
|
||||
import mc.core.SCPacket;
|
||||
import mc.core.netty.proto_125.packets.HandshakePacket;
|
||||
import mc.core.netty.proto_125.packets.KickPacket;
|
||||
import mc.core.netty.proto_125.packets.LoginPacket;
|
||||
import mc.core.netty.proto_125.packets.PingPacket;
|
||||
|
||||
public class PacketManager {
|
||||
private static final BiMap<Integer, Class<?>> packetMap = ImmutableBiMap.of(
|
||||
0x01, LoginPacket.class,
|
||||
0x02, HandshakePacket.class,
|
||||
0xFE, PingPacket.class,
|
||||
0xFF, KickPacket.class
|
||||
|
||||
@@ -39,6 +39,11 @@ public class WrapperNetStream extends NetStream {
|
||||
return byteBuf.readUnsignedShort();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int readInt() {
|
||||
return byteBuf.readInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeByte(int value) {
|
||||
byteBuf.writeByte(value);
|
||||
@@ -49,6 +54,11 @@ public class WrapperNetStream extends NetStream {
|
||||
byteBuf.writeBytes(buffer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeInt(int value) {
|
||||
byteBuf.writeInt(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void skipBytes(int count) {
|
||||
byteBuf.skipBytes(count);
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* DmitriyMX <dimon550@gmail.com>
|
||||
* 2018-04-10
|
||||
*/
|
||||
package mc.core.netty.proto_125.packets;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import mc.core.CSPacket;
|
||||
import mc.core.NetStream;
|
||||
import mc.core.SCPacket;
|
||||
import mc.core.netty.proto_125.ByteArrayOutputNetStream;
|
||||
|
||||
@ToString
|
||||
public class LoginPacket implements CSPacket, SCPacket {
|
||||
@Getter
|
||||
private int protocol;
|
||||
@Getter
|
||||
private String playerName;
|
||||
|
||||
@Setter
|
||||
private int playerId;
|
||||
@Setter
|
||||
private String levelType;
|
||||
@Setter
|
||||
private int serverMode;
|
||||
@Setter
|
||||
private int dimension;
|
||||
@Setter
|
||||
private int difficulty;
|
||||
@Setter
|
||||
private int maxPlayers;
|
||||
|
||||
@Override
|
||||
public void readSelf(NetStream netStream) {
|
||||
protocol = netStream.readInt();
|
||||
netStream.skipBytes(1);
|
||||
playerName = netStream.readString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] toByteArray() {
|
||||
ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream();
|
||||
|
||||
netStream.writeInt(playerId);
|
||||
netStream.writeString("");
|
||||
netStream.writeString(levelType);
|
||||
netStream.writeInt(serverMode);
|
||||
netStream.writeInt(dimension);
|
||||
netStream.writeByte(difficulty);
|
||||
netStream.writeByte(0);
|
||||
netStream.writeByte(maxPlayers);
|
||||
|
||||
return netStream.toByteArray();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user