- Added 1.21.4 support
- Added an option to choose between different scroll pane scroll behaviors when end is reached (snap, stop)
- Fixed scroll panes not working when the inner size is smaller than the size of the viewport
- Added 1.21.3 support
- Adjusted text display entity handling to work with rendering changes in 1.21.3 (includes players connecting with ViaVersion)
- Performance improvements
- Added an option to choose between legacy and MiniMessage formatting for text objects and send message function.
This is the first release of
InteractiveBoard 2, a rewrite of the plugin that adds fully dynamic objects with hover support for all properties, conditions, improves performance and ease of use of the plugin.
- Added support for 1.20.5-1.21.1
- New, easier to read and use configuration syntax.
- New documentation page that describes all of the new features and how to use them.
- All object properties support different values on hover and dynamically updating placeholders.
- Any object capable of visibility can be used as a button, by adding on-click trigger to it.
- Added action listener object, action listener facilitates communication between Minecraft and board scenes, by making it possible to trigger board functions using commands.
- Completely new text rendering system.
- Greatly improved text rendering quality.
- Bold/italic/underline/strikethrough chat color formatting support for text/auto_font_size_text.
- New baseline setting allows the text to stay on a consistent baseline (very useful for text with placeholders, where the height of text can change)
- Pixel text has new shadow property, that can be used to add a shadow effect to the text.
- New skin rendering system. 3D skins get pre-flattened to 2D, so only color filling operations are needed to render individual player skins. This results in greatly improved performance.
- Redesigned view grouping system - now it is possible to group players in any combination of individual or group views based on permissions
- New condition system - objects, functions and view groupings can use various conditions (balance, permission checks, etc.) to add requirements.
- Redesigned layout system - alignment and vertical alignment can be used on all objects. Object size dimensions can be declared using percentages of the parent object/scene size dimensions.
- Redesigned board creation process.
- Redesigned commands and messages.
- Drastically improved reload times.
- Hybrid scene composer - automatically converts backgrounds to virtual text display entities when possible. This change allows backgrounds to be partially transparent.
- Various performance improvements, only the parts of board that change are sent as updates.
- Improved scroll panes - the inner size of scroll panes can be computed dynamically, based on how much area the inner objects take up.
- Rewritten packet handling - the new system writes packets directly, avoiding any interfacing with the actual world, which enables highly concurrent operations. Packet system is completely server version agnostic, newer clients will be able to use all of the features added in newer versions, even when connecting to a server that is running an old version of Minecraft.
- Configuration files are backed up automatically when performing major config format updates.
- Various other small changes, bug fixes, and improvements.
- Added 1.20.2 support
- Added support for glow and invisible item frames through ViaVersion, so even if your server is running on an older version of Minecraft, players on newer clients will be able to see glow/invisible item frames.
- Added an optional interaction-distance option (can be added next to the usual distance option to specify an interaction distance different to the activation distance)
- Added native Velocity support
- Added a configurable frame delay option, useful for cases where other plugins may mess up the order of packets sent to the player.
- Added an option to pause gifs for Bedrock edition clients.
- Fixed capitalization option for text objects.
- Fixed text alignment not working correctly.
- Fixed potential issues with entity ids for <1.14 versions.
- Removed support for 1.7.10 clients, as it seems that the version has unsolvable lag issues caused by the client processing map packets. If a solution for this is somehow found in the future, support will be added.
- Other minor changes.
- Optimized map color conversion process for significant performance gains
- Reloads and resets are now instant
- Added ViaVersion, ViaBackwards, ViaRewind support
- Added a color remapping system to convert maps that use map colors from newer versions to maps that only use colors found in the client version
- For older client versions that do not support invisible item frames, frame width is calculated as visible to keep the sub-pixel click accuracy (clients before 1.16)
- For clients before 1.13 16-bit map ids are used to display maps correctly.
- Important: for ViaBackwards and ViaRewind support to work correctly, those plugins must be installed on the server, not the proxy. Also, the InteractiveBoard bungee plugin has to be installed on the proxy.
- Improved Geyser support
- Click calculations are always done with visible item frame width to maintain sub-pixel accuracy.
- Reduced memory consumption
- Fixed reliability issues with image loading
- Rewritten item frame spawn/destroy system
- Added bold character support to PixelText
- Fixed default skin texture for skin renderers
- Improved scene switch performance
- Added 1.20 support
- Fixed hex colors
- Added cape support for skin rendering
- Improved reload/reset stability
- Fixed hex colors not working properly
- Improved parsing of skin textures, now skins should work properly even when the target player is offline
- Added live updates for all skin objects
- Added live updates for "permission" property of all objects
- Added support for Folia, intercompatibility with other plugins may not be perfect due to this platform being new.
- Added MultiPaper support (reload/reset/delete/create is not synchronized)
- Fixed hover not registering individually
- Added hover support for global mode
- Fixed boards not being visible for newly entered additional players in global mode
- Fixed images that use placeholders in the name not updating after the placeholder changes
- Removed scale property which was unused
- Internal changes to simplify the complexity of the plugin
- Added additional hex color format (usage: �)
- Added placeholder support for default scene settings
- Fixed global mode not registering clicks
- Added ability to create ceiling boards through the selection tool
- Fixed board deletion confirmation not working
- Added placeholder support for all object properties, note that placeholder values for most object properties will only get taken on the initialization of the object with continuous refreshing only working for text and image objects. This limitation will get addressed in future updates.
- Added full placeholder support for functions, now any property of a function can have placeholders in it that will get parsed.
- Improved compatibility with other plugins that use maps
- Fixed board proximity ordering not being correct for scroll events
- Fixed bungee freeze fix for 1.8-1.10 not working
- Optimized skin fetching
- Added error handling for headless JVMs that do not have graphics libraries needed for InteractiveBoard to work.
- Fixed player related data not getting cleared properly if a player logged off near a board. This issue caused memory consumption to build up over time, so it is highly recommended to update to the latest version as soon as possible to prevent any issues.
- Added ceiling board support
- Reduced plugin file size
- Fixed board item frames not all despawning at once
- Added additional error handling
- Improved reload speeds for the plugin
- Reduced board unload times
- Fixed stability issues that could occur on plugin loads and player joins
- Added support for 1.19.3
- Added error handling for placeholders
- Fixed potential performance and stability issues
- Added bungee support for the workaround needed to keep boards from freezing on 1.8-1.10 versions due to bugs in those versions. Velocity support and improved proxy communication will be added in a future update.
- Added hex color code for all text objects
- Added error scenes for cases when a scene can't get loaded properly. This will help with debugging boards that have issues.
- Added 2D head renderer
- Fixed some values not being removed from board config files automatically
- Rewrote the way displays are managed to allow for one board to have multiple displays. Also changed how display coordinates are structured in board configuration files. Currently, additional displays have to be manually added to the configuration file, but commands for adding them will be added in future updates.
- Fixed frame duplication glitches caused by using /ib reload
- Fixed errors caused by concurrency issues
- Improved the cold start time of the plugin (the time the plugin takes to load from a complete reload, like with PlugMan) by optimizing the color palette loading which was the main bottleneck.
- Fixed a bug caused by boards not being properly sorted based on the distance from the player, which resulted in the possibility of clicks being registered on far-away boards instead of the nearest ones.
- Fixed boards getting bugged after a reload in some scenarios
- Other internal changes
- Fixed an issue with click registering that allowed for two buttons to be pressed at once.
- Fixed bugs with skins not being rendered properly.
- Added outlines for buttons, you can adjust the color for them for regular and hover states.
- Improved the board deletion screen, now it will be consistent between different platforms and look better.
- Added support for floor boards (1.13+)
- Fixed a bug which didn't allow creation of 1 block tall boards.
- Fixed packet system related console errors
- Fixed not being able to create boards near one another at 90-degree angles.
- Made the plugin not depend on worlds being loaded, this will speed up loading times and fix issues with other world management plugins.
This is the first of many upcoming updates to InteractiveBoard that will completely overhaul the plugin. This update focuses on switching to a completely packet based system and general performance improvements. Expect additional updates in the upcoming weeks.
- Switched item frames to packets, now they don't exist in the actual world. This should remove any performance impact item frames entities might have had. This should also help with loading times.
- Switched to a dynamic map id system, now InteractiveBoard no longer reserves any map ids and instead uses left over map ids that are not used by minecraft or other plugins. This change will stop map id bloat over time and allow for great support of older versions (1.8-1.10)
- Improved the general responsiveness of the plugin, now any functions/clicks will register faster.
- Improved the design of the board creation tool.
- Added play sound function.
- Added the first iteration of map-freeze avoidance system for older Minecraft versions (1.8-1.10). This does not yet support bungee/waterfall/velocity proxies or viabackwards/protocolsupport. Both of those things will get addressed in the future updates.
- Added Glow Item Frame support, which can be toggled individually for every board in board configuration files. (Works on 1.17+)
- Fixed a bug in board resets that would cause map duplication detection false positives
- Fixed buttons not behaving as expected in cases when they are disabled due to a lack of permissions
- Added automatic resolving of overlapping map ids, now in cases where there are duplicate boards/item frames using the same map InteractiveBoard will automatically detect that and replace the maps in those item frames.
- Added fontscale property that allows you to change the size of characters in Pixel Text object.
- Added Pixel Text renderer that is useful for displaying text in a pixelated style. It is completely consistent between different operating systems/platforms and can be useful as a fallback on server configurations where TrueType font rendering doesn't work on java.
- Added invisibility option that allows you to toggle the invisibility of item frames separately for every board config.
- Added image updates, now images will refresh if the placeholder in their name/url changes.
- Fixed left arm rotation setting not working properly in the 3d skin renderer
- Made rotation settings of 3d head renderer consistent with 3d skin renderer
- Made rotations of arms, legs and head of 3D skins configurable, now you can pose skins in any way you want.
- Fixed multithreading caused issues during board scene switches.
- Fixed GIFs with playonce set to true causing boards to freeze.
- Fixed boards not spawning properly in older Minecraft versions
- Added newest 1.17+ map colors
- Added support for items added in 1.17+ updates in itembuy and itemsell functions
- Added support for 1.18 version of Minecraft
- Added delay property property that can be used in all functions, you can specify the delay by setting delay: (time in seconds) inside of the function properties.
- Fixed text clipping issue with text that had spaces in front of it
- Added additional functions to control enable state and playback state of objects.
- Fixed text rendering issue
- Fixed behavior inconsistencies with buttons and other small issues
- Added ability to configure the cooldown of buttons in milliseconds
- Fixed auto font size text renderer clipping text vertically
- Fixed localization issues with fonts names that get displayed in /ib fonts command
- Fixed boards that are set to global mode not showing up to players in cases where others are already viewing
- Fixed music player not working properly in global mode
- Fixed chat color codes not working if PlaceholderAPI isn't installed
- Added global mode support for music player
- Improved thread management
- Added pausing support to music player, now it can be paused in the same way as GIFs
- Improved mouse scroll reliability, now scrolling should work as expected in cases where the selected slot loops back.
- Added a new option to scroll pane object that allows you scroll with your scroll wheel by reacting to hotbar changes.
- Improved board creation stability
- Fixed a bug where fonts with uppercase file extensions wouldn't get loaded
- Fixed bugs and inconsistencies with the 3D rendering system
- Improved stability of reloads and made it easier to visually see when a board has been successfully reloaded
- Rewrote/refactored parts of the plugin to make the plugin structure more flexible and implementation of future features easier.
This is the first part of many updates aimed at drastically improving the modularity and features of InteractiveBoard.
- Fixed skin rendering bugs related to old format pre 1.8 skins.
- Added configurable volume to the music player, now you can set the volume in the properties of the object
- Added a workaround for 1.17 versions to check if the chunk has the entities loaded directly. This should fix all of the itemframe breaking issues with 1.17+ versions.
- Removed the delay which caused boards not to show up after creating
- Fixed 1.17 issues caused by the 1.17.1 compatibility update
- Added 1.17.1 version support
- Fixed a gif memory leak that could be caused by rapid plugin reloading
- Experimental workaround to fix the issues caused by 1.17 entity loading in chunks
- Added basic support for the 1.17 Minecraft version, more features like glowing item frames, newly added item support in shops and new map colors will come in future updates.
- Refactored the whole plugin and removed some bundled libraries, now InteractiveBoard works from Java 8 to Java 16 and from Minecraft 1.8.8 to 1.17 from a single jar file.
- Reduced the jar file size
- Added decimal price support to buy/sell functions
- Fixed incompatibility issues related to Java 16
- Added Minecraft chat color support to text, now you can use regular Minecraft char color formatting in the text object to change colors.
- Added newline character support in the Text Renderer object, now you can start new lines through the new line character \n instead of only yaml syntax
- Fixed item frames falling during quick reloads
- Added Virtual Reality support through the Vivecraft Spigot Extension plugin, now the interactions are handled properly through the controller positioning instead of the head location.
- Rewrote parts of the GIF conversion system to use less memory and perform more efficiently. Memory related issues should be fixed.
Added new options to the switch scene function to allow scene switching of remote boards.
- Fixed a scene switching bug that caused global mode boards not work properly
- Added the ability to pause and resume gifs through a new function and the gif object properties.
Fixed x coordinate not working properly with AutoFontSizeText renderer.
- Fixed a bug where the console would get spammed with debug messages on older Minecraft versions
- Improved the first-time loading times of images by making the fetching/converting process async from the main rendering thread.
- Fixed a bug where files saved with MacOS would stop InteractiveBoard from loading configs properly
- Fixed an error related to image sizes.
- Added a setting to refresh images every set period of time
- Improved gif initialization speed
- Fixed end of text being cut down on larger fonts
- Added a coordinates command that can be used to get the x and y coordinates of a board pixel. Usage: /ib coordinates
- Fixed a text rendering issue where smaller size fonts would get a few pixels cut off at the end
- Fixed a bug where objects wouldn't refresh properly when they get enabled/disabled
- Optimized text rendering to fix high memory usage issues.
- Fixed a bug where text would get cut off in scroll panes
- Fixed concurrency issues with reload command
- Fixed a bug where sometimes itemframes would break during reload process.
- Reduced delays in the reload process, now plugin reload speeds should be under 100ms
- Added corner radius to buttons
- Improved board deletion interface to work perfectly on all board sizes
- Improved text rendering precision
- Fixed bugs related to item frames not reporting their state correctly after a board was removed or changed in some way.
- Fixed player data persistence after a plugin reload
- Item frames now automatically default to proper rotation
- Fixed bugs related to text rendering
- Fixed GIF timings, now GIFs switch frames based on the intended delay instead of a fixed framerate.
- Added skin antialiasing for Skin3D and Head3D objects
- Fixed memory leaks caused by gif caching
- Fixed text alignment issues
- Fixed inconsistencies in text rendering
- Fixed interaction related errors
- Improved scene switching reliability
- Improved and fixed bugs with item frame registering system
- Sped up /ib reload process
- Fixed a bug where background object didn't render properly
- Fixed a bug where money from the balance wasn't deducted after purchasing an item
- Improved 3d skin rendering. Now player models are properly centered and the bug where slim player models were rendered lower is fixed.
- Removed forced image refreshing, that should fix any image instability issues, option to have images refresh themselves will get introduced back in an future update.
- Drastically improved the time it takes to load palettes.
- Fixed misaligned text in board deletion menu.
- Now text alignment is in one setting you can set it to left, right or center. Usage alignment: center
- Fixed a bug where text didn't center properly in some cases
Fixed dithering not working with transparent boards.
Added permission support, now you can set it so if a player doesn't have a permission an object won't render or a function won't execute.
- Added outlinecolor and outlinestroke options to text that allow you to have a colored outline around text.
- Added antialiasing option to text that produces better looking text with fonts that aren't pixelated.
- Improved thread memory management which in result reduces garbage collector lag. This should improve performance and fix any network lag.
- Added a font spacing setting that you can use to adjust the distance between letters in a font.
- Added option to reset the board on exit of board radius, can be enabled in the board config, doesn't work with boards that have global setting enabled.
- Fixed a bug where placeholders didn't work correctly on global boards.
- Added PlaceholderAPI support for images that use URLs.
- Added alternative color palettes which produce less accurate colors but provide better looking images in some cases.
- Added additional error message for bad selection handling.
- Highlighted some important parts of the board creation instructions to make them easier to notice.
- Fixed a bug where placeholders didn't work in global mode.
Added 1.16 map color support, now images (especially ones that use purple tones) should look a little better. Also fixed some errors related to gifs.
Fixed a bug related to the processing of transparent gifs.
Added transparent gif support and changed up some parts of the plugin to be more modural, there shouldn't be any difference to the behaviour of the plugin other than in some cases where you're using interactiveboard api.
Added shop messages to functions. You can change the messages in the language config file.
Added selection holograms for 1.15 and 1.16 Minecraft versions. Minor changes to selection hologram handling.
Fixed a bug where the "sellitem" function did not properly check if the right amount of items was present before removing the items and adding money to the player's balance.
The past week I wasn't able to work on InteractiveBoard, now update frequency should be back to usual.
Improved item support in buy and sell functions. Items from new versions of minecraft are added and some items from older versions that didn't work previously should work now.
- Fixed a bug where in 1.16.1 selection tool didn't work properly for some users
- Fixed a bug where a line to the language config was added on every reload, the lines should get removed automatically if they were generated for you, also fixed another prefix typo in the language file
Added a teleport command that can be used to teleport to a board. Usage: /ib teleport <name>
Improved error handling in various ways. Error spamming in console on server start or after reloading when a board config is wrong should be fixed now.
- Added automatic horizontal text centering, you can enable it in a text object by setting centered: true
- Added clearer error handling when an itemframe is unable to spawn
Added a gif reset option which lets you choose if gifs play from the beginning when a scene is loaded, it is set to true by default. Also fixed a bug where corrupted yaml files were overwritten by the plugin.
Improved the reliability of the board creation process, this should fix errors when there is a block in the place where an itemframe is supposed to spawn.
- Fixed a bug where on 1.16 old 1.8 color palette was used
- Fixed a bug where repeat timers didn't work as intended
- Stability improvements to the board rendering system
Added native 3D skin rendering which lets you render player skins on a board without the use of any external skin rendering services. There are a lot of planned features like animations and player armor rendering that are going to be added soon.
Added invisible itemframes for 1.16 that can be used to create holograms. Also did some experimental optimizations to 1.16 that are going to be ported to older minecraft versions in future updates.
Fixed a bug where in some cases regular minecraft map rendering system attempts to override maps made by interactiveboard. Also fixed a bug where the plugin wasn't checking if block breaking and placing was executed by a player.
Added 1.16 support to the plugin.
Added an experimental global rendering mode, when enabled same image is rendered for all players. This is useful in cases where memory usage is important or when you want all players to see the board in the same state.
Fixed a bug where the plugin would kick the player on 1.9 servers.
Added a setting which allows changing of the render distance for the board.
Added ability to change alpha of images, which can be used to create semi transparent images easily.
Fixed a bug where uuid based images weren't cached properly.
Added UUID placeholder for images which can be used with minecraft skin apis to render skins.
Changed some things that might reduce the memory spike caused by scroll panes.
Fixed a spike in memory usage that would happen when loading gifs, also made minor tweaks to the way board is being rendered to avoid bugs that are hard to reproduce.
Fixed a bug where timers wouldn't work with some functions that use the Bukkit API.
Fixed a bug where permission based default scenes wouldn't work correctly.
Fixed a bug where gifs in children wouldn't render.
Added ability to test the color by the hex value and the ability to set some of the colors by their name.
Added ability to set the font of the text to be italic.
Fixed a bug where GIF width and height couldn't be changed. Reduced the non-animated part of the board to 10 fps refresh rate. Fixed bugs where errors would be occur if a GIF would go outside the board frame.
Added a very big improvement to the way GIFs work. Now GIFs are internally separated from the rest of the scene, so in cases where only the GIF updates in the scene, the rest of the scene doesn't need to update. This optimization reduces CPU usage and allows running of GIFs at 20 fps if you set
fast: true in the GIF object.
Fixed a bug where sometimes item frames would spawn on a different wall.
Fixed a bug where sometimes a NullPointerException would happen on server startup / player joining.
Added a text object config option which allows you to make the font bold.
Increased the refresh rate of the board because it was made twice as slow as it was in the 2.4 update. Fixed a bug where music player would play the same song twice at the same time and not stop when walking away from board. Removed the distance setting from the music player, so the distance would be consistent with the board rendering distance.
Fixed a bug where gifs wouldn't work in 2.4 update.
Added dithering option which makes the transition between colors look nicer. Improved rendering performance and fixed some bugs with the reload command.
The rendering system of InteractiveBoard was changed. Now the rendering is done in a completely different way and is seperated from the main thread, so the server performance should be better and less memory should be used.
Added a switch server function which is very useful for bungee servers.
Fixed a bug where music would continue playing after reconnecting to the server even if it shouldn't.