private static <T> void writeEntry(PacketBuffer buf, EntityDataManager.DataEntry<T> entry) throws IOException { DataParameter<T> dataparameter = entry.getKey(); int i = DataSerializers.getSerializerId(dataparameter.getSerializer()); if (i < 0) { throw new EncoderException("Unknown serializer type " + dataparameter.getSerializer()); } else { buf.writeByte(dataparameter.getId()); buf.writeVarIntToBuffer(i); dataparameter.getSerializer().write(buf, entry.getValue()); } }
public <T> void register(DataParameter<T> key, T value) { int i = key.getId(); if (i > 254) { throw new IllegalArgumentException( "Data value id is too big with " + i + "! (Max is " + 254 + ")"); } else if (this.entries.containsKey(Integer.valueOf(i))) { throw new IllegalArgumentException("Duplicate id value for " + i + "!"); } else if (DataSerializers.getSerializerId(key.getSerializer()) < 0) { throw new IllegalArgumentException( "Unregistered serializer " + key.getSerializer() + " for " + i + "!"); } else { this.setEntry(key, value); } }