ChatItem - Display items in chat! icon

ChatItem - Display items in chat! -----

Display items in chat! Hover over them to see info and name. Supports ALL chat formatting plugins.




Lot of bugs fixes, change default config and support for newer versions
----------, Nov 7, 2024

Lot of bug fixes for new versions :
- Fix issue with Adventure on new versions
- Fix placeholders not fully replaced
- Fix paper wrong click
- multiple all others quick issues
----------, Aug 4, 2024

New manager for paper !

New: Support for multiple placeholders plugins.

Fix:
- Issue with some packet creation
- Error with newest versions of MC
- Fix issues with paper

Changes:
- Renamed "both" manager to "all"
- Added new options in config
----------, Jul 13, 2024

Fixed :
- Duplication glitch
- Shulker too sized
- Plugin named "ChatManager" and "ChatProtocol" but are not exactly the same as the one required by ChatItem

Added option for the invsee and endersee feature, the time before it expire.
----------, Apr 16, 2024

Finally, new placeholders are coming in beta :
- [inv] : Share full inventory
- [ec] : Share enderchest
- [head] : Share helmet
- [chest] : Share chestplate
- [legs] : Share leggings
- [feet] : Share boots
All of this are editable, and oculd be disabled/enabled as you want (only in config file).

There is also fix for 1.20 & +
----------, Jan 30, 2024

Folia support !

Fix possible conflict with others plugins.
Fix permissions issue with command like /chatitem select.
Fix TAB for /chatitem and change it according to permission.
Fix issue with 1.18
----------, Oct 9, 2023

The latest version of plugins HexNicks (Thanks Magnetite) and EcoEnchants are now supported !

Bug fix as permission's one for example.
----------, Jul 17, 2023

Add complete translation system with all mojangs languages ! (for items/blocks, not internal messages)

Re-added EcoEnchants support for EE v8.

Add /chatitem select to help you to fix wrong chat behavior!

New chat filter & new packets managed

Bug fixed
----------, May 9, 2023

This version fix some issue with multiple chats plugins ! But also :

- Adventure Chat system wasn't properly used
- New manager for "Intercept packets"
- Fix McMMO wrong values
- Some others internal fixes
----------, Feb 27, 2023

Sorry there isn't very important news, I'm working on others projects.

It works now on 1.7.10 servers.

Fixed with multiple plugins. Fixed v1 detection from v2
----------, Oct 18, 2022

Fix for 1.19.2 packet which is a little different.

Add button in admin to disable the check of update

Fixed error with books and with Shulker

And others fix such as hex color (again)
----------, Aug 26, 2022

New sub-commands:
- /chatitem show [name]: Show item of someone else
- /chatitem broadcast [name]: Broadcast the item of the given person

Fix:
- Cooldown were creating issues
- Hex color was buggy
- Fix ProtocolLib issue
- Refactor of some plugin messaging behavior
----------, Jul 21, 2022

Fix :
- ProtocolLib issue with new packet
- Fix with LPC
- Fix Hex colors
----------, Jun 30, 2022

Important fix for paper and forks of paper.

There is also few internal changes, specially updating dependencies or updating deprecated things
----------, Jun 14, 2022

Add 1.19 support !

Fixes :
- ProtocolLib support
- DiscordSRV support
- Some messages could be sent multiple times
- Others fixes
----------, Jun 12, 2022

Add EcoEnchants support !

Fixes :
- Fix error from 1.18.2
- Prevent lunar failing to show item
- Fix 1.7 error

Others changes:
- Refactor of JSON manager for v1 manager
- Internal changes
- Cleaning some codes
----------, May 11, 2022

Some rework have been made for all managers available. It's mainly to manage all different type of chat and servers.

New: DiscordSRV support :

Fixed :
- Gson conflict issues for 1.8
- Changed translated messages (from XeonZ's config)
- Some wrong color codes
- Others little fixes

For developers, you can use jitpack.io.
----------, Feb 28, 2022

New: option to disable permission requirement !

Fix hex support !

Fixed issues :
  • Item for inventory not found
  • Ink sack item not found for 1.12 only
  • Some list (specially enchants) was not working
  • Some others quick little issue
----------, Feb 14, 2022

WARN: If you are upgrading, this version will OVERRIDE the actual config.

Now support 1.18 !

Introducing /chatitem command, specially to manage options with /chatitem admin !

Re-add of 1.4's system for some plugins. The objective is to have multiple way to add item in chat, to support without any plugins but also when you have DeluxeChat or others.

Also, I know for the hex color issue. It require more works, and will be available for 2.3.

Finally, a wiki is coming here. I will update it in next days.
----------, Jan 11, 2022

The plugin have been reworked, specially to prevent packet's issue.

But, what's new ?
  • Less code
  • Full 1.17 support
  • Support of thermos
  • Support of LanguageUtils
  • Version checker

What's fixed ?
  • Lot of error
  • Multiple packet issues
  • Wrong version management
  • Not everything was reloadable
  • Default config values didn't exist
----------, Nov 24, 2021

In 2018, Dadus33, the original author, stop to develop it. But, today, we are back.

Now, I'm here to restore it, and make it great again. I'm now the main developer.

But, what's new ?

The ProtocolLib dependency have been fixed. Before, for 4.5.0+ version, you was getting issue.

What do you say ? You don't like to have to use ProtocolLib ? No problem, it's now an optional dependency.

About plugin support, an issue have been fixed when using ViaVersion on bungeecord (client version).

An issue appear ? No problem, the dadus33 discord is already available. I will fix it. You can also make a github issue.

But please, DO NOT use review to report error.
----------, Oct 6, 2021

This update fixes a very old bug with the General.color-if-already-colored setting. It took me so long to fix it because I was actually living under the impression that it really did what it was supposed to, however, that wasn't the case.
The new config comment should also now properly reflect what this setting actually does.

Many thanks for @Scorpion who reported this issue in the first place, and actually helped me identify it's cause.
Enjoy!
----------, Feb 15, 2018

This update adds support for 1.12.X (and any version greater than 1.12 too, as long as it doesn't add some breaking protocol changes - so I don't have to update the plugin for every minor protocol change), fixes a permission related bug and the styling of JSON messages (for instance, ignoring the last format code).

Besides that, it also adds a new feature: being able to choose in which cases the permission denied message should be shown. You will find those options in the new, updated config, under the "General.show-no-permission-message" category". THIS MEANS YOU WILL HAVE TO SAVE YOUR OLD CONFIG, as the old one will be overwritten automatically upon starting up the server.

Also, I am aware this update lands right at the start of this new year, so I wish you all a wonderful 2018 and happy holidays!
----------, Jan 1, 2018

This update simply adds support for 1.12.2 and a small bugfix for the JSON component translator in some edge cases (for instance, when the name-format you set in the config began with a color code and/or spaces: eg "&Something").
----------, Sep 26, 2017

This update adds a fix for situations when the server version is greater than the client version.
Many thanks to @DarkBoomba for helping me pinpoint the issue!
----------, Sep 15, 2017

This is the last large ChatItem update for this summer. It features tons of bugfixes and improvements compared to 1.3.5.6, 1.12.1 compatibility, and a brand new shiny developer API! On top of that, it now uses Java 8!
Remember to restart your server after installing the update, reloads will not work. Also, make sure to use the very latest version of ProtocolLib.
For developers, the tutorials are presented at the bottom of the plugin description page.

Enjoy!
----------, Aug 26, 2017

This updates adds the following:
  • Fix some issues with non-latin languages and escape sequences (like those used for unicode characters, ex: \uXXXX
  • Properly ignore custom NBT tags
  • Correctly display enchants and other data stored in NBTTagLists to 1.12 clients. This should only be noticed by those who use 1.12 clients on older servers (1.9, 1.10, 1.11, etc.)
----------, Jun 25, 2017

This update removes the debug messages present in the previous built uploaded by mistake. Sorry for any inconveniences this might have caused!
----------, Jun 24, 2017

Add a check in the HandshakeListener to make sure the client is still connected. While this had no impact on the functionality of the plugin (as players which fail to join for some reason obviously can't see ChatItems), it should get read of the stack traces shown when a player joins the game and is imediately kicked or he just fails to join (banned, whitelist or other reasons).
Thanks to @iRaphi for pointing out the issue.
----------, Jun 23, 2017

This update adds yet another check before getting the player version. Sorry for any inconvenience this issue might have caused.
----------, Jun 21, 2017

This update should put an end to all issues regarding getting and storing the player protocol version.
----------, Jun 18, 2017

This is the second bugfix update for 1.3.5. This solves the bug that made client versions to be mapped to the same address as the bungee proxy the server was connected to (if any). Note that this does not affect servers not using bungeecord.
----------, Jun 17, 2017

This is the first bugfix update for 1.3.5. It solves an issue with the way client protocol versions are stored for each client.
----------, Jun 16, 2017

Hey everyone! It's been a while since the latest update but here we are with a new 1.12 compatible version of the plugin.
Among the usual bugfixes and compatibility related stuff, this update has a new feature I'm particularly excited about: CROSS-VERSION SUPPORT!
This means that the plugin should work properly even on servers that server multiple clients, using plugins such as ProtocolSupport or ViaVersion. The plugin does this by rewriting the items in a customized way for each client, making everyone on the server receive a valid JSON representation of the item.
In order to achieve that however, I inspired myself from ViaVersion's code, so I have to thank @Mylescomputer, @Matsv, and all the other ViaVersion developers for the hard work they put into their project.

On another note, this built is NOT stable and lacking proper testing. Therefore, the chance of encountering bugs of any kind is very high, and the best way to help me fix them is by reporting all the issues. I urge you to do so using only the appropriate channels for this, which are the discord channel and the discussion section. DO NOT report bugs or ask for help in the reviews section. That's not what it was made for.

Enjoy!
----------, Jun 12, 2017

It's been a while since the latest ChatItem update, and I have to admit I'm pretty proud of it, as I didn't receive bug reports during this time so I can pretty much assume the plugin worked flawlessly.
However, a new issue has been reported this Saturday: It looks like the plugin couldn't properly handle invalid NBT Tags. For a more geeky explanation of what happened and how it was fixed, see the spoiler bellow.
Notable changes in this version:
  • (Hopefully) No more "Invalid Item!" errors caused by sending the client invalid tags.
  • Performance improvements by caching items (so they are not parsed for each packet, although they are the same)
  • Custom method to replace the NBTTag#toString() method (which was used until now) as it added tags regardless of their validity and didn't escape special characters
  • Removed debug mode, as printing messages to the same console from a series of different threads is certainly not a good idea. Besides, I hope it won't be needed again, but it might still be re-added in the future under some different form.
  • Config version didn't change, as I'll only be doing that when I'm modifying it's structure or adding new fields. Removing existing ones won't count as an upgrade.
  • Added a new list of ignored tags. Tags in that list should be ignored and not added to the item. This is to ignore tags that don't influence the way the item itself is displayed to the client and thus have no use. This mainly includes custom plugin tags, like my PortableHorses plugin's tags used for storing horse data. To add new items to that list, feel free to submit a pull request on the GitHub repository. In the future though, I might also add a method for programmatically adding items to that list, so your plugins can hook directly into mine.
The way ChatItem used to work was by sending the client the data of the item as a string. To achieve that, the plugin used reflection to get the item's NBT Tag and call the toString() method on it. However, that method did not escape special characters or ignore invalid NBT Tags. Therefore, tag keys containing values with special JSON meaning, like '['s, ']'s or '{'s, '}'s, ','s and ':'s, would fail to be properly parsed by the client, therefore the client resorting to drawing the "Invalid Item!" string instead of the proper item representation.
In this new version, I have created a new method to replace the NBTTag#toString() that ignores invalid tags and other tags specified in the list of ignored tags, and which properly escapes any special characters.
----------, Feb 13, 2017

This update adds a bunch of great features, while at the same time solving previous bugs. With this version you should no longer have issues with the message parser, not even when players spam the chat with placeholders.
This update also adds debug mode, which you'll have to activate if you run into any errors and paste the console output to me. Also, you can now specify multiple lines of text for the tooltip message for the empty hand format.
Due to those config changes, the config version was also changed, therefore you are advised to backup your current config as the plugin will automatically overwrite it on startup to add the new debug field and tooltip format.
Note for those who want to report bugs: NEVER report bugs in the reviews section. Report them on the GitHub issue tracker, Discord channel, or Discussion section, although I'm not very keen on using the Discussion section as an issue tracker.
----------, Jan 23, 2017

This is a beta version of 1.3.3. It adds no new features, and it wasn't tested thoroughly. However, it will hopefully fix all previous 1.3.2 bugs resulted from the new thread handling. Everyone who wants to test this is welcome. I'm especially looking for people willing to test this on production servers, as they present a wide array of conditions perfect for testing the plugin at it's full potential, which are otherwise hard to replicate on test servers.
Thanks for your patience and support for this plugin!
----------, Jan 11, 2017

This update fixes some minor bugs that slipped through the in the last update. Besides that, it also adds a nice new feature, namely, empty-hand tooltips. This will allow you to have custom formats and text for empty hands, just like you have for items. This is detailed more in-depth in the config, so you should better take a look there.
----------, Jan 8, 2017

This update adds filtering similar to the one for written books and books and quills. This means that just like pages contained by written books are removed (they can't anyways be seen), items contained by Shulker Boxes won't be removed (shulker box contents are displayed as some sort of lore), but all additional item meta they might have will be stripped, leaving only the name untouched (that's the only thing you can see anyways). This should drastically reduce the amount of data sent to the client, making crashes impossible (unless the player uses tons of placeholders in the same message). I also recommend limiting the maximum amount of placeholders per message to no more then 8, as players can still abuse of filling a shulker box with items and then sending it 9 times in the same message, which is, by my calculations, enough to send the client just a bit more then the maximum allowed limit of 32767 bytes.
----------, Jan 8, 2017

This update fixes the permissions issues, adds a placeholder for the remaining time in the cooldown, and formats the config in a more beautiful way.
----------, Dec 27, 2016

This version should fix the majority of " BEL<playername>" issues. Also, it adds a way to strip books of pages in order to send less data over the network and prevent client crashes.
----------, Dec 22, 2016

This update solves an issue with my JSON parser which didn't add JsonObjects that didn't contain any of the plugins' placeholders to the message, thus resulting in malformed output. This should solve issues with plugins like VentureChat and other chat plugins that add JSON styling to the message.
----------, Dec 8, 2016

This update adds a new cool feature: cooldowns! This allows you to set the time between messages that contain placeholders in the config, so your users can't spam the chat with items!
Also, this update packs a new default config which also contains all the translations for every item in MineCraft, all thanks to @reeferx7. You should pay attention to one aspect though: In later versions of MC (1.8+), potion data is stored inside potion NBT tags instead of storing each potion under a different id and/or item data. This makes it impossible to translate all kinds of potions in 1.8 versions, however it shall work in 1.8 and 1.7.
As this update adds a new config, it is advised to backup your old one and copy your settings! If you find any bugs, don't hesitate to post them here on spigot or on the discord channel!
----------, Dec 7, 2016

This update fixes a bug in which null messages would crash the message filter implemented in the plugin.
----------, Dec 4, 2016

This update aims to make ChatItem truly fail-proof. It does so by eliminating any user-inserted BELL characters (used in my plugin as separators between the actual player's message and the player's name I need in order to get his item in hand). Hope you'll enjoy it. If you find any bugs, don't hesitate to contact me on the discord channel!
----------, Nov 29, 2016

This update adds several changes to the name finding system of the plugin, that is, how the plugin finds who the sender of the message that initiated the packet sending was so it can find their item in hand.
It has only been briefly tested, so bugs may occur. Please help me develop this faster by reporting the bugs as soon as you find them on the discord help channel. Thanks!
----------, Nov 25, 2016

This update only fixes a bug with the config resetting each time.
----------, Nov 3, 2016

This update adds a configurable limit on the amount of placeholders a user can use in a message or command. It also removes the old command system, as it wasn't even working properly. Users are advised to try and not use it in commands as much as possible as it's currently rather buggy. Please blame Mojang for their genius way of formatting chat using JSON.
This update removes the commands section from the config, so YOUR CONFIG WILL BE RESET.
----------, Oct 29, 2016

Fixed an ugly NullPointerException that occurred sometimes when using other plugins that manipulate packets in some way or another (like action bar messages).
----------, Oct 24, 2016

In the previous versions, having an item name with a backslash sign or a dollar sign in hand would result in a console exception. This update fixes that.
----------, Oct 23, 2016

This update does nothing more but fix the config bug (the error most of you got when loading the plugin).
----------, Oct 17, 2016

This update fixes some of the bugs left on from the last update. Sorry for the inconvenience!
----------, Oct 14, 2016

The title pretty much sums it all up. Many bugfixes were added, performance has been improved by creating separate listeners for different versions (which means less flow control statements, resulting in a potentially better performance), and I've finally added 1.7 support. The development process has been slowed down by many factors, but the most important one was fixing the console bug (which displayed <playername> after each message in the console)
----------, Oct 14, 2016

This update adds several great performance improvements, as well as a nice new way for getting the player who sent the message. This will not only improve performance, but also allow for using them in commands like /tell. However, there are two known bugs:
  • When using it in commands like /tell, the user who sent them won't see the item, but the one they sent it to will.
  • Messages in the console will have an additional <playername> added to the end of the message.
I'm planning on fixing both of them in the next version, but for now, those aren't critical bugs.
----------, Oct 9, 2016

Small patch that fixes a bug that made the config regenerate each time.
----------, Oct 8, 2016

This update's main purpose is attempting to fix the translations bug. However, some side-objectives have also been achieved with this release, so here's a small list of changes:
  • Fixed translations
  • Added new translations layout (see config for details)
  • Added plugin metrics (lite version, won't have any impact on server)
  • Shaded Google's GSON library as some users reported issues with it not being present by default in spigot. (That also explains the larger jar)
----------, Oct 8, 2016

This update finally fixes the issue about items displaying in chat in a seemingly random time order. I'm sorry it took so long and I'm sorry for those of you who had issues with it before!
----------, Oct 8, 2016

A small bug @Faceguy noticed regarding items not displaying their custom display name in chat was solved in this release. Enjoy!
----------, Oct 7, 2016

This update fixes a critical bug found in the previous 1.1.X versions. Items would show up differently for each user, meaning that if player A uses the placeholder, player B will see the item he, and not A, has in hand.
----------, Oct 6, 2016

I was in a hurry when I released the last update, so one major bug slipped through: The plugin wouldn't work for most plugins.
As some of you might have already realized, the plugin's original idea is that instead of editing a chat event, it intercepts outgoing chat packets from the server. This means it will work for ANY message the client receives. However, those messages sent in packets are wrapped in JSON. My plugin's core consists of a class whose sole purpose is to parse the JSON strings of the packet into another JSON string which replaced existing occurences of placeholders with their replacement. However, it look like I only made it to search the JSON String in a "shallow" way. Here's an example to show you what I mean:
While this would be parsed properly:
http://i.imgur.com/3dTTDBk.png
This wouldn't!
http://i.imgur.com/DltcGaB.png

All of this because my original code would only look for a text element inside each object of the JsonArray, while, as you can see, the other objects contains no text field, rather another "extra" array with a text object inside it. This time, I modified my code to recursively search the entire JSON string. It will take a bit more time for the parser to work, but that shouldn't be an issue anyway as it will only postpone the chat for about 1-2 ms, and as it's running in an async thread, it should have no impact on actual server performance.
With that fixed, the new update is here ;)
----------, Oct 5, 2016

This is a long awaited update, I know. I'm sorry it took so long, but I had to take care about my other plugins and my school work too. But let's see the new features!

  • The new config is almost identical with the old one!
  • Removed compatibility options! The plugin now works with ANY chat formatting plugins!
  • Added a GitHub repository you can contribute to! (https://github.com/dadus33/ChatItem)
  • Performance improvements!
  • Total code rewrite!
  • Every aspect is configurable (just like in the old version)
  • The plugin now requires ProtocolLib as a dependency. You can get it from https://www.spigotmc.org/resources/protocollib.1997/ and use the version appropriate for your server version.
There might be bugs, as this is a total rewrite. If you find any, please post them in the discord help chat! Bugs reported in the review section will be ignored!

IMPORTANT!
You have to remove your old configuration in order to be able to recopy most of the fields you used in the previous version. Although the config is pretty much the same, there are some minor differences and the plugin will proceed to overwriting your old config if it finds it there!
----------, Oct 4, 2016

This is a small update that fixes one big bug with DeluxeChat, so items' name, unless translated in the config or modified by the player (custom names), would just not be displayed, so for example, a stack of stone would show up in chat as just "x64".
----------, May 17, 2016

Just a quick hotfix for a small mistake I made.
----------, Apr 20, 2016

It's been a while since I promised this update, and I'm really sorry for those who had to wait for it until now, but it's finally here! New features:
  • Improved performance (again... and there's still room for more improvements xD)
  • Added option for more placeholders, allowing you to define them in the config so others can use multiple placeholders, for instance both and {item} at the same time!
    [*]Fixed a bug when using DeluxeChat that still showed the message (if you had no item in hand) even if the 'deny-if-no-item' option was set to true.
    [*]Fixed another bug with DeluxeChat that reset the chat color to white after each use of the placeholder, unless otherwise manually specified by the chatter.

THIS NEW UPDATE WILL BREAK YOUR OLD CONFIG! BACKUP YOUR OLD CONFIGURATION OR THE PLUGIN WILL SIMPLY OVERRIDE IT WITHOUT WARNING!
----------, Apr 20, 2016

It's been a while since the last update, but here are the new features:
  • Added DeluxeChat support.
  • Build against spigot 1.9.2, still using the deprecated getItemInHand() method to ensure backwards compatibility with 1.8
  • New formatting system! See config for more details.
  • New config checking system, so your config version is always up to date!
  • Item amount support improved
  • Fixed some old bugs
  • Improved overall performance
If you want to help improve this plugin, send me a PM or join the Discord server (link found on bottom of description page). We need someone willing to add more entries to the Translations list, so if you think you can do it or already did it for your server then feel free to contact me!
----------, Apr 17, 2016

This updates adds the following, along with some performance improvements:
  • HeroChat compatibility
  • Material translation (ability to change the display name for any material name you want, see config for info)
  • Added item amount (for example, using the placeholder while having 2 or more items in hand will display the amount along with the display name in chat)
  • Fixed the /cireload command
----------, Feb 28, 2016

This update adds the following, along with some minor bugfixes:
  • Permission support
  • Custom deny message (can be toggled)
  • Small(-ish) performance improvement
REMEMBER TO REMOVE YOUR OLD CONFIG!
Please feel free to submit any bugs in the plugin thread or in the skype help channel. Before posting a negative review, please report the bug!
----------, Feb 26, 2016

This update only fixes some minor bugs.
----------, Feb 26, 2016

This update adds the following:
  • MetricsLite support
  • Support for custom item name format (see config for spoiler for info)
----------, Feb 26, 2016

Resource Information
Author:
----------
Total Downloads: 78,997
First Release: Feb 26, 2016
Last Update: Nov 7, 2024
Category: ---------------
All-Time Rating:
146 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings