This updating contains changes to how configs are parsed. Despite best efforts to maintain backwards compatibility, it might or might not break your existing configs. Follow these steps if you run into any problems after updating. Please report if you encounter any problems after following the steps.
ViaVersion ItemNBT conversions, now more items will be supported when showing items between clients/servers with different nbt schemes! (For example, in a 1.12.2 server with a 1.16.5 client)
Fixed bukkit conversation compatibility
Fixed Tipped Arrows
Fixed not reading languages option in the config
Console filter respect placeholder escaping
Fire compatibility listeners in async
Allow multiple compatibility listeners of the same plugin regex
Fixed minor typo that doesn't really matter
Renamed command from /interactivechatbungee to /interactivechatproxy
Partly supports running different Minecraft versions in bungeecord network
No more errors will be thrown for using different version on bungee backends
However, certain features of an item cannot be shared at the moment (like enchantments and lore etc.) I will try to overcome this limitation bought by NBT changes over different version if I can come up with a good way to do so.
Fixed messing up the colors when showing items with RGB color
Uses the new yet again updated Bungeecord chat API in 1.16
I have included the spigot jar I built with the new chat API
tho there is no guarantee that nothing is going to break. Do not use on a production server.
Custom Fonts for 1.16! Use [font=<name>] and all the text after it will be in that font!
You can now use this in the config as well as &4&A&A&0&5&B in 1.16
You can also use both of them in the chat given that you have permission, they are interactivechat.chatcolor.translate and interactivechat.customfont.translate
Full support for RGB colors in 1.16, for example, type in &x&7&0&A&B&E&4Light Blue to get the color #70ABE4
Full support for RBG colors in 1.16 everywhere in the config and the plugin
Added option to translate color codes entered into the chat, support 1.16 RGB colors as well! The substitute color code can be changed or disabled in the config under the option Chat.TranslateAltColorCode
Added option to enable permissions for each custom placeholder using the option Settings.UseCustomPlaceholderPermissions, for example, the first custom placeholder will have the permission interactivechat.module.custom.1
Made the plugin automatically generate configs with the correct enums for different versions as nobody seems to read
Items that have a container (e.g. shulker boxes) and isn't empty will now show it's contents below the item itself in the inventory view generated when you click an [item] in the chat
Automatically blocks messages that is way too long and would kick the client (Mainly affects 1.12.2 or below only)
Fixed color codes in display name not triggering player name events
Accepts data values possible for version 1.12.2 or below for ItemDisplay.Item.Frame.Primary and ItemDisplay.Item.Frame.Secondary (Example: STAINED_GLASS_PANE:5)
- You can now have multiple keywords for a placeholder though aliases - Pretty self-explanatory, basic aliases will be converted to the main placeholder when parsing - Cleaned up code and changed some field and class names to be more understandable
- Removed Language files for Minecraft version 1.13 or above - Item material names will now automatically display as each client's own language - Fixed material rarity color on versions 1.13 or above - Added filter to filter out useless color codes (if there are any bugs, report to me!)
- Added support for parsing placeholders in commands, useful for stuff such as private messages - Added option in config for configuration which commands need to be parsed - Note that they are interpreted as regex
- You can now use "\" (backslash) in front of any placeholder to tell the plugin not parse it. - You can now use "\" (backslash) in front of a player name in chat to not trigger a mention
Disclaimer: If you are very concern about the new system containing bugs, you can continue to use 1.7.20 for a while. Tho it should be fine.
- Rewritten a large portion of the plugin - Used a new algorithm to determine the message sender, this should get rid of all question marks and boxes - Hopefully, things will work as it used to - Added option in the config to change the time which the "mentioned" title stays on the screen - Clean up the code (by a lot, just look at the changes)
- Fixed the bug where there are a bunch of unknown symbols at the end of some message - Added option to change frame items in item display GUI (1.13 or above)
- Fixed a bug where hover and click events are messed up - Added update notification - Added tab complete - Added command `/interactivechat update` - Added permission `interactivechat.update` which defaults to op
- The keyword (i.e. the player's name) when getting mentioned can now be highlighted - Fixed bugs in events
Config Changes: Added-
Code (YAML):
Chat : #Highlight the mentioned playername for the player mentioned #Use {MentionedPlayer} for the highlighted player name MentionHighlight : "&e{MentionedPlayer}"
#The text to show when the player mentioned hover over the highlighted text #Use {Sender} and {Reciever} MentionHoverText : -
"&b{Sender} mentioned you!"
- Added an option in the config to limit the number of placeholders players can use in one message - Added Events and API
Config Changes: Added-
Code (YAML):
Messages : #The message to send when a message is cancelled due to the placeholder limit LimitReached : "&cPlease do now use excessive amount of placeholders in one message!" Settings : #Set the cooldown that is shared between all placeholders in the plugin (in seconds) #Placeholders will not be parsed when a player is in cooldown MaxPlaceholders : 3
Here is an example of getting whether a certain placeholder is under cooldown for a specific player
Code (Java):
public void simpleMethod
( Player player
) { if ( InteractiveChatAPI.
isPlaceholderOnCooldown ( player,
"[item]" ) ) { player.
sendMessage ( "You are on cooldown!" ) ; } else { player.
sendMessage ( "You are not on cooldown!" ) ; } }
Here is a simple EventHandler to change the title message of the mention ping
- Added a few more options in the config to allow customization to how placeholders will be displayed if it cannot be parsed successfully
Config Changes: Added-
Code (YAML):
Settings: #Settings for if the plugin is unable to fetch a placeholder PlayerNotFound: #Hover message settings Hover: #Add a hover message Enable: true
#Text for the hover message #Supports multiple lines Text: -
"&cUnable to parse placeholder.." #Click action settings Click: #Add a click action Enable: false
#The action to do when clicked #List of actions: #OPEN_URL #OPEN_FILE #RUN_COMMAND #SUGGEST_COMMAND #CHANGE_PAGE #COPY_TO_CLIPBOARD Action: SUGGEST_COMMAND
#The value for the action above #for example '/say yellow is her fav color' for the action RUN_COMMAND Value: "" #Replace keyword settings Replace: #Whether the keyword should be replaced with another text Enable: true
#The text to replace the keyword #Use {Placeholer} for the name of the placeholder that was unable to be parsed ReplaceText: '&c
{Placeholer
}&r'
- Fixed a bug where "[" and "]" were added to [inv] and [ender] hover messages every time the server restarts or reloads the config - Changed the priority when the key is appended to the chat messages, any properly set up chat listeners in non-chat formatting plugins that use chat as a form of input should not conflict anymore.
If any chat formatting plugin ended up being affected by this change, please contact me so I can deal with it.
- Made [inv] and [ender] hover message translatable - Made the message key invisibly, so it won't appear in your discord messages; - Changed the chat listener priority, it should not interfere with NoCheatPlus anymore, if it does, please contact me
Config Changes: Added-
Code (YAML):
ItemDisplay :
Inventory :
HoverMessage : '&bClick to view!'
EnderChest :
HoverMessage : '&bClick to view!'
- Added individual cooldowns for each placeholder, built-in or custom (default to 0 seconds) - Added universal cooldown (default to 0 seconds) - The new cooldown settings will be automatically added to your config, if you do not need to use it, you don't have to touch it - Changed some permissions to [default: true]
- Fixed a bug where the placeholders cannot be used in /msg (backend only) - Fixed some messages disappearing - Fixed some smaller bugs
permissions :
interactivechat.cooldown.bypass :
description : Allows you to bypass cooldown
default : op
Changed -
Code (YAML):
permissions :
interactivechat.module.item :
description : Allows you to use the item placeholder
default : true
interactivechat.module.inventory :
description : Allows you to use the inventory placeholder
default : true
interactivechat.module.enderchest :
description : Allows you to use the ender chest placeholder
default : true
interactivechat.module.custom :
description : Allows you to use custom placeholders in chat
default : true
interactivechat.mention.player :
description : Allows you to mention others
default : true
- Fixed DeluxeChat interfering with the plugin (Could potentially fixed other chat plugins that previously interfered with the plugin as well) - Fixed a console spam - Fixed DeathMessagesPrime causing errors when a death message is broadcasted
- Reverted a change that is causing console error spam on InventoryClickEvent - Fixed custom placeholders always parsing for the viewer instead of the sender when defined - Changed the Legacy Material Name System which is more complete
- InteractiveChat now works from in 1.8, 1.9, 1.10, 1.11 and 1.12 as well! (Although the recommended version and guarantee to work version is still, as always, the latest version)
- The player name hover/click action feature now recognizes
Essentials Nicknames as well.
- Hover text now supports multiple lines of text! - You can now change the replace text formatting for [item] [inv] and [ender] - You can now change the title of the inventory view generated f or [item] [inv] and [ender] - You can now toggle whether keywords are case sensitive or not - You can now change the item name display text to the language you want, more info on that below
Custom Languages: To change the language of the item display, you can either:
1. open the JSON file in the
lang folder inside the plugins folder
2. download a language file of another language (that is normally used in the Minecraft client), rename and replace the file that is already in the lang folder (should be named as
V1_15.json or something similar)
Be default, the en_US language for your server version will be generated automatically in the
lang folder for you
Config Changes: The "BuiltIn" section in the config has been moved to "ItemDisplay" You will have to reconfigure that section of the config
The newly added lines will be automatically added to the end of your existing config for you. You can either remove (recommended) or ignore the "BuildIn" section of the config.
ItemDisplay :
Item : #Enable players to show their items in main hand Enabled : true
#Should the item keyword be case sensitive CaseSensitive : false
#The keyword to trigger the item display function Keyword : "[item]" #The text to replace the keyword #Special Placeholders: #Use {Item} for item display name #Use {Amount} for the item amount Text : "&f[&f{Item} &bx{Amount}&f]" #The title of the inventory view InventoryTitle : "%player_name%'s Item" Inventory : #Enable players to show their inventory Enabled : true
#Should the inventory keyword be case sensitive CaseSensitive : false
#The keyword to trigger the inventory display function Keyword : "[inv]" #The text to replace the keyword Text : "&f[&b%player_name%'s Inventory&f]" #The title of the inventory view InventoryTitle : "%player_name%'s Inventory" EnderChest : #Enable players to show their ender chest Enabled : true
#Should the ender chest keyword be case sensitive CaseSensitive : false
#The keyword to trigger the ender chest display function Keyword : "[ender]" #The text to replace the keyword Text : "&f[&d%player_name%'s Ender Chest&f]" #The title of the ender chest inventory view InventoryTitle : "%player_name%'s Ender Chest"