UUID модификатора

Версия Minecraft
1.7.10
77
3
8
Сразу прошу прощение за возможно непонятное объяснение, я слишком еще новичек в программирование, но я постараюсь более-менее внятно объясниться.

Суть вопроса:

Я создаю модификатор для сердец, для своих нужд (хп бара и тому подобного)
Столкнулся с ошибкой что если добавить этот модификатор (прописанный UUID, не рандомный) на ивент при входе на сервер, и если его после этого не удалить на ивенте выхода с сервера, будет краш при последующих входах на сервер.

Понял что можно сделать ветвление через if эквивалентного UUID, тобиш при в ходе на сервер срабатывает ивент модификатора, дальше проходит проверка UUID на игроке, если его нет - то добавляет, если есть - ретурнит.

Так вот, к чему привязывается UUID, или точнее как проверить добавлен он игроку или нет, я возможно практически ответил на свой вопрос, просто не знаю как реализовать6qBICZggRhc.jpg
 
Последнее редактирование:
У каждой сущности есть свой уникальный UUID. И у двух игроков он не может быть одинаковым.
То, что ты хочешь, можно сделать через nbt, если не ошибаюсь. Что-то вроде event.entity.getNBT и делать это после проверки на то чтоСущностьИгрок.
Код дать не могу, ибо не помню.
 
Так, стоп, я тогда подзапутался, я вкурсе что эта шляпа(так назову ее) связана с NBT, но я думал что UUID в данном случае относиться к модификатору, то есть его ID, если это не так помогите тупому) ну типо идентификатор модификации...
 
Вот, я похоже сформулировал, на 27 строке моего кода видно что UUID принадлежит не сущности, а AttributeModifier, ID его идентификатор.

1539617697129.png

Значит, при срабатывании ивента когда входит игрок, модификатор присваивается игроку, и у него есть UUID, так вот что я хочу сделать, проверить есть ли этот идентификатор на игроке, и если есть, то не присваевать при следующих входах в игру. Эта штука мне нужна постоянно на всех игроков разом, что бы была основная система исчисления жизней (не 10 сердец к примеру у игрока, а 20 по дефолту, после я их хочу перевести в единицы в худе 1 сердце - 1 единица здоровья)

Думаю должно получиться примерно следующее, только проверяться будет наличие UUID у игрока:

1539617792117.png
 
Ответ проще чем казалось, мне нужно было что бы изменилось базовое значение для дальнейших работой с maxHealth так вот все что нужно было player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBase(1234);

Вопрос закрыта. timaxa007 еще раз спасибо)
 
Назад
Сверху