JsonMessageMaker v3.2.2

Send messages with hover and click effects with ease

  1. Janmm14
    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
    Source Code:
    • Add hover and click effects to your messages easily
    • Don't hassle with tellraw generators and json chat format anymore
    • Easy API for other plugins
    This plugin is compatible with Spigot and BungeeCord.

    JMessage format

    The format to add any effects to a part of a chat text is [jmm|*options*]chat text[/jmm]

    There are currently 4 options available:
    • suggest=<suggestion>
      • On click, <suggestion> will appear in the player chat text feld
    • link=<url>
      • On click, the player will be asked if he wants to open <url> in a browser
    • hover=<text>
      • On mouse hover, <text> will appear above the cursor if hovered by the mouse
    • run=<text>
      • On click, the player will send <text>, commands are possible too
    To add multiple options for chat text use |jmm| as deliminter. Please note that you can of course just add one possible option per action.

    Here are some example JMessages:
    • §aasdf [jmm|suggest=qwerta]§bqwertzuiop[/jmm]
    • [jmm|hover=runs /list|jmm|run=/list]§erun §c/list[/jmm]
    • [jmm|hover=opens google|jmm|link=http: //www . google.de]google§blink[/jmm]
      (Of course you need to write the link without those spaces)

    Other supported formats
    v3.2.0+ supports MineDown format with the prefix [md]: [md][&6**Test**](show_text=&4Hover Text)


    Since v2.0 this plugin additionally provides an own command to send JMessages to players. The permission for the command is jsonmessagemaker.command (same for bukkit and bungee).

    The command does also support & as color code character and not just the original color code char §.

    For Spigot the command and its aliases are:
    • /jsonmessagemaker
    • /jmm
    • /jmsg
    For BungeeCord the command and its aliases are:
    • /bjsonmessagemaker
    • /bjmm
    • /bjmsg
    Command syntax:
    • /<command> <player> <jmessage>
      • Sends the JMessage to the given player
    • /<command> perm:<permission> <jmessage>
      • Sends the JMessage to all players with the given permission
    • /<command> :all <jmessage>
      • Broadcasts the JMessage to all players
    Bungeecord related extra features
    Added with v3.0

    When you install JsonMessageMaker as plugin on your spigot servers and your bungeecord server, JsonMessageMaker on spigot can send the message to the bungeecord version to handle. You have to set
    sendToBungeeOption: true in the file plugins/JsonMessageMaker/config.yml for this to be enabled.

    This only works when all players join through the same bungeecord on your spigot servers and when at least one player is online on the spigot server which wants to send a message. Also please make sure that all spigot servers and bungeecord run the same version of JsonMessageMaker.

    The command syntax for this is to prefix the reciever with :bungee: like so:
    • /<command> :bungee:<player> <jmessage>
    • /<command> :bungee: perm:<permission> <jmessage> (make sure to remove the space between : and perm, itd there to prevent replacement with a smiley)
    • /<command> :bungee::all <jmessage> (careful: there are two colons (:) between "bungee" and "all" here!)
    (<command> means the Spigot command, aka one of these: /jsonmessagemaker, /jmm, /jmsg)

    Additionally when you send a command to bungeecord or run the bungeecord command in any other way, the bungeecord version replaces (((serverof: PlayerName))) to the name of the server PlayerName is online. Also supports UUIDs instead of player names, with and without dashes (-).

    Default Config:
    Code (YAML):
    debug: false
    Default config:
    Code (YAML):
    sendToBungeeOption: false
    Options explained:
    • sendToBungeeOption: If set to true, it allows usage of the :bungee: prefix to send commands to bungee. This is turned off by default as it is not safe if the plugin would send such messages while players are not connected through a bungeecord.
    • debug: If set to true, debug messages will be printed to the console:
      • Spigot shows a info console message each time it sends a message to bungee.
      • Bungee shows a warning console message when it found a (((serverof:XXX))) placeholder but it could not find the player XXX or if there was some other problem gaining the name of the server he is connected to.


    The base feature of JsonMessageMaker is to provide an API which other plugins can use to convert for example configuration strings using the JMessage format to an array of BaseComponents, ready to get sent to players via the spigot or bungee api.

    Baisc API usage:
    Code (Java):
    BaseComponent[] components = JsonMessageConverter.DEFAULT.convert(yourJMessage);
    The API provides the option to disable certain features of the jmessage format. The default converter (see above) and the default JsonMessageOptions class have all features enabled. If you want to have certain features disabled, you need to create your own JsonMessageConverter class, for example with disabled MineDown format support:

    Code (Java):

    JsonMessageConverter converter = JsonMessageConverter.options()
        .suggest(true) // By default all options are enabled, they are only set to
        .run(true)     // true here for demonstration purposes.

    You can download indev versions from my jenkins server: https://ci.janmm14.de/job/public~mcjava~jsonmessagemaker/

    Maven repository

    JsonMessageMaker is deployed to my own maven repository:

    Code (XML):
    Code (XML):
    Reveeq and ItzSomebody like this.

Recent Reviews

  1. xQyc
    Version: v3.1.0
    Such a cool plugin! It took me a bit to get used to it but I was able to make really cool stuff for my anticheat with this. This plugin has been really useful whilst I have been trying to integrate my anticheat with the staff team :D
  2. sannielollie
    Version: v2.0
    Really usefull plugin - im using it for AAC Staff notifications so they can hover on the text to see the violation details.
  3. wysohn
    Version: v2.0
    Must have plugin. No questions required. Just download it; feel the power! No more annoying JSON message formatting
  4. User16
    Version: v1.1
    Excellent for adding in buttons I can execute commands with into chat. Not had any problems with it so far either. Great plugin!