package net.querz.mcaselector.changer; import net.querz.mcaselector.validation.ValidationHelper; import net.querz.nbt.tag.CompoundTag; import net.querz.nbt.tag.IntTag; public class DataVersionField extends Field<Integer> { public DataVersionField() { super(FieldType.DATA_VERSION); } @Override public Integer getOldValue(CompoundTag root) { return ValidationHelper.withDefault(() -> root.getInt("DataVersion"), null); } @Override public boolean parseNewValue(String s) { try { if (s.matches("^[0-9]+$")) { setNewValue(Integer.parseInt(s)); return true; } } catch (NumberFormatException ex) { //do nothing } return super.parseNewValue(s); } @Override public void change(CompoundTag root) { IntTag tag = root.getIntTag("DataVersion"); if (tag != null) { tag.setValue(getNewValue()); } } @Override public void force(CompoundTag root) { root.putInt("DataVersion", getNewValue()); } }