Помогите Вопрос, связанный с голограммами

  • Автор темы Автор темы CoolBoy
  • Дата начала Дата начала

CoolBoy

Активный участник
Пользователь
Баллы
96
Имя в Minecraft
Xezard
Доброго времени суток, всем читающим.

Пишу плагин на кланы. И столкнулся с проблемой. При создании клана, на точке, на которой он создан - появляется голограмма. На данный момент, моя реализация работы с голограммами меня совсем не устраивает. Дело в том, что созданную голограмму я помещаю в мапу <Клан, Голограмма>, и потом, когда игрок умирает, перезаходит, перерождается и т.д. я, с помощью пакетов, передаю игроку все голограммы, с помощью цикла.

Не очень то разумное решение, ведь голограмм может быть 100 или даже 1000. Что делать тогда?

Тут же, в голову пришла другая идея - слушать PlayerMoveEvent и передавать игроку голограммы ближайших кланов, скажем, в радиусе 32 блоков.

Собственно, вопрос:
Как лучше всего реализовать то, что я хочу?
 
слушать PlayerMoveEvent и передавать игроку голограммы ближайших кланов, скажем, в радиусе 32 блоков.
 
Так а что, ты голограммы сам создаешь? Если через HolographicDisplays (HoloAPI?), оно не умеет само по расстоянию работать?
 
Так а что, ты голограммы сам создаешь? Если через HolographicDisplays (HoloAPI?), оно не умеет само по расстоянию работать?
Зависимости мне ни к чему :)
Голограммы создаю сам, через армор стенды.

PlayerMoveEvent, как мне кажется, слушать будет слишком мажорно.
При большом количестве игроков, уверен, это скажется на производительности.
 
А зачем передавать то? Энтити сама себя передаст, когда игрок подойдет.
 
Так на пакетах и рефлексии же всё.
Ну на скоко я знаю, стойка это самая оптимизированная энтити в майне. Так что не страшно если их много будет. Когда создаешь стойки добавляй ей какойнибудь NBT таг. И тупо отменяй потом евент смерти стойки если на ней есть NBT таг.
 
слушать PlayerMoveEvent и передавать игроку голограммы ближайших кланов, скажем, в радиусе 32 блоков.
Ну что, решение поизящнее никак больше не придумать? :(
Античит слушает PlayerMoveEvent, еще и кланы мои. Не очень то хорошо.
 
Ну а что насчёт шедулера?
Да я вот думаю, создам раннабл, который будет проходится по всем голограммам и чекать в радиусе 32 блоков плееров. Дальше проверять, отправлена ли голограмма. Если нет - отпрвлять, если да - ничего не делать. Так, думаю, проще всего.
 
У меня по такому же принципу NPC реализованы. Посылаю их клиенту их после отправки
PacketPlayOutMapChunk. Так же вроде и ванильный майн делает...
P.S. У самого голограммы на стендах (причём ещё и над передвигающимися мобами), поэтому хотел поинтересоваться, почему используешь NMS, а не тот же CraftBukkit? Нагрузочка со стороны баккита исключается или что?
 
Назад
Верх