Does this use real entities now?
Opened this issue ยท 5 comments
I remember back in the day this plugin used to work on protocol level, meaning it would never create real entities on the server. I downloaded the 1.14.4 development build, and it appears that it now uses real entities instead of just faking them with packets. If a hologram is in the world, I can do /kill @e[type=!player]
and it will say Killed <Hologram's name>
or Killed n entities
if there is more. The plugin now also doesn't require ProtocolLib.
Is there a specific reason this change was made, and is it temporary (e.g. during development)?
Using real entities can be a drawback on performance, and it can probably produce some bugs. Furthermore, I would consider using entities, which have special NBT tags and scripts preventing them to function as normal (for dropped items), is a "hack" solution.
I would go as far as to saying that if this is how the plugin functions from now on, I will go ahead and install an older version or a completely different plugin.
Thanks, I'm looking forward to your reply.
I can confirm that, this is the HD 1.7 (first commit ever on this git repo) https://github.com/filoghost/HolographicDisplays/blob/915f1afbf9566d277c3372a1618e656198900da3/HolographicDisplays/src/com/gmail/filoghost/holograms/nms/v1_7_R3/EntityHologramHorse.java it already uses custom nms entities
If you are able to kill holograms with the kill command then this is a bug, report it and it will be fixed.
This plugin always used real entities, but they don't "tick" like normal entities. They're actually faster than packets in most cases, because in that case you would "simulate" an entity: this means monitoring players' movement in order to send them packets. When doing that, you're using bukkit methods that are slower than NMS methods.
Basically, with packets, you would be doing what you would be doing with real entities, and that is less efficient.