Привязка переменных к игрокам

Версия Minecraft
1.12.2
Как можно привязывать переменные к игрокам? Мне нужно к каждому игроку привязывать по 2 int
 
243
28
202
Можно ещё через DataManager (автоматическая синхронизация) или напрямую добавлять теги в NBT получая данные игрока с помощью EntityPlayer#getEntityData()(быстро и просто). В любом случае нужно обеспечить сохранение и загрузку данных между сессиями.
 
243
28
202
Сохранять int в NBT игрока: EntityPlayer#getEntityData().setInteger("key", value). Но слишком часто делать это не следует.

При выходе из игры тоже требуется сохранение:
Java:
@SubscribeEvent
public void onPlayerLogOut(PlayerLoggedOutEvent event) {
                     
    player.getEntityData().setInteger("key", value);
}


Получать значение так: EntityPlayer#getEntityData().getInteger("key")

В случае смерти игрока или перемещении между мирами нужно переносить значение в новую сущность:
Java:
    @SubscribeEvent
    public void onPlayerClone(PlayerEvent.Clone event) {
                             
        event.getEntityPlayer().getEntityData().setInteger("key", event.getOriginal().getEntityData().getInteger("key"));
    }


Изменять и сохранять нужно на серверной стороне, с клиентом синхронизировать пакетами. Такой способ подходит если нужно хранить одну-две переменных, которые используются нечасто.
---------------
Рекомендую ознакомиться с этим: IAttribute & DataManager
 
Сверху