TextDisplayShapes 3.0.0
What's New
VirtualEntities packet backend
The packet module now uses VirtualEntities 0.9.0 instead of EntityLib. Packet shapes remain server-entity-free while gaining a shared virtual entity lifecycle, PacketEvents transport, root-anchor relocation, and packet bundle support.
- One application-owned
VirtualEntityManagercan be shared across all packet shapes. - Canonical
VirtualViewerinstances are reused per PacketEvents connection, preventing viewer replacement and entity replay storms. PacketShapeFactory.viewer(User)andaddViewer(VirtualEntity, User)let application-owned labels share the same viewer lifecycle.- Reconnected users receive a new viewer tied to the new connection.
Compatibility and packaging
- Java 17 bytecode
- Minecraft 1.19.4+ Text Display metadata support
- PacketEvents 2.13.0
- Paper, Spigot, API, and packet modules published as version 3.0.0
- Sources and Javadocs are attached to every module
- Mineflayer integration dependencies now pass
npm auditwith zero vulnerabilities
Breaking Changes
The packet API now exposes VirtualEntities types. PacketLine, PacketPolyline, PacketTriangle, and PacketParallelogram return List<VirtualEntity> from getEntities() instead of EntityLib wrappers.
Applications should create one manager at plugin scope and pass it to the factory:
VirtualEntityManager entities = VirtualEntities.create();
PacketShapeFactory shapes = new PacketShapeFactory(entities);Close the manager during plugin shutdown. The no-argument factory remains available for standalone use and owns its internally created manager.
Verification
- 7/7 Maven tests passed
- Paper 1.21.11 + Mineflayer end-to-end test passed
- E2E verified Text Display spawn and metadata, root-anchor relocation, and packet bundle ordering
- Same-connection viewer reuse and reconnect replacement are covered by unit tests
- Public artifacts target Java 17 and contain no EntityLib classes
- GitHub Release and TWME Maven repository artifacts were verified after publishing
Installation
<repository>
<id>twme-releases</id>
<url>https://repo.twme.dev/releases</url>
</repository>
<dependency>
<groupId>dev.twme</groupId>
<artifactId>textdisplayshape-packet</artifactId>
<version>3.0.0</version>
</dependency>The same version is available for textdisplayshape-api, textdisplayshape-paper, and textdisplayshape-spigot.
Full Changelog: 2.0.2-SNAPSHOT...v3.0.0