ChatItem - Display items in chat! 2.4.1

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

  1. Elikill58
    Native Minecraft Version:
    Legacy (< 1.13)
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    • 1.17
    • 1.18
    • 1.19
    Source Code:
    https://github.com/dadus33-plugins/ChatItem
    Contributors:
    Dadus33 (Original Dev), DarkSeraphim (Translator class)
    Originally created by dadus33.

    Ever wanted to allow your players to show their items in chat, just to be sure they really have the item they want to sell to you? Well, this plugin does just that.

    It's a lightweight plugin that works with ALL chat formatting plugins, including Essentials, Factions, DeluxeChat and ANY OTHER PLUGIN you can think of. It also supports offering in depth info about the item, just like you'd hover your cursor over the real item in your inventory. All you have to do is type your message while having the item you want to show in your hand, and using the configured placeholder.

    Servers using this:

    • og-network.net
    • play.ArcadianMC.com
    • LionCraftSB.mygs.co
    • Invictus.cubed.pro
    • Play.pinoylifecraft.com
    • hub.psychocraft.net
    • sv.minels.com
    • mc.bacher.se
    • 1moreblock.com
    • play.horum.net
    • avroxia.mc.gg
    • daylight.fun
    • play.ultimamc.tk
    • Want your server here? Just tell me ;) (maybe some of them have remove the plugin. It's an old list)
    Videos:

    By NumeroUno (slightly outdated)​
    Current features
    • Support for all plugins!
    • 1.7 to 1.19 minecraft versions are supported!
    • Cross-Version support: for servers using ViaVersion or ProtocolSupport
    • Permission support
    • Custom item name and amount format changeable in config
    • Multiple placeholders
    • Efficient event processing in an async thread
    • Extensive configuration options
    • Reload command
    • 100% customizable messages
    • Translation option for adding custom translations to material names
    Known issues
    • If you're using NoCheatPlus, you'll have to disable it's ColorHack check. This might also apply to other anti-cheat plugins. (*Can be removed, we have to check for v2)

    Dependencies

    2.0 and newer :
    - No required dependency
    - Supported plugin: LanguageUtils, ViaVersion, ProtocolSupport & ProtocolLib.

    2.0 (only) :

    - No required dependency
    - Supported plugin: LanguageUtils.

    1.4 (only):
    - No required dependency
    - Supported plugin: ViaVersion & ProtocolSupport.

    1.3.6.4 and lower :
    - Require ProtocolLib (v4.5.0 or lower)
    - Supported plugin: ViaVersion & ProtocolSupport.

    Permissions
    • chatitem.reload -- allows you to reload the config
    • chatitem.use -- allows your messages to be parsed by the plugin
    • chatitem.ignore-cooldown -- allows you to bypass the message cooldown (if enabled)

    Commands and config

    • /cireload - reloads the plugin
    • Want more commands? Ask for them in the plugin thread or on Discord!

    For default config, it's here.

    • Listings of entire inventories by clicking on a chat button (opens a virtual inventory which displays the items in that inventory)
    Example:
    [​IMG]
    and...
    [​IMG]

    For the ChatItem dependency, you have to use jitpack :
    Code (Text):
     <repositories>
        ...
        <repository>
          <id>jitpack.io</id>
          <url>https://jitpack.io</url>
        </repository>
        ...
      </repositories>
    Then:
    Code (Text):
    <dependency>
      <groupId>com.github.dadus33-plugins</groupId>
      <artifactId>ChatItem</artifactId>
      <version>v2-SNAPSHOT</version><!-- v2 is the branch, you can use release -->
    </dependency>
    Alternatively, if you are not using Maven, you can download the plugin itself and add it to your build path.
    The JavaDocs should be automatically read by your IDE when using Maven, but they can also be manually added by downloading the Javadoc jars from the repository.
    • The translations feature doesn't currently work properly in newer versions of Minecraft. That is because a lot of data values have changed and they will be fully replaced in the 1.13 update with item meta data. The next version of the plugin, 1.3.7, will feature a fully working translation feature adapted for 1.13 and a fallback system which should display the name of the item exactly as shown in the client's language.
    Other than that, I will look into and hopefully solve any bugs or issues you might find, but only if you:
    The idea of the plugin is rather simple, but it's implementation is much more complicated. In short, all it does is that it intercepts outgoing server packets (that's why it needs ProtocolLib) and scans them for the placeholders needed. Then, the messages (in JSON format) are parsed by a nice JSON parser I made, and the replacements for the placeholders (the things for the item format you set in the config) are then added after being translated to valid JSON (using a modified version of @DarkSeraphim's JsonUtils class), along with the things that make the item actually display when you hover your mouse over it's placeholder. As the plugin is directly editing outgoing JSON chat packets, it's 100% guaranteed that it won't interfere at all with the chat format, leaving you to use whatever chat plugin you need, without any kind of interaction with mine!

    [​IMG] [​IMG]

    Fork the repository on GitHub or get instant help on the Discord channel!​

Recent Reviews

  1. Bergersome
    Bergersome
    5/5,
    Version: 2.4.1
    Dev is brilliant. Went as far as to update the plugin to allow Luckyperms coloured prefixes, Essentials names with Hex colour and formatting. <3
    1. Elikill58
      Author's Response
      Hi, thanks for your review <3 I'm very happy to see that you like it :)
  2. HipsterNinja17
    HipsterNinja17
    5/5,
    Version: 2.2
    amazing, simple, lightweight plugin. works really well and is easy to set up. i had an issue so i hopped in the dev's discord and he helped me instantly figure it out!
    1. Elikill58
      Author's Response
      Hi, thanks for your review ! I'm happy to see that you like my plugin :)
  3. HozaAlexandru
    HozaAlexandru
    5/5,
    Version: 2.2
    The dev is the best person i ever meet...he uploaded 4 new versions in one day just to help me fixing my problem...i recommend this plugin with my heart...
    1. Elikill58
      Author's Response
      Thanks for your review <3
  4. Staraptor0
    Staraptor0
    5/5,
    Version: 2.2
    This developer knows what they're doing with NMS, Packets, Libraries, Shading jars, etc. Could use some more customization in regard to how the name of the item appears in chat. I have nothing to complain about when this is a free resource and it's just as good as some premium plugins out there. 10/10
    1. Elikill58
      Author's Response
      Thanks, I'm very happy to read your comment ! Yes, I'm doing my best to fix everything !
  5. Tekhen
    Tekhen
    5/5,
    Version: 2.1
    ........................................................................................
  6. BierfietsNL
    BierfietsNL
    5/5,
    Version: 2.0
    Works perfectly on PaperSpigot 1.17.1 - thank you very much!
    Really fun and usefull plugin for a Survival Economy server :)
    1. Elikill58
      Author's Response
      Hi,
      Thanks for your review ! I'm happy to see that you like my plugin !
  7. Proomp
    Proomp
    1/5,
    Version: 1.3.6.4
    Server ver: 1.8.8
    Not working!

    [08:42:30 ERROR]: [ChatItem] Unhandled exception occured in onPacketSending(PacketEvent) for ChatItem
    java.lang.NoSuchMethodError: com.comphenix.protocol.events.PacketContainer.hasMetadata(Ljava/lang/String;)Z
    at me.dadus33.chatitem.listeners.ChatPacketListener.onPacketSending(ChatPacketListener.java:97) ~[ChatItem-1.3.6.4.jar:?]
    at com.comphenix.protocol.injector.SortedPacketListenerList.invokeSendingListener(SortedPacketListenerList.java:195) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:149) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:535) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.PacketFilterManager.invokePacketSending(PacketFilterManager.java:516) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.netty.ProtocolInjector.packetQueued(ProtocolInjector.java:346) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.netty.ProtocolInjector.onPacketSending(ProtocolInjector.java:308) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.netty.ChannelInjector.processSending(ChannelInjector.java:433) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.netty.ChannelInjector.access$800(ChannelInjector.java:70) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.netty.ChannelInjector$3.handleScheduled(ChannelInjector.java:373) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.netty.ChannelInjector$3.onMessageScheduled(ChannelInjector.java:343) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.netty.ChannelProxy$2.schedulingRunnable(ChannelProxy.java:127) [ProtocolLib.jar:4.7.0]
    at com.comphenix.protocol.injector.netty.EventLoopProxy.execute(EventLoopProxy.java:95) [ProtocolLib.jar:4.7.0]
    at net.minecraft.server.v1_8_R3.NetworkManager.a(NetworkManager.java:192) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.NetworkManager.handle(NetworkManager.java:141) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PlayerConnection.sendPacket(PlayerConnection.java:911) [patched.jar:git-PaperSpigot-"4c7641d"]
    at org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer.sendRawMessage(CraftPlayer.java:150) [patched.jar:git-PaperSpigot-"4c7641d"]
    at org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer.sendMessage(CraftPlayer.java:157) [patched.jar:git-PaperSpigot-"4c7641d"]
    at com.earth2me.essentials.User.sendMessage(User.java:887) [EssentialsX-2.18.2.0.jar:?]
    at com.earth2me.essentials.commands.Commandgamemode.run(Commandgamemode.java:65) [EssentialsX-2.18.2.0.jar:?]
    at com.earth2me.essentials.commands.EssentialsCommand.run(EssentialsCommand.java:197) [EssentialsX-2.18.2.0.jar:?]
    at com.earth2me.essentials.Essentials.onCommandEssentials(Essentials.java:660) [EssentialsX-2.18.2.0.jar:?]
    at com.earth2me.essentials.Essentials.onCommand(Essentials.java:570) [EssentialsX-2.18.2.0.jar:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) [patched.jar:git-PaperSpigot-"4c7641d"]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:146) [patched.jar:git-PaperSpigot-"4c7641d"]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:666) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1189) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1001) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [patched.jar:git-PaperSpigot-"4c7641d"]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_301]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_301]
    at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:774) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:713) [patched.jar:git-PaperSpigot-"4c7641d"]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:616) [patched.jar:git-PaperSpigot-"4c7641d"]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_301]
    [08:42:31 ERROR]: Parameters:
    [email protected][
    a=TextComponent{text='', siblings=[TextComponent{text='Oyun modu', siblings=[], style=Style{hasParent=true, color=┬ğ6, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null, insertion=null}}, TextComponent{text=' yarat─▒c─▒ ', siblings=[], style=Style{hasParent=true, color=┬ğc, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null, insertion=null}}, TextComponent{text='olarak ', siblings=[], style=Style{hasParent=true, color=┬ğ6, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null, insertion=null}}, TextComponent{text='Proomp', siblings=[], style=Style{hasParent=true, color=┬ğc, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null, insertion=null}}, TextComponent{text=' adl─▒ oyuncu i├ğin de─şi┼ştirildi.', siblings=[], style=Style{hasParent=true, color=┬ğ6, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null, insertion=null}}], style=Style{hasParent=false, color=null, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null, insertion=null}}
    components=<null>
    b=1
    ]
  8. daadssf121
    daadssf121
    4/5,
    Version: 1.3.6.4
    Its great plugin, but not updated.
    Please update to new versions and fix remaining bugs.
  9. Xyio24
    Xyio24
    4/5,
    Version: 1.3.6.4
    does not work in my server (1.16.5). Its keep sayying "[20:09:49 ERROR]: [ChatItem] Unhandled exception occured in onPacketSending(PacketEvent) for ChatItem" in console. pls FIX this
  10. iCaitlyn
    iCaitlyn
    2/5,
    Version: 1.3.6.4