Синхронизация и сохранение IEEP

Версия Minecraft
1.7.10

Sainthozier

Стрелочник
623
11
369
Всем привет.

Раньше приходилось, конечно же, юзать пакеты, чтобы синхронизировать и сохранять IEEP при тп по мирам и смерти. Но в свете последних событий, у меня недостаточно знаний в области применения пакетов, чтобы быть на 100% уверенным, что моя реализация безопасна и не имеет пакетных уязвимостей.
Так вот, я декомпильнул несколько модов(в целях самообразования, разумеется) и увидел, что многие сохраняют всё в тег PlayerPersisted, а так же, порывшись в коде, я не заметил реализаций синхронизации IEEP в ивентах смерти и подключения к миру. Почему? Что это вообще за тег такой, его содержимое из коробки сейвится(судя по названию)?
 
Решение
Я делаю синхронизацию в EntityJoinWorldEvent. Он срабатывает во всех случаях: при заходе в мир, при телепорте в другое измерение и тд.
В PlayerEvent.Clone собственно копирую данные, чтобы при смерти и респавне она не пропала.
Этого достаточно для адекватной работы.
что многие сохраняют всё в тег PlayerPersisted
А это кастомные данные, но их тоже нужно синхронить ручками, зато отпадает необходимость юзать PlayerEvent.Clone - майн делает это автоматом для тега.
Тег имеет смысл юзать если у тебя одна-две переменные, которые иногда нужно изменять.
Если же у тебя куча переменных, то удобнее и красивее будет юзать IEEP.

tox1cozZ

aka Agravaine
8,455
598
2,892
Я делаю синхронизацию в EntityJoinWorldEvent. Он срабатывает во всех случаях: при заходе в мир, при телепорте в другое измерение и тд.
В PlayerEvent.Clone собственно копирую данные, чтобы при смерти и респавне она не пропала.
Этого достаточно для адекватной работы.
что многие сохраняют всё в тег PlayerPersisted
А это кастомные данные, но их тоже нужно синхронить ручками, зато отпадает необходимость юзать PlayerEvent.Clone - майн делает это автоматом для тега.
Тег имеет смысл юзать если у тебя одна-две переменные, которые иногда нужно изменять.
Если же у тебя куча переменных, то удобнее и красивее будет юзать IEEP.
 
Сверху