mirror of https://github.com/Minestom/Minestom.git
Added primitives & string array data type
This commit is contained in:
parent
8b41c7550b
commit
486cf989a1
|
@ -2,7 +2,7 @@ package net.minestom.server.data;
|
|||
|
||||
import net.minestom.server.data.type.CharacterData;
|
||||
import net.minestom.server.data.type.*;
|
||||
import net.minestom.server.data.type.array.ItemStackArrayData;
|
||||
import net.minestom.server.data.type.array.*;
|
||||
import net.minestom.server.inventory.Inventory;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.utils.PrimitiveConversion;
|
||||
|
@ -16,15 +16,31 @@ public class DataManager {
|
|||
|
||||
{
|
||||
registerType(Byte.class, new ByteData());
|
||||
registerType(byte[].class, new ByteArrayData());
|
||||
|
||||
registerType(Boolean.class, new BooleanData());
|
||||
registerType(boolean[].class, new BooleanArrayData());
|
||||
|
||||
registerType(Character.class, new CharacterData());
|
||||
registerType(char[].class, new CharacterArrayData());
|
||||
|
||||
registerType(Short.class, new ShortData());
|
||||
registerType(short[].class, new ShortArrayData());
|
||||
|
||||
registerType(Integer.class, new IntegerData());
|
||||
registerType(int[].class, new IntegerArrayData());
|
||||
|
||||
registerType(Long.class, new LongData());
|
||||
registerType(long[].class, new LongArrayData());
|
||||
|
||||
registerType(Float.class, new FloatData());
|
||||
registerType(float[].class, new FloatArrayData());
|
||||
|
||||
registerType(Double.class, new DoubleData());
|
||||
registerType(double[].class, new DoubleArrayData());
|
||||
|
||||
registerType(String.class, new StringData());
|
||||
registerType(String[].class, new StringArrayData());
|
||||
|
||||
registerType(SerializableData.class, new SerializableDataData());
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package net.minestom.server.data.type.array;
|
||||
|
||||
import net.minestom.server.data.DataType;
|
||||
import net.minestom.server.network.packet.PacketReader;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
|
||||
public class BooleanArrayData extends DataType<boolean[]> {
|
||||
|
||||
@Override
|
||||
public void encode(PacketWriter packetWriter, boolean[] value) {
|
||||
packetWriter.writeVarInt(value.length);
|
||||
for (boolean val : value) {
|
||||
packetWriter.writeBoolean(val);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean[] decode(PacketReader packetReader) {
|
||||
boolean[] array = new boolean[packetReader.readVarInt()];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = packetReader.readBoolean();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package net.minestom.server.data.type.array;
|
||||
|
||||
import net.minestom.server.data.DataType;
|
||||
import net.minestom.server.network.packet.PacketReader;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
|
||||
public class ByteArrayData extends DataType<byte[]> {
|
||||
@Override
|
||||
public void encode(PacketWriter packetWriter, byte[] value) {
|
||||
packetWriter.writeVarInt(value.length);
|
||||
for (byte val : value) {
|
||||
packetWriter.writeByte(val);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] decode(PacketReader packetReader) {
|
||||
byte[] array = new byte[packetReader.readVarInt()];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = packetReader.readByte();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package net.minestom.server.data.type.array;
|
||||
|
||||
import net.minestom.server.data.DataType;
|
||||
import net.minestom.server.network.packet.PacketReader;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
|
||||
public class CharacterArrayData extends DataType<char[]> {
|
||||
@Override
|
||||
public void encode(PacketWriter packetWriter, char[] value) {
|
||||
packetWriter.writeVarInt(value.length);
|
||||
for (char val : value) {
|
||||
packetWriter.writeChar(val);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public char[] decode(PacketReader packetReader) {
|
||||
char[] array = new char[packetReader.readVarInt()];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = packetReader.readChar();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package net.minestom.server.data.type.array;
|
||||
|
||||
import net.minestom.server.data.DataType;
|
||||
import net.minestom.server.network.packet.PacketReader;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
|
||||
public class DoubleArrayData extends DataType<double[]> {
|
||||
|
||||
@Override
|
||||
public void encode(PacketWriter packetWriter, double[] value) {
|
||||
packetWriter.writeVarInt(value.length);
|
||||
for (double val : value) {
|
||||
packetWriter.writeDouble(val);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double[] decode(PacketReader packetReader) {
|
||||
double[] array = new double[packetReader.readVarInt()];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = packetReader.readDouble();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package net.minestom.server.data.type.array;
|
||||
|
||||
import net.minestom.server.data.DataType;
|
||||
import net.minestom.server.network.packet.PacketReader;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
|
||||
public class FloatArrayData extends DataType<float[]> {
|
||||
|
||||
@Override
|
||||
public void encode(PacketWriter packetWriter, float[] value) {
|
||||
packetWriter.writeVarInt(value.length);
|
||||
for (float val : value) {
|
||||
packetWriter.writeFloat(val);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float[] decode(PacketReader packetReader) {
|
||||
float[] array = new float[packetReader.readVarInt()];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = packetReader.readFloat();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package net.minestom.server.data.type.array;
|
||||
|
||||
import net.minestom.server.data.DataType;
|
||||
import net.minestom.server.network.packet.PacketReader;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
|
||||
public class IntegerArrayData extends DataType<int[]> {
|
||||
|
||||
@Override
|
||||
public void encode(PacketWriter packetWriter, int[] value) {
|
||||
packetWriter.writeVarInt(value.length);
|
||||
for (int val : value) {
|
||||
packetWriter.writeInt(val);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] decode(PacketReader packetReader) {
|
||||
int[] array = new int[packetReader.readVarInt()];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = packetReader.readInteger();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
|
@ -5,9 +5,6 @@ import net.minestom.server.item.ItemStack;
|
|||
import net.minestom.server.network.packet.PacketReader;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemStackArrayData extends DataType<ItemStack[]> {
|
||||
@Override
|
||||
public void encode(PacketWriter packetWriter, ItemStack[] value) {
|
||||
|
@ -19,12 +16,10 @@ public class ItemStackArrayData extends DataType<ItemStack[]> {
|
|||
|
||||
@Override
|
||||
public ItemStack[] decode(PacketReader packetReader) {
|
||||
List<ItemStack> items = new ArrayList<>();
|
||||
int size = packetReader.readVarInt();
|
||||
for (int i = 0; i < size; i++) {
|
||||
items.add(packetReader.readSlot());
|
||||
ItemStack[] items = new ItemStack[packetReader.readVarInt()];
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
items[i] = packetReader.readSlot();
|
||||
}
|
||||
ItemStack[] array = items.toArray(new ItemStack[items.size()]);
|
||||
return array;
|
||||
return items;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package net.minestom.server.data.type.array;
|
||||
|
||||
import net.minestom.server.data.DataType;
|
||||
import net.minestom.server.network.packet.PacketReader;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
|
||||
public class LongArrayData extends DataType<long[]> {
|
||||
|
||||
@Override
|
||||
public void encode(PacketWriter packetWriter, long[] value) {
|
||||
packetWriter.writeVarInt(value.length);
|
||||
for (long val : value) {
|
||||
packetWriter.writeLong(val);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long[] decode(PacketReader packetReader) {
|
||||
long[] array = new long[packetReader.readVarInt()];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = packetReader.readLong();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package net.minestom.server.data.type.array;
|
||||
|
||||
import net.minestom.server.data.DataType;
|
||||
import net.minestom.server.network.packet.PacketReader;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
|
||||
public class ShortArrayData extends DataType<short[]> {
|
||||
|
||||
@Override
|
||||
public void encode(PacketWriter packetWriter, short[] value) {
|
||||
packetWriter.writeVarInt(value.length);
|
||||
for (short val : value) {
|
||||
packetWriter.writeShort(val);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public short[] decode(PacketReader packetReader) {
|
||||
short[] array = new short[packetReader.readVarInt()];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = packetReader.readShort();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package net.minestom.server.data.type.array;
|
||||
|
||||
import net.minestom.server.data.DataType;
|
||||
import net.minestom.server.network.packet.PacketReader;
|
||||
import net.minestom.server.network.packet.PacketWriter;
|
||||
|
||||
public class StringArrayData extends DataType<String[]> {
|
||||
|
||||
@Override
|
||||
public void encode(PacketWriter packetWriter, String[] value) {
|
||||
packetWriter.writeVarInt(value.length);
|
||||
for (String val : value) {
|
||||
packetWriter.writeSizedString(val);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] decode(PacketReader packetReader) {
|
||||
String[] array = new String[packetReader.readVarInt()];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = packetReader.readSizedString();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue