Сохранять int в NBT игрока:
EntityPlayer#getEntityData().setInteger("key", value)
. Но слишком часто делать это не следует.
При выходе из игры тоже требуется сохранение:
@SubscribeEvent
public void onPlayerLogOut(PlayerLoggedOutEvent event) {
player.getEntityData().setInteger("key", value);
}
Получать значение так:
EntityPlayer#getEntityData().getInteger("key")
В случае смерти игрока или перемещении между мирами нужно переносить значение в новую сущность:
@SubscribeEvent
public void onPlayerClone(PlayerEvent.Clone event) {
event.getEntityPlayer().getEntityData().setInteger("key", event.getOriginal().getEntityData().getInteger("key"));
}
Изменять и сохранять нужно на серверной стороне, с клиентом синхронизировать пакетами. Такой способ подходит если нужно хранить одну-две переменных, которые используются нечасто.
---------------
Рекомендую ознакомиться с этим:
IAttribute & DataManager