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
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.
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).
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
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.
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!
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!
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").
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!
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.
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.)
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.
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.
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.
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.
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.
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!
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.
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.
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.
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.
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!
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!
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!
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.
Fixed an ugly NullPointerException that occurred sometimes when using other plugins that manipulate packets in some way or another (like action bar messages).
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.
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)
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.
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)
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!
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.
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.
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!
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!
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".
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!
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!
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)
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!