This is
complete rewrite of hologram handling, which includes new hologram save file format, so on initial startup and legacy format gets detected then backup file will be created inside FileBackups folder with appropriate time and date. This action will be repeated until hologram file gets saved with new format, which only happens on hologram edit actions. This backup is there in case you will want to go back due to some issues unforeseen issues.
Recommendation is to test this version before launching on live server incase transition to new format was not successful.
Caveats: Plugins utilizing CMI holograms might either break or no longer perform as expected, while it should not cause error messages, it quite likely will not produce same results due to complete change in how holograms are being handled now.
So now the the fun part, a change log.
- Entire hologram handling was completely remade from the ground up to be far more async-friendly and more unified across the board, as the previous version was built on top of itself over the years, with each new feature added being just a patch. Now it’s built with all capabilities taken into consideration and is more future-proofed.
- Added option to show armor stand-based holograms for those who have the cmi.hologram.seeold permission node. This allows you to have different types of holograms per player, mostly for servers with multi-version support, to still properly show holograms for pre-1.19 users while showing new types of holograms for everyone else. Keep in mind that, due to limitations of old holograms, things like item or text scaling aren’t possible. If you are using this for multi-version support, try to avoid modifying modern look scaling and offsets to keep it more consistent across versions.
- As the base was reworked, holograms now support multiple clickable inputs per line, and the plugin will try its best to guesstimate where they are located and detect which part is being clicked. Keep in mind that this is just a guesstimate, as what the player sees on their end might differ from what you see, since it’s all based on the client’s resource pack usage and text dimensions. Base detection is based on the Vanilla font. Alternatively, you can adjust the detection area size to better match interaction zones if needed. Usage of this system is the same as before with a single clickable option. Now you can simply stack them: "<T>&7Heal Me </T><H>&5Heal Me </H><C>cmi heal [playerName]</C><T>&7Feed Me</T><H>&5Feed Me </H><C>cmi feed [playerName]</C>". This is potentially not limited in how many you can have in one row, though longer inputs might require editing the save file directly due to chat input length limits. This should continue working if you have text alignment set to left, right, or center.
- Added option to define base and hover prefixes for text sections which can be clicked to perform commands, simplifying setup of visuals for the entire hologram. This only applies to CText sections with attached commands and if those doesn't have already defined hover look
- Added aimlines and aimgui as new subcommands to quickly open the line editor or GUI of the hologram you are looking at. This allows you to quickly pick the correct hologram instead of figuring out which one it is. Additionally, new subcommands lastlines and lastgui will open either the line editor or GUI of the last edited hologram.
- Added sub command for reload command to only reload holograms avoiding potential slight hiccup if you tried to reload entire plugin when you are only interested in updating holograms
- Removed icon and line spacing options. This was done to simplify internal handling and to unify behavior between armor stand and the new display method, where both should be more or less identical in size and spacing. This might require adding extra empty lines if you are still using armor stand-type holograms. There is now an option to offset icons for armor stand holograms, allowing adjustments for a better fit.
- Removed downward order to simplify handling, as the majority of use cases involve holograms growing upwards. Since holograms in NDM mode can now be with offset, a separate option is no longer needed.
- Save file was reworked to be more compact and organized. A one-time conversion from the old format will be performed, so existing holograms should keep working, but on the next save it will be changed to the new format, which isn't backwards compatible, atleast not fully, so in case you want to go back, double check that holograms save file is in older format, or simply copy over backup file.
- General GUI update to include new options. Expanded some vector-type manipulations into their own GUI window's to keep the main GUI more compact. Added an animations window where you can adjust update rates.
- In New Display Mode (NDM). Added missing two hologram types, so it now supports Fixed, Horizontal, Vertical, and Centered types. The deprecated armor stand mode behaves the same as the Vertical type in NDM.
- In NDM. Interactable holograms now work with any hologram type and with any pitch/yaw.
- In NDM. Added option to offset the hologram center, allowing more customization with different tracking modes. By default, the rotation point is at the bottom center.
- In NDM. Added option to scale icons in all directions.
- In NDM. Added option to offset icons in all directions.
- In NDM. Added option to rotate icons in all directions. This for time being applies to all icons on entire holograms and you can't adjust it per icon.
- In NDM. Added option for auto-rotation, which rotates the hologram (in applicable modes) around its origin point, allowing more dynamic holograms.
- In NDM. Icons now properly rotate with the entire hologram independently of NDM type, maintaining their correct position.
- In NDM. Added option to fade in and fade out holograms when entering or leaving their visual range, creating a smoother transition. At the moment this is just basic animation which includes few extra frames until hologram is fully visible or hidden and is being played at servers 20 fps rate, so might look somewhat "choppy", future updates should increase animation fps rate
- In NDM. Full support for MiniMessages has been added. This only works on supported server versions and types.
- In NDM. Added option to make text see-through, allowing it to be visible from behind blocks. This has an interesting side effect when combined with hologram boards: the text can become invisible in normal situations but visible when viewed from behind a block, effectively creating hidden text.
- In NDM. Added option to show a "board," which adds a background block item that can be scaled to fit your needs. This automatically adjusts hologram text placement and works with any hologram type. It includes customization options such as material selection (block types), offsets, and dimensions. The hologram will attempt to auto-scale the board to fully contain the text, but you can manually adjust dimensions if needed. For interactable holograms, the interaction plane is at the front. Avoid double-sided interactable holograms or keep board width small for consistent detection. Double-sided interactable holograms are possible, but only one (front) interaction plane is checked for efficiency. Icons are only shown once, even for double-sided holograms, so they may not appear on the back side. Use thinner boards or stretch and offset along the Z axis to display on both sides.
- Added option to offset the interaction plane if it does not align with what is shown, improving detection in edge cases. This mostly relevant while having placeholders, as plugin might fail to detect correct size of the line after placeholder translation.
- When editing holograms, interaction plane size and offset are visualized with particles indicating the interaction bounds, which disappear after 10 seconds.
- Removed option to choose between new and old interaction mechanics. It now defaults automatically based on server version.
- Removed option to auto-create next/prev page holograms, as pagination is now handled within the same hologram. A button remains to insert pagination controls directly into the hologram without creating additional ones. Line itself can be adjusted in locale file, which handles what commands will be performed
- Added two special command variables, [nextPage] and [prevPage], for switching pages within a hologram. For example, <T>Go Back</T><C>[prevPage]</C> switches to the previous page. This is more efficient than triggering the hologrampage command.
- Added option to define particle positions around holograms when hovering over interactable ones in all three directions.
- Removed option to stabilize particles, as it is no longer needed.
- Interaction particle animation direction now changes if spacing is set to a negative value.
- Hologram show/hide range is now determined by a spherical shape instead of a cuboid, providing more accurate visibility, especially when multiple holograms are placed in a row.
- Interactable holograms now trigger updates when hovering over a new line or interaction section, eliminating the need for additional update rates if the hologram contains static text or only needs updates on hover.
Some additional information and examples can be found at updated
wiki page