mirror of
https://github.com/Minestom/Minestom.git
synced 2024-06-23 13:04:53 +02:00
Cleanup
This commit is contained in:
parent
c85e866e3c
commit
b8c30d9b58
|
@ -6,12 +6,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
|
|
||||||
public class BooleanData extends DataType<Boolean> {
|
public class BooleanData extends DataType<Boolean> {
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, Boolean value) {
|
public void encode(BinaryWriter writer, Boolean value) {
|
||||||
binaryWriter.writeBoolean(value);
|
writer.writeBoolean(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean decode(BinaryReader binaryReader) {
|
public Boolean decode(BinaryReader reader) {
|
||||||
return binaryReader.readBoolean();
|
return reader.readBoolean();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
|
|
||||||
public class ByteData extends DataType<Byte> {
|
public class ByteData extends DataType<Byte> {
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, Byte value) {
|
public void encode(BinaryWriter writer, Byte value) {
|
||||||
binaryWriter.writeByte(value);
|
writer.writeByte(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Byte decode(BinaryReader binaryReader) {
|
public Byte decode(BinaryReader reader) {
|
||||||
return binaryReader.readByte();
|
return reader.readByte();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class CharacterData extends DataType<Character> {
|
public class CharacterData extends DataType<Character> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, Character value) {
|
public void encode(BinaryWriter writer, Character value) {
|
||||||
binaryWriter.writeChar(value);
|
writer.writeChar(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Character decode(BinaryReader binaryReader) {
|
public Character decode(BinaryReader reader) {
|
||||||
return binaryReader.readChar();
|
return reader.readChar();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class DoubleData extends DataType<Double> {
|
public class DoubleData extends DataType<Double> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, Double value) {
|
public void encode(BinaryWriter writer, Double value) {
|
||||||
binaryWriter.writeDouble(value);
|
writer.writeDouble(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Double decode(BinaryReader binaryReader) {
|
public Double decode(BinaryReader reader) {
|
||||||
return binaryReader.readDouble();
|
return reader.readDouble();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class FloatData extends DataType<Float> {
|
public class FloatData extends DataType<Float> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, Float value) {
|
public void encode(BinaryWriter writer, Float value) {
|
||||||
binaryWriter.writeFloat(value);
|
writer.writeFloat(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Float decode(BinaryReader binaryReader) {
|
public Float decode(BinaryReader reader) {
|
||||||
return binaryReader.readFloat();
|
return reader.readFloat();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class IntegerData extends DataType<Integer> {
|
public class IntegerData extends DataType<Integer> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, Integer value) {
|
public void encode(BinaryWriter writer, Integer value) {
|
||||||
binaryWriter.writeVarInt(value);
|
writer.writeVarInt(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer decode(BinaryReader binaryReader) {
|
public Integer decode(BinaryReader reader) {
|
||||||
return binaryReader.readVarInt();
|
return reader.readVarInt();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,31 +9,31 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class InventoryData extends DataType<Inventory> {
|
public class InventoryData extends DataType<Inventory> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, Inventory value) {
|
public void encode(BinaryWriter writer, Inventory value) {
|
||||||
final InventoryType inventoryType = value.getInventoryType();
|
final InventoryType inventoryType = value.getInventoryType();
|
||||||
final int size = inventoryType.getAdditionalSlot();
|
final int size = inventoryType.getAdditionalSlot();
|
||||||
|
|
||||||
// Inventory title & type
|
// Inventory title & type
|
||||||
binaryWriter.writeSizedString(value.getTitle());
|
writer.writeSizedString(value.getTitle());
|
||||||
binaryWriter.writeSizedString(inventoryType.name());
|
writer.writeSizedString(inventoryType.name());
|
||||||
|
|
||||||
// Write all item stacks
|
// Write all item stacks
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
binaryWriter.writeItemStack(value.getItemStack(i));
|
writer.writeItemStack(value.getItemStack(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Inventory decode(BinaryReader binaryReader) {
|
public Inventory decode(BinaryReader reader) {
|
||||||
final String title = binaryReader.readSizedString();
|
final String title = reader.readSizedString();
|
||||||
final InventoryType inventoryType = InventoryType.valueOf(binaryReader.readSizedString());
|
final InventoryType inventoryType = InventoryType.valueOf(reader.readSizedString());
|
||||||
final int size = inventoryType.getAdditionalSlot();
|
final int size = inventoryType.getAdditionalSlot();
|
||||||
|
|
||||||
Inventory inventory = new Inventory(inventoryType, title);
|
Inventory inventory = new Inventory(inventoryType, title);
|
||||||
|
|
||||||
// Read all item stacks
|
// Read all item stacks
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
inventory.setItemStack(i, binaryReader.readSlot());
|
inventory.setItemStack(i, reader.readSlot());
|
||||||
}
|
}
|
||||||
|
|
||||||
return inventory;
|
return inventory;
|
||||||
|
|
|
@ -7,12 +7,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
|
|
||||||
public class ItemStackData extends DataType<ItemStack> {
|
public class ItemStackData extends DataType<ItemStack> {
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, ItemStack value) {
|
public void encode(BinaryWriter writer, ItemStack value) {
|
||||||
binaryWriter.writeItemStack(value);
|
writer.writeItemStack(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack decode(BinaryReader binaryReader) {
|
public ItemStack decode(BinaryReader reader) {
|
||||||
return binaryReader.readSlot();
|
return reader.readSlot();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
|
|
||||||
public class LongData extends DataType<Long> {
|
public class LongData extends DataType<Long> {
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, Long value) {
|
public void encode(BinaryWriter writer, Long value) {
|
||||||
binaryWriter.writeLong(value);
|
writer.writeLong(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long decode(BinaryReader binaryReader) {
|
public Long decode(BinaryReader reader) {
|
||||||
return binaryReader.readLong();
|
return reader.readLong();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,12 +10,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class SerializableDataData extends DataType<SerializableData> {
|
public class SerializableDataData extends DataType<SerializableData> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, SerializableData value) {
|
public void encode(BinaryWriter writer, SerializableData value) {
|
||||||
binaryWriter.writeBytes(value.getSerializedData());
|
writer.writeBytes(value.getSerializedData());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SerializableData decode(BinaryReader binaryReader) {
|
public SerializableData decode(BinaryReader reader) {
|
||||||
return DataReader.readData(binaryReader);
|
return DataReader.readData(reader);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class ShortData extends DataType<Short> {
|
public class ShortData extends DataType<Short> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, Short value) {
|
public void encode(BinaryWriter writer, Short value) {
|
||||||
binaryWriter.writeShort(value);
|
writer.writeShort(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Short decode(BinaryReader binaryReader) {
|
public Short decode(BinaryReader reader) {
|
||||||
return binaryReader.readShort();
|
return reader.readShort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,12 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class StringData extends DataType<String> {
|
public class StringData extends DataType<String> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, String value) {
|
public void encode(BinaryWriter writer, String value) {
|
||||||
binaryWriter.writeSizedString(value);
|
writer.writeSizedString(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String decode(BinaryReader binaryReader) {
|
public String decode(BinaryReader reader) {
|
||||||
return binaryReader.readSizedString();
|
return reader.readSizedString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,12 +8,12 @@ import java.util.UUID;
|
||||||
|
|
||||||
public class UuidType extends DataType<UUID> {
|
public class UuidType extends DataType<UUID> {
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, UUID value) {
|
public void encode(BinaryWriter writer, UUID value) {
|
||||||
binaryWriter.writeUuid(value);
|
writer.writeUuid(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UUID decode(BinaryReader binaryReader) {
|
public UUID decode(BinaryReader reader) {
|
||||||
return binaryReader.readUuid();
|
return reader.readUuid();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,18 +7,18 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class BooleanArrayData extends DataType<boolean[]> {
|
public class BooleanArrayData extends DataType<boolean[]> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, boolean[] value) {
|
public void encode(BinaryWriter writer, boolean[] value) {
|
||||||
binaryWriter.writeVarInt(value.length);
|
writer.writeVarInt(value.length);
|
||||||
for (boolean val : value) {
|
for (boolean val : value) {
|
||||||
binaryWriter.writeBoolean(val);
|
writer.writeBoolean(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean[] decode(BinaryReader binaryReader) {
|
public boolean[] decode(BinaryReader reader) {
|
||||||
boolean[] array = new boolean[binaryReader.readVarInt()];
|
boolean[] array = new boolean[reader.readVarInt()];
|
||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
array[i] = binaryReader.readBoolean();
|
array[i] = reader.readBoolean();
|
||||||
}
|
}
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,13 +6,13 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
|
|
||||||
public class ByteArrayData extends DataType<byte[]> {
|
public class ByteArrayData extends DataType<byte[]> {
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, byte[] value) {
|
public void encode(BinaryWriter writer, byte[] value) {
|
||||||
encodeByteArray(binaryWriter, value);
|
encodeByteArray(writer, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public byte[] decode(BinaryReader binaryReader) {
|
public byte[] decode(BinaryReader reader) {
|
||||||
return decodeByteArray(binaryReader);
|
return decodeByteArray(reader);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void encodeByteArray(BinaryWriter binaryWriter, byte[] value) {
|
public static void encodeByteArray(BinaryWriter binaryWriter, byte[] value) {
|
||||||
|
|
|
@ -6,18 +6,18 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
|
|
||||||
public class CharacterArrayData extends DataType<char[]> {
|
public class CharacterArrayData extends DataType<char[]> {
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, char[] value) {
|
public void encode(BinaryWriter writer, char[] value) {
|
||||||
binaryWriter.writeVarInt(value.length);
|
writer.writeVarInt(value.length);
|
||||||
for (char val : value) {
|
for (char val : value) {
|
||||||
binaryWriter.writeChar(val);
|
writer.writeChar(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public char[] decode(BinaryReader binaryReader) {
|
public char[] decode(BinaryReader reader) {
|
||||||
char[] array = new char[binaryReader.readVarInt()];
|
char[] array = new char[reader.readVarInt()];
|
||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
array[i] = binaryReader.readChar();
|
array[i] = reader.readChar();
|
||||||
}
|
}
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,18 +7,18 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class DoubleArrayData extends DataType<double[]> {
|
public class DoubleArrayData extends DataType<double[]> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, double[] value) {
|
public void encode(BinaryWriter writer, double[] value) {
|
||||||
binaryWriter.writeVarInt(value.length);
|
writer.writeVarInt(value.length);
|
||||||
for (double val : value) {
|
for (double val : value) {
|
||||||
binaryWriter.writeDouble(val);
|
writer.writeDouble(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double[] decode(BinaryReader binaryReader) {
|
public double[] decode(BinaryReader reader) {
|
||||||
double[] array = new double[binaryReader.readVarInt()];
|
double[] array = new double[reader.readVarInt()];
|
||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
array[i] = binaryReader.readDouble();
|
array[i] = reader.readDouble();
|
||||||
}
|
}
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,18 +7,18 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class FloatArrayData extends DataType<float[]> {
|
public class FloatArrayData extends DataType<float[]> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, float[] value) {
|
public void encode(BinaryWriter writer, float[] value) {
|
||||||
binaryWriter.writeVarInt(value.length);
|
writer.writeVarInt(value.length);
|
||||||
for (float val : value) {
|
for (float val : value) {
|
||||||
binaryWriter.writeFloat(val);
|
writer.writeFloat(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float[] decode(BinaryReader binaryReader) {
|
public float[] decode(BinaryReader reader) {
|
||||||
float[] array = new float[binaryReader.readVarInt()];
|
float[] array = new float[reader.readVarInt()];
|
||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
array[i] = binaryReader.readFloat();
|
array[i] = reader.readFloat();
|
||||||
}
|
}
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,18 +7,18 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class IntegerArrayData extends DataType<int[]> {
|
public class IntegerArrayData extends DataType<int[]> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, int[] value) {
|
public void encode(BinaryWriter writer, int[] value) {
|
||||||
binaryWriter.writeVarInt(value.length);
|
writer.writeVarInt(value.length);
|
||||||
for (int val : value) {
|
for (int val : value) {
|
||||||
binaryWriter.writeInt(val);
|
writer.writeInt(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] decode(BinaryReader binaryReader) {
|
public int[] decode(BinaryReader reader) {
|
||||||
int[] array = new int[binaryReader.readVarInt()];
|
int[] array = new int[reader.readVarInt()];
|
||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
array[i] = binaryReader.readInteger();
|
array[i] = reader.readInteger();
|
||||||
}
|
}
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,18 +7,18 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
|
|
||||||
public class ItemStackArrayData extends DataType<ItemStack[]> {
|
public class ItemStackArrayData extends DataType<ItemStack[]> {
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, ItemStack[] value) {
|
public void encode(BinaryWriter writer, ItemStack[] value) {
|
||||||
binaryWriter.writeVarInt(value.length);
|
writer.writeVarInt(value.length);
|
||||||
for (ItemStack itemStack : value) {
|
for (ItemStack itemStack : value) {
|
||||||
binaryWriter.writeItemStack(itemStack);
|
writer.writeItemStack(itemStack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack[] decode(BinaryReader binaryReader) {
|
public ItemStack[] decode(BinaryReader reader) {
|
||||||
ItemStack[] items = new ItemStack[binaryReader.readVarInt()];
|
ItemStack[] items = new ItemStack[reader.readVarInt()];
|
||||||
for (int i = 0; i < items.length; i++) {
|
for (int i = 0; i < items.length; i++) {
|
||||||
items[i] = binaryReader.readSlot();
|
items[i] = reader.readSlot();
|
||||||
}
|
}
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,18 +7,18 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class LongArrayData extends DataType<long[]> {
|
public class LongArrayData extends DataType<long[]> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, long[] value) {
|
public void encode(BinaryWriter writer, long[] value) {
|
||||||
binaryWriter.writeVarInt(value.length);
|
writer.writeVarInt(value.length);
|
||||||
for (long val : value) {
|
for (long val : value) {
|
||||||
binaryWriter.writeLong(val);
|
writer.writeLong(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long[] decode(BinaryReader binaryReader) {
|
public long[] decode(BinaryReader reader) {
|
||||||
long[] array = new long[binaryReader.readVarInt()];
|
long[] array = new long[reader.readVarInt()];
|
||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
array[i] = binaryReader.readLong();
|
array[i] = reader.readLong();
|
||||||
}
|
}
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,18 +7,18 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class ShortArrayData extends DataType<short[]> {
|
public class ShortArrayData extends DataType<short[]> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, short[] value) {
|
public void encode(BinaryWriter writer, short[] value) {
|
||||||
binaryWriter.writeVarInt(value.length);
|
writer.writeVarInt(value.length);
|
||||||
for (short val : value) {
|
for (short val : value) {
|
||||||
binaryWriter.writeShort(val);
|
writer.writeShort(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public short[] decode(BinaryReader binaryReader) {
|
public short[] decode(BinaryReader reader) {
|
||||||
short[] array = new short[binaryReader.readVarInt()];
|
short[] array = new short[reader.readVarInt()];
|
||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
array[i] = binaryReader.readShort();
|
array[i] = reader.readShort();
|
||||||
}
|
}
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,18 +7,18 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
public class StringArrayData extends DataType<String[]> {
|
public class StringArrayData extends DataType<String[]> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void encode(BinaryWriter binaryWriter, String[] value) {
|
public void encode(BinaryWriter writer, String[] value) {
|
||||||
binaryWriter.writeVarInt(value.length);
|
writer.writeVarInt(value.length);
|
||||||
for (String val : value) {
|
for (String val : value) {
|
||||||
binaryWriter.writeSizedString(val);
|
writer.writeSizedString(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String[] decode(BinaryReader binaryReader) {
|
public String[] decode(BinaryReader reader) {
|
||||||
String[] array = new String[binaryReader.readVarInt()];
|
String[] array = new String[reader.readVarInt()];
|
||||||
for (int i = 0; i < array.length; i++) {
|
for (int i = 0; i < array.length; i++) {
|
||||||
array[i] = binaryReader.readSizedString();
|
array[i] = reader.readSizedString();
|
||||||
}
|
}
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,17 +22,14 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
public class PacketProcessor {
|
public class PacketProcessor {
|
||||||
|
|
||||||
private Map<ChannelHandlerContext, PlayerConnection> connectionPlayerConnectionMap = new ConcurrentHashMap<>();
|
private final Map<ChannelHandlerContext, PlayerConnection> connectionPlayerConnectionMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
private ConnectionManager connectionManager;
|
|
||||||
|
|
||||||
// Protocols
|
// Protocols
|
||||||
private ClientStatusPacketsHandler statusPacketsHandler;
|
private final ClientStatusPacketsHandler statusPacketsHandler;
|
||||||
private ClientLoginPacketsHandler loginPacketsHandler;
|
private final ClientLoginPacketsHandler loginPacketsHandler;
|
||||||
private ClientPlayPacketsHandler playPacketsHandler;
|
private final ClientPlayPacketsHandler playPacketsHandler;
|
||||||
|
|
||||||
public PacketProcessor() {
|
public PacketProcessor() {
|
||||||
this.connectionManager = MinecraftServer.getConnectionManager();
|
|
||||||
|
|
||||||
this.statusPacketsHandler = new ClientStatusPacketsHandler();
|
this.statusPacketsHandler = new ClientStatusPacketsHandler();
|
||||||
this.loginPacketsHandler = new ClientLoginPacketsHandler();
|
this.loginPacketsHandler = new ClientLoginPacketsHandler();
|
||||||
|
@ -62,7 +59,7 @@ public class PacketProcessor {
|
||||||
if (packet.packetId == 0) {
|
if (packet.packetId == 0) {
|
||||||
HandshakePacket handshakePacket = new HandshakePacket();
|
HandshakePacket handshakePacket = new HandshakePacket();
|
||||||
handshakePacket.read(binaryReader);
|
handshakePacket.read(binaryReader);
|
||||||
handshakePacket.process(playerConnection, connectionManager);
|
handshakePacket.process(playerConnection);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -77,13 +74,12 @@ public class PacketProcessor {
|
||||||
case LOGIN:
|
case LOGIN:
|
||||||
final ClientPreplayPacket loginPacket = (ClientPreplayPacket) loginPacketsHandler.getPacketInstance(packet.packetId);
|
final ClientPreplayPacket loginPacket = (ClientPreplayPacket) loginPacketsHandler.getPacketInstance(packet.packetId);
|
||||||
loginPacket.read(binaryReader);
|
loginPacket.read(binaryReader);
|
||||||
loginPacket.process(playerConnection, connectionManager);
|
loginPacket.process(playerConnection);
|
||||||
break;
|
break;
|
||||||
case STATUS:
|
case STATUS:
|
||||||
final ClientPreplayPacket statusPacket = (ClientPreplayPacket) statusPacketsHandler.getPacketInstance(packet.packetId);
|
final ClientPreplayPacket statusPacket = (ClientPreplayPacket) statusPacketsHandler.getPacketInstance(packet.packetId);
|
||||||
statusPacket.read(binaryReader);
|
statusPacket.read(binaryReader);
|
||||||
|
statusPacket.process(playerConnection);
|
||||||
statusPacket.process(playerConnection, connectionManager);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
package net.minestom.server.network.packet.client;
|
package net.minestom.server.network.packet.client;
|
||||||
|
|
||||||
|
import net.minestom.server.MinecraftServer;
|
||||||
import net.minestom.server.network.ConnectionManager;
|
import net.minestom.server.network.ConnectionManager;
|
||||||
import net.minestom.server.network.player.PlayerConnection;
|
import net.minestom.server.network.player.PlayerConnection;
|
||||||
|
|
||||||
public interface ClientPreplayPacket extends ClientPacket {
|
public interface ClientPreplayPacket extends ClientPacket {
|
||||||
|
|
||||||
|
ConnectionManager CONNECTION_MANAGER = MinecraftServer.getConnectionManager();
|
||||||
|
|
||||||
void process(PlayerConnection connection, ConnectionManager connectionManager);
|
/**
|
||||||
|
* Called when this packet is received
|
||||||
|
*
|
||||||
|
* @param connection the connection who sent the packet
|
||||||
|
*/
|
||||||
|
void process(PlayerConnection connection);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ package net.minestom.server.network.packet.client.handshake;
|
||||||
import net.minestom.server.MinecraftServer;
|
import net.minestom.server.MinecraftServer;
|
||||||
import net.minestom.server.chat.ChatColor;
|
import net.minestom.server.chat.ChatColor;
|
||||||
import net.minestom.server.chat.ColoredText;
|
import net.minestom.server.chat.ColoredText;
|
||||||
import net.minestom.server.network.ConnectionManager;
|
|
||||||
import net.minestom.server.network.ConnectionState;
|
import net.minestom.server.network.ConnectionState;
|
||||||
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
||||||
import net.minestom.server.network.packet.server.login.LoginDisconnect;
|
import net.minestom.server.network.packet.server.login.LoginDisconnect;
|
||||||
|
@ -26,7 +25,7 @@ public class HandshakePacket implements ClientPreplayPacket {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(PlayerConnection connection, ConnectionManager connectionManager) {
|
public void process(PlayerConnection connection) {
|
||||||
switch (nextState) {
|
switch (nextState) {
|
||||||
case 1:
|
case 1:
|
||||||
connection.setConnectionState(ConnectionState.STATUS);
|
connection.setConnectionState(ConnectionState.STATUS);
|
||||||
|
|
|
@ -5,7 +5,6 @@ import com.mojang.authlib.exceptions.AuthenticationUnavailableException;
|
||||||
import net.minestom.server.MinecraftServer;
|
import net.minestom.server.MinecraftServer;
|
||||||
import net.minestom.server.data.type.array.ByteArrayData;
|
import net.minestom.server.data.type.array.ByteArrayData;
|
||||||
import net.minestom.server.extras.mojangAuth.MojangCrypt;
|
import net.minestom.server.extras.mojangAuth.MojangCrypt;
|
||||||
import net.minestom.server.network.ConnectionManager;
|
|
||||||
import net.minestom.server.network.ConnectionState;
|
import net.minestom.server.network.ConnectionState;
|
||||||
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
||||||
import net.minestom.server.network.packet.server.login.LoginSuccessPacket;
|
import net.minestom.server.network.packet.server.login.LoginSuccessPacket;
|
||||||
|
@ -20,54 +19,54 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
public class EncryptionResponsePacket implements ClientPreplayPacket {
|
public class EncryptionResponsePacket implements ClientPreplayPacket {
|
||||||
|
|
||||||
private final static String THREAD_NAME = "Mojang Auth Thread";
|
private final static String THREAD_NAME = "Mojang Auth Thread";
|
||||||
private static AtomicInteger UNIQUE_THREAD_ID = new AtomicInteger(0);
|
private static AtomicInteger UNIQUE_THREAD_ID = new AtomicInteger(0);
|
||||||
private byte[] sharedSecret;
|
private byte[] sharedSecret;
|
||||||
private byte[] verifyToken;
|
private byte[] verifyToken;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(PlayerConnection connection, ConnectionManager connectionManager) {
|
public void process(PlayerConnection connection) {
|
||||||
new Thread(THREAD_NAME + " #" + UNIQUE_THREAD_ID.incrementAndGet()) {
|
new Thread(THREAD_NAME + " #" + UNIQUE_THREAD_ID.incrementAndGet()) {
|
||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
if (!Arrays.equals(connection.getNonce(), getNonce())) {
|
if (!Arrays.equals(connection.getNonce(), getNonce())) {
|
||||||
System.out.println(connection.getLoginUsername() + " tried to login with an invalid nonce!");
|
System.out.println(connection.getLoginUsername() + " tried to login with an invalid nonce!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!connection.getLoginUsername().isEmpty()) {
|
if (!connection.getLoginUsername().isEmpty()) {
|
||||||
String string3 = new BigInteger(MojangCrypt.digestData("", MinecraftServer.getKeyPair().getPublic(), getSecretKey())).toString(16);
|
final String string3 = new BigInteger(MojangCrypt.digestData("", MinecraftServer.getKeyPair().getPublic(), getSecretKey())).toString(16);
|
||||||
GameProfile gameProfile = MinecraftServer.getSessionService().hasJoinedServer(new GameProfile(null, connection.getLoginUsername()), string3);
|
final GameProfile gameProfile = MinecraftServer.getSessionService().hasJoinedServer(new GameProfile(null, connection.getLoginUsername()), string3);
|
||||||
((NettyPlayerConnection) connection).setEncryptionKey(getSecretKey());
|
((NettyPlayerConnection) connection).setEncryptionKey(getSecretKey());
|
||||||
final int threshold = MinecraftServer.COMPRESSION_THRESHOLD;
|
final int threshold = MinecraftServer.COMPRESSION_THRESHOLD;
|
||||||
|
|
||||||
if (threshold > 0) {
|
if (threshold > 0) {
|
||||||
connection.enableCompression(threshold);
|
connection.enableCompression(threshold);
|
||||||
}
|
}
|
||||||
LoginSuccessPacket loginSuccessPacket = new LoginSuccessPacket(gameProfile.getId(), gameProfile.getName());
|
LoginSuccessPacket loginSuccessPacket = new LoginSuccessPacket(gameProfile.getId(), gameProfile.getName());
|
||||||
connection.sendPacket(loginSuccessPacket);
|
connection.sendPacket(loginSuccessPacket);
|
||||||
MinecraftServer.getLOGGER().info("UUID of player {} is {}", connection.getLoginUsername(), gameProfile.getId());
|
MinecraftServer.getLOGGER().info("UUID of player {} is {}", connection.getLoginUsername(), gameProfile.getId());
|
||||||
connection.setConnectionState(ConnectionState.PLAY);
|
connection.setConnectionState(ConnectionState.PLAY);
|
||||||
connectionManager.createPlayer(gameProfile.getId(), gameProfile.getName(), connection);
|
CONNECTION_MANAGER.createPlayer(gameProfile.getId(), gameProfile.getName(), connection);
|
||||||
}
|
}
|
||||||
} catch (AuthenticationUnavailableException e) {
|
} catch (AuthenticationUnavailableException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.start();
|
}.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(BinaryReader reader) {
|
public void read(BinaryReader reader) {
|
||||||
sharedSecret = ByteArrayData.decodeByteArray(reader);
|
sharedSecret = ByteArrayData.decodeByteArray(reader);
|
||||||
verifyToken = ByteArrayData.decodeByteArray(reader);
|
verifyToken = ByteArrayData.decodeByteArray(reader);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SecretKey getSecretKey() {
|
public SecretKey getSecretKey() {
|
||||||
return MojangCrypt.decryptByteToSecretKey(MinecraftServer.getKeyPair().getPrivate(), sharedSecret);
|
return MojangCrypt.decryptByteToSecretKey(MinecraftServer.getKeyPair().getPrivate(), sharedSecret);
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] getNonce() {
|
public byte[] getNonce() {
|
||||||
return MinecraftServer.getKeyPair().getPrivate() == null ? this.verifyToken : MojangCrypt.decryptUsingKey(MinecraftServer.getKeyPair().getPrivate(), this.verifyToken);
|
return MinecraftServer.getKeyPair().getPrivate() == null ? this.verifyToken : MojangCrypt.decryptUsingKey(MinecraftServer.getKeyPair().getPrivate(), this.verifyToken);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@ import net.minestom.server.MinecraftServer;
|
||||||
import net.minestom.server.chat.ChatColor;
|
import net.minestom.server.chat.ChatColor;
|
||||||
import net.minestom.server.chat.ColoredText;
|
import net.minestom.server.chat.ColoredText;
|
||||||
import net.minestom.server.extras.MojangAuth;
|
import net.minestom.server.extras.MojangAuth;
|
||||||
import net.minestom.server.network.ConnectionManager;
|
|
||||||
import net.minestom.server.network.ConnectionState;
|
import net.minestom.server.network.ConnectionState;
|
||||||
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
||||||
import net.minestom.server.network.packet.server.login.EncryptionRequestPacket;
|
import net.minestom.server.network.packet.server.login.EncryptionRequestPacket;
|
||||||
|
@ -23,9 +22,9 @@ public class LoginStartPacket implements ClientPreplayPacket {
|
||||||
public String username;
|
public String username;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(PlayerConnection connection, ConnectionManager connectionManager) {
|
public void process(PlayerConnection connection) {
|
||||||
if (MojangAuth.isUsingMojangAuth()) {
|
if (MojangAuth.isUsingMojangAuth()) {
|
||||||
if (connectionManager.getPlayer(username) != null) {
|
if (CONNECTION_MANAGER.getPlayer(username) != null) {
|
||||||
connection.sendPacket(new LoginDisconnect(ALREADY_CONNECTED_JSON));
|
connection.sendPacket(new LoginDisconnect(ALREADY_CONNECTED_JSON));
|
||||||
connection.disconnect();
|
connection.disconnect();
|
||||||
return;
|
return;
|
||||||
|
@ -36,9 +35,9 @@ public class LoginStartPacket implements ClientPreplayPacket {
|
||||||
EncryptionRequestPacket encryptionRequestPacket = new EncryptionRequestPacket(connection);
|
EncryptionRequestPacket encryptionRequestPacket = new EncryptionRequestPacket(connection);
|
||||||
connection.sendPacket(encryptionRequestPacket);
|
connection.sendPacket(encryptionRequestPacket);
|
||||||
} else {
|
} else {
|
||||||
UUID playerUuid = connectionManager.getPlayerConnectionUuid(connection, username);
|
final UUID playerUuid = CONNECTION_MANAGER.getPlayerConnectionUuid(connection, username);
|
||||||
|
|
||||||
int threshold = MinecraftServer.COMPRESSION_THRESHOLD;
|
final int threshold = MinecraftServer.COMPRESSION_THRESHOLD;
|
||||||
|
|
||||||
if (threshold > 0) {
|
if (threshold > 0) {
|
||||||
connection.enableCompression(threshold);
|
connection.enableCompression(threshold);
|
||||||
|
@ -48,7 +47,7 @@ public class LoginStartPacket implements ClientPreplayPacket {
|
||||||
connection.sendPacket(successPacket);
|
connection.sendPacket(successPacket);
|
||||||
|
|
||||||
connection.setConnectionState(ConnectionState.PLAY);
|
connection.setConnectionState(ConnectionState.PLAY);
|
||||||
connectionManager.createPlayer(playerUuid, username, connection);
|
CONNECTION_MANAGER.createPlayer(playerUuid, username, connection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package net.minestom.server.network.packet.client.status;
|
package net.minestom.server.network.packet.client.status;
|
||||||
|
|
||||||
import net.minestom.server.network.ConnectionManager;
|
|
||||||
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
||||||
import net.minestom.server.network.player.PlayerConnection;
|
import net.minestom.server.network.player.PlayerConnection;
|
||||||
import net.minestom.server.utils.binary.BinaryReader;
|
import net.minestom.server.utils.binary.BinaryReader;
|
||||||
|
@ -10,7 +9,7 @@ public class LegacyServerListPingPacket implements ClientPreplayPacket {
|
||||||
private byte payload;
|
private byte payload;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(PlayerConnection connection, ConnectionManager connectionManager) {
|
public void process(PlayerConnection connection) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package net.minestom.server.network.packet.client.status;
|
package net.minestom.server.network.packet.client.status;
|
||||||
|
|
||||||
import net.minestom.server.network.ConnectionManager;
|
|
||||||
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
||||||
import net.minestom.server.network.packet.server.status.PongPacket;
|
import net.minestom.server.network.packet.server.status.PongPacket;
|
||||||
import net.minestom.server.network.player.PlayerConnection;
|
import net.minestom.server.network.player.PlayerConnection;
|
||||||
|
@ -11,7 +10,7 @@ public class PingPacket implements ClientPreplayPacket {
|
||||||
private long number;
|
private long number;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(PlayerConnection connection, ConnectionManager connectionManager) {
|
public void process(PlayerConnection connection) {
|
||||||
PongPacket pongPacket = new PongPacket(number);
|
PongPacket pongPacket = new PongPacket(number);
|
||||||
connection.sendPacket(pongPacket);
|
connection.sendPacket(pongPacket);
|
||||||
connection.disconnect();
|
connection.disconnect();
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package net.minestom.server.network.packet.client.status;
|
package net.minestom.server.network.packet.client.status;
|
||||||
|
|
||||||
import net.minestom.server.MinecraftServer;
|
import net.minestom.server.MinecraftServer;
|
||||||
import net.minestom.server.network.ConnectionManager;
|
|
||||||
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
import net.minestom.server.network.packet.client.ClientPreplayPacket;
|
||||||
import net.minestom.server.network.packet.server.handshake.ResponsePacket;
|
import net.minestom.server.network.packet.server.handshake.ResponsePacket;
|
||||||
import net.minestom.server.network.player.PlayerConnection;
|
import net.minestom.server.network.player.PlayerConnection;
|
||||||
|
@ -12,7 +11,7 @@ import net.minestom.server.utils.binary.BinaryReader;
|
||||||
public class StatusRequestPacket implements ClientPreplayPacket {
|
public class StatusRequestPacket implements ClientPreplayPacket {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(PlayerConnection connection, ConnectionManager connectionManager) {
|
public void process(PlayerConnection connection) {
|
||||||
ResponseDataConsumer consumer = MinecraftServer.getResponseDataConsumer();
|
ResponseDataConsumer consumer = MinecraftServer.getResponseDataConsumer();
|
||||||
ResponseData responseData = new ResponseData();
|
ResponseData responseData = new ResponseData();
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,20 @@ import net.minestom.server.utils.binary.BinaryWriter;
|
||||||
|
|
||||||
public interface ServerPacket {
|
public interface ServerPacket {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write the packet to a {@link BinaryWriter}
|
||||||
|
*
|
||||||
|
* @param writer the writer to write the packet to
|
||||||
|
*/
|
||||||
void write(BinaryWriter writer);
|
void write(BinaryWriter writer);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the id of this packet
|
||||||
|
* <p>
|
||||||
|
* Should be a constant
|
||||||
|
*
|
||||||
|
* @return the id of this packet
|
||||||
|
*/
|
||||||
int getId();
|
int getId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user