Exemplo n.º 1
0
  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());
    }
  }
Exemplo n.º 2
0
  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);
    }
  }