InteractiveChat | Show Items / Inventory in Chat | Custom Chat Keywords | Bungee & Velocity Support 4.0.0

A plugin to work on top of your chat formatting plugins through modifying packets!

  1. LOOHP
    Native Minecraft Version:
    1.17
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    • 1.17
    Source Code:
    https://github.com/LOOHP/InteractiveChat
    Contributors:
    Henry (Resource Icon)
    Languages Supported:
    EVERYTHING is translatable. Default language: English (en-US)
    By the way! Check out my server at play.sunknights.fun!

    [​IMG] Consider donating!
    It helps me keep on supporting my plugins while keeping them free! DM me and I'll put your name here! Click me!


    Thank you for your donation to support me on my journey on coding plugins! (If you want your name shown as well, send me a message!)
    $25 - QR
    $10 - hawkfalcon
    $5.7 - mindgam3s


    [​IMG]
    Join the discord server here!

    [​IMG]

    If you are running Paper 1.16.X (Or any fork of PaperMC) then you must use the latest DEV BUILD of ProtocolLib, especially when you have a runtime error related to packet cloning!!!!!!!

    [​IMG]Using DiscordSRV?

    Check out this addon which lets you show placeholders and show inventories from InteractiveChat on discord!
    You can also have
    images sent from discord previewed on maps and have attachments beautified into clickable and hoverable text in-game!

    InteractiveChat DiscordSRV Addon
    Features
    1. Translate InteractiveChat Placeholders on Discord
    [​IMG]
    [​IMG] [​IMG]

    Included:
    - Placeholder replaced with Replace Text if available
    - Hover Text showed if available
    - Click Event showed if available and is type OPEN_URL or COPY_TO_CLIPBOARD

    2. Display Item / Inventory / EnderChest Contents on Discord
    [​IMG] [​IMG] [​IMG]

    Included in the generated inventory / item image:

    - Inventory Background
    - Player Inventory Puppet with Armor and Elytra
    - Item Image
    - Durability Indicator
    - Item Amount
    - Banner Pattern
    - Decorated Shield Banner Pattern
    - Enchantment Effect
    - Dyed Leather Armor Color
    - Broken Elytra Texture

    Included in the generated item description / tooltip:
    - Item Image
    - Item Amount
    - Item Type / Display Name
    - Item Lore
    - Item Potion Effects
    - Item Enchantments
    - Dyed Leather Armor RGB Color
    - Firework Rocket Flight Duration
    - Unbreakable
    - Filled Map Contents (Including Markings)
    - Filled Map Data
    - Clock Time
    - Compass Direction
    - Crossbow Charge State
    - Crossbow Charged Item
    - Container Contents Image (E.g. Shulker Box Contents)

    If I missed any, send me a message!

    3. Preview Images from Discord on Maps (Works with jpg, png and gif)
    [​IMG]

    Yes! Gif will be animated up to 20 frames per second.

    Do not worry! You cannot actually get the map as an item nor will your original item in hand be overridden, so it is survival server friendly.

    4. Convert Attachments from Discord into Pretty Clickable and Hoverable Messages
    [​IMG]

    5. Language of Your Choice
    The messages are translated to your preferred language set in the config. The language file will be automatically downloaded from Mojang so you won't have to translate anything yourself!

    About

    The chat is great, players can socialize with each other. But here's the thing, why not make it even more interact-able?
    With this plugin, you will be able to show your item in hand, inventory content and ender chest content with your friends! Even across servers in your global bungeecord chat!

    This plugin also allows you to create your own interactive keywords for your players to use in chat!


    InteractiveChat is designed to work on top of your existing chat formatting plugin, not as a replacement!

    Features
    Video by Server.pro featuring an older version of InteractiveChat (v2)


    1. Item Display Functions
    - Type [item] in chat to show off the item in your hand!
    - Type [inv] in chat to show off your inventory
    - Type [ender] and you guessed it! Show your ender chest!
    (Each of them can be toggled in the config as well as changing their keyword)
    [​IMG]


    [​IMG] [​IMG]
    ^ The two types of inventory display layout you can choose from (Layout 0 & 1)

    2. Custom Interactive Chat Keywords
    - You can create whatever placeholder you want and have them replace keywords in the chat

    - Or simply just add a hover message as well as click actions to keywords
    - Or both!
    - Supports multiple lines of hover text

    v [pos] is one of the default example custom interactive keyword

    [​IMG]
    v The default custom placeholders that comes with the default config, can be removed or changed (1 - 3 are item display placeholders)
    [​IMG]

    3. Interactive Player Names
    - Replace all player names that appear in the chat with interactive content, such as hover messages and click actions!
    (Supports Essentials Nicknames! You can create an addon through the API if you need support for your own nicknaming plugins.)

    [​IMG]

    4. Player Mentioning
    - If a player's name is mentioned by another player, they will be notified with a sound and a title message!
    (Togglable in the config of course!)
    [​IMG]

    5. Bungeecord and Velocity Supported! Everything works across your network!
    If you use chat managing plugins that support bungeecord or velocity, you can enable bungeecord mode by installing the plugin on spigot and bungeecord/velocity and having the bungeecord option enabled in the config on all spigot servers!

    With bungeecord enabled, all placeholders, including [item], [inv] etc. and custom ones will work across servers. Mentioning and everything else will also work between servers!

    6. Easy RGB and Font[1.16 or above]
    You can use RGB code in any part of the config that support colors! You can even use them in chat!
    Code (Text):
    &x&f&f&f&f&f&f
    or
    Code (Text):
    [color=#123456]
    If you have a custom resource pack that has different fonts, you can even use them like color codes! Works with any messages in the chat, even ones from other plugins.
    Code (Text):
    [font=uniform]
    7. Languages!
    And of course! You will be able to modify all the messages that are sent to players to suit your server as well!
    Item material names will be automatically translated to each user's client language!

    The plugin changes messages on a packet level, so it should work on top of other chat plugins (that doesn't also do this).

    Dependencies(These dependencies are not required on Proxies)
    - ProtocolLib (Please install the latest version that is compatible for your server version)
    - PlaceholderAPI
    - Vault


    Installation
    1. Put InteractiveChat.jar into the plugins folder along with the required dependencies
    (If you plan to use the plugin with bungeecord or velocity, install the plugin on bungeecord/velocity as well and enable the bungeecord option in the interactivechat config on ALL spigot servers, no dependencies are required on bungeecord, and yes, just use the same jar)
    2. Start the server
    3. Edit the config (if you need to)
    4. Restart the server (if you changed something in the config in step 3)

    Development Builds
    [​IMG]

    Jenkins

    Commands
    Minecraft Server (Bukkit, Spigot etc.) Commands:
    /interactivechat reload - Reloads the plugin (or /ic reload)
    /interactivechat update - Check for updates (or /ic update)
    /interactivechat chat - Send chat messages with placeholder and player name auto complete (or /ic chat)
    /interactivechat list - List all placeholders you can use (or /ic list)
    /interactivechat mentiontoggle - Toggle mentioning for yourself (or /ic mentiontoggle)
    /interactivechat setinvdisplaylayout - Set your own preferred inventory display layout (or /ic setinvdisplaylayout)


    Proxy Server (Bungeecord / Velocity) Commands:
    /interactivechatproxy backendinfo - List all InteractiveChat information of the servers in your proxy (or /icp backendinfo)

    Q&A
    My placeholders don't work! They show as something like %player_name%! What do I do?

    PlaceholderAPI requires you to download expansions in order to function, you can take a look at the different expansions and their placeholders here (click me).
    For example, if you want %player_name% to work:
    1. run /papi ecloud download player
    2. run /papi reload

    My players get kicked for "You are sending too many packets!", what should I do?
    The kick message: You are sending too many packets! probably comes from ViaVersion.
    Try increasing or setting the GLOBAL PACKET LIMITER to -1 in the ViaVersion config [Both in bungeecord/velocity (if you've installed it on that) and backend servers (e.g. spigot)]

    Permissions
    Code (YAML):
     interactivechat.reload:
        description
    : Allows you to reload the plugin
        default
    : op
      interactivechat.backendinfo
    :
        description
    : Allows you check the status of backend servers on bungeecord
        default
    : op
      interactivechat.cooldown.bypass
    :
        description
    : Allows you to bypass cooldown
        default
    : op
      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.inventory.setlayout
    :
        description
    : Allows you to use set your preferred inventory display layout
        default
    : true
      interactivechat.module.inventory.setlayout.others
    :
        description
    : Allows you to use set the preferred inventory display layout of others
        default
    : op
      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
      interactivechat.mention.here
    :
        description
    : Allows you to mention all players in your server
        default
    : op
      interactivechat.mention.everyone
    :
        description
    : Allows you to mention everyone
        default
    : op
      interactivechat.mention.toggle
    :
        description
    : Allows you to toggle your own mentions
        default
    : true
      interactivechat.mention.toggle.others
    :
        description
    : Allows you to toggle mentions of other players
        default
    : op
      interactivechat.list
    :
        description
    : List all placeholder which you have permission to
        default
    : true
      interactivechat.list.all
    :
        description
    : List all placeholder
        default
    : op
      interactivechat.parse
    :
        description
    : Let you try out placeholders which you have permission to
        default
    : true
      interactivechat.chat
    :
        description
    : Let you use the interactivechat chat command
        default
    : true
      interactivechat.chatcolor.translate
    :
        description
    : Allows you to use alternate color code
        default
    : true
      interactivechat.customfont.translate
    :
        description
    : Allows you to use font formatting code
        default
    : true
      interactivechat.update
    :
        description
    : Allows you to recieve update notifications
        default
    : op

    API
    InteractiveChat does provide an API for developers to customize or use its functions
    https://github.com/LOOHP/InteractiveChat/tree/master/src/main/java/com/loohp/interactivechat/api

    More descriptions are provided through this link

    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
    Code (Java):
    @EventHandler
    public void onMention(PlayerMentionPlayerEvent event) {
        String sender = event.getSender().getName();
        String newTitle = ChatColor.RED + sender + " PINGED YOU";
        event.setTitle(newTitle);
    }

    Default Config
    Config in the Latest Version with Descriptions


    [​IMG] [​IMG]
    [​IMG]

    Report problems in the discussion, not in a review. Thanks :)
    dani626, 47429921, SancLovin and 15 others like this.

Recent Reviews

  1. hanktnt
    hanktnt
    5/5,
    Version: 3.3.0.7
    nice author
    response quickly
    nice feature
    better then other same kind of plugin
    good
  2. Si_da
    Si_da
    5/5,
    Version: 3.3.0.7
    you can add permissions that players can use when they have rank? hope you can browse this review and consider to add this functionality
    1. LOOHP
      Author's Response
      There are already permission for each chat placeholder, you can find them in the permission list.
  3. ElHombrePAN
    ElHombrePAN
    5/5,
    Version: 3.3.0.7
    Great complement. It gives a lot of life, both to the chat and to discord :) Thanks for sharing your work
    1. LOOHP
      Author's Response
      Thank you!!
  4. Lamby777
    Lamby777
    5/5,
    Version: 3.3.0.7
    this plugin page has THE MOST WELL WRITTEN FAQ PAGE! I had 3 different issues getting it to work, and doing CTRL F to find help on this page solved every single one of the problems.
    1. LOOHP
      Author's Response
      Thank you!!
  5. TheRawrGuy
    TheRawrGuy
    5/5,
    Version: 3.3.0.7
    Great plugin! Good support! Easy to configure!
    Keep going, thanks for the plugin! ^^
    1. LOOHP
      Author's Response
      Thank you very much! :)
  6. P0intBl4nk123
    P0intBl4nk123
    5/5,
    Version: 3.3.0.7
    Perfect plugin i recommand it to anyone who wants a decent server overall ^^ Great Developer and really helpfull!
    1. LOOHP
      Author's Response
      Thank you very much!
  7. pavi
    pavi
    1/5,
    Version: 3.3.0.7
    Plugin blocks visibility of messages in in-game chat.

    engine: Purpur 1.16.5 (paper spigot)
    1. LOOHP
      Author's Response
      Consider reporting the error. Please don't use the review section to report problems.
  8. Phoenixvine
    Phoenixvine
    5/5,
    Version: 3.3.0.7
    This plugin is amazing i use discordrsv to make discord more fun to use and when i had a probelm with this plugin the devoloper was fast and kind
    1. LOOHP
      Author's Response
      Thank you!!
  9. phrack_
    phrack_
    5/5,
    Version: 3.3.1
    I recommended this plugin to a friend, I just got a call from a friend of mine, after this update of 3.3.1, when entering [item] on a 1.15.2 based server
    Said that it is displayed in the form of [item]<chat={code}> in the game. In addition, the console says that there are huge warnings in yellow'Cannot get ID of Modern Material' in the bottom line of'displayed'.
    1. LOOHP
      Author's Response
      There seems to be a problem, you might want to revert to 3.3.0 first.
  10. Lautje
    Lautje
    5/5,
    Version: 3.3.0
    I figured out why it wasn't working:

    This plugin is incompatible with Essentials Chat. Would have been nice too know that...
    1. LOOHP
      Author's Response
      InteractiveChat IS compatible with EssentialsChat, perhaps your config isn't correctly setup, feel free to contact me on the discord server.