- 112
- 5
- 16
Доброго времени уток.
Недавно познакомился с таким интересным явлением как NBT.
Использую NBT игрока, давая ему X boolean для отметки того, что он уже сделал действие N.
Но при смерти и выходе с сервера NBT теряется.
Пытался пофиксить потерю при смерти таким не хитрым делом
но клону это дело не присваивается.
Так же я заметил, что всегда есть один оригинал)
Т.Е. если для теста, вместо булиня сделать integer и при использовании X предмета повышать этот
коунтер, то у оригинала будут ВСЕ использования.
Т.Е. Если по очереди убивать
Оригинал - 3 нажатия
1 клон - 3 нажатия
2 клон - 3 нажатия
И при смерти клона 2, если в ивенте PlayerEvent.Clone
вызвать getOriginal и получить с него дату, то там будут все 9 нажатий.
Хотя в PlayerEvent.Tick я пытаюсь получить тот самый Boolean, но он выдаёт false, хотя до смерти выдавал True :|.
Подскажите пожалуйста, как правильно сохранять и присваивать NBT игрока при смерти или выходе с сервера.
Спасибо
Недавно познакомился с таким интересным явлением как NBT.
Использую NBT игрока, давая ему X boolean для отметки того, что он уже сделал действие N.
Но при смерти и выходе с сервера NBT теряется.
Пытался пофиксить потерю при смерти таким не хитрым делом
Java:
@SubscribeEvent
public void playerClone(PlayerEvent.Clone e){
NBTTagCompound orig = e.getOriginal().getEntityData();
NBTTagCompound clone = e.getEntityPlayer().getEntityData();
clone.setBoolean("isUsedApple", orig.getBoolean("isUsedApple"));
}
Так же я заметил, что всегда есть один оригинал)
Т.Е. если для теста, вместо булиня сделать integer и при использовании X предмета повышать этот
коунтер, то у оригинала будут ВСЕ использования.
Т.Е. Если по очереди убивать
Оригинал - 3 нажатия
1 клон - 3 нажатия
2 клон - 3 нажатия
И при смерти клона 2, если в ивенте PlayerEvent.Clone
вызвать getOriginal и получить с него дату, то там будут все 9 нажатий.
Хотя в PlayerEvent.Tick я пытаюсь получить тот самый Boolean, но он выдаёт false, хотя до смерти выдавал True :|.
Подскажите пожалуйста, как правильно сохранять и присваивать NBT игрока при смерти или выходе с сервера.
Спасибо