package net.minestom.server.data; import net.minestom.server.data.type.CharacterData; import net.minestom.server.data.type.*; import net.minestom.server.utils.PrimitiveConversion; import java.util.HashMap; import java.util.Map; public class DataManager { private Map dataTypeMap = new HashMap<>(); { registerType(Byte.class, new ByteData()); registerType(Boolean.class, new BooleanData()); registerType(Character.class, new CharacterData()); registerType(Short.class, new ShortData()); registerType(Integer.class, new IntegerData()); registerType(Long.class, new LongData()); registerType(Float.class, new FloatData()); registerType(Double.class, new DoubleData()); registerType(String.class, new StringData()); registerType(Data.class, new DataData()); } public void registerType(Class clazz, DataType dataType) { clazz = PrimitiveConversion.getObjectClass(clazz); if (dataTypeMap.containsKey(clazz)) throw new UnsupportedOperationException("Type " + clazz.getName() + " has already been registed"); this.dataTypeMap.put(clazz, dataType); } public DataType getDataType(Class clazz) { return dataTypeMap.get(PrimitiveConversion.getObjectClass(clazz)); } }