JSON API 3.1.0

Create and send JSON messages easily.

  1. Voidev
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.17
    Contributors:
    LordBoos (initial code for JsonHoverEvent#showItem(ItemStack))
    Thank you all for over 10,000 downloads!

    JsonApi
    v3.1.0
    (Incompatible with v2.x)

    Using this API, you can very easily create and send JSON messages. They feature colors, bold/italic/etc., insertions, and most importantly, hover- and click actions.


    Installation
    1. Download the latest version of JsonApi
    2. Place it in your server's plugins folder
    3. Restart your server

    Commands
    • /command - permission - description
    • /jsonapi - jsonapi.command.jsonapi - Display version information

    < For more detailed information, see the Javadocs >
    Creating the message
    Every good tutorial starts with a "Hello, World!" application. Let's create that JSON message!
    The base class for creating JSON messages is JsonMsg.
    Construct it with the appropriate text and color:
    Code (Java):
    JsonMsg msg = new JsonMsg("Hello, ", JsonColor.AQUA);
    Notice that we specified the color using the JsonColor enum.
    Also, see how we only put half of the text into the JsonMsg? That's because we want the other half to be another color, and italic. Let's see how that's done:
    We'll first create the second half, but this time use the constructor JsonMsg(String, ChatColor...). It styles the message with all styles specified as ChatColors.
    Code (Java):
    JsonMsg msg2 = new JsonMsg("world!", ChatColor.RED, ChatColor.ITALIC /*, ChatColor.BOLD, etc.*/);
    To add another JsonMsg to an existing one, use JsonMsg#append(JsonMsg) or JsonMsg#append(/* arguments from any constructor are valid */):
    Code (Java):
    msg.append(msg2);
    All this could also be simplified to:
    Code (Java):
    msg.append("world!", ChatColor.RED, ChatColor.ITALIC);
    There is another super easy way to create JSON messages:
    You can convert any color-code based message to a JsonMsg using the constructor JsonMsg(String text, boolean allowStyleFallthrough).
    The allowStyleFallthrough parameter specifies whether the styles should be reset at every new "segment" of the text, where the segments are separated by a continuous set of color codes.
    Example:
    Code (Java):
    JsonMsg msg = new JsonMsg("§aHello, §o§lworld!", true);
    // The §a (green color) carries over to "§o§lworld!",
    // since it does not specify a color itself and allowStyleFallthrough is true
    To convert a JsonMsg back to a color-coded message, use the method JsonMsg.toConsoleMessage(boolean insertResetCodes). The insertResetCodes parameter specifies whether the message and each extra message should be prefixed with a reset code (§r).
    Example:
    Code (Java):
    String codeBased = msg.toConsoleMessage(true);
    // codeBased is now "§r§r§aHello, §r§a§l§oworld!"

    Styling the message

    Changing the color and styling of a JsonMsg could also not be simpler:
    Code (Java):
    msg.color(JsonColor.GREEN);  // Change the color
    msg.underlined(true);  // Underline the text
    msg.style(ChatColor.GREEN, ChatColor.UNDERLINE);  // Style the text
    The corresponding values can be retrieved with the same method (except #style(ChatColor)), without arguments.
    Tip: All methods that would otherwise return void return the JsonMsg object itself, so you can chain them together:
    Code (Java):
    msg.color(JsonColor.GREEN).underlined(true);
    Now, let's get to the fun stuff!

    Click & Hover Events

    To show a text when the player hovers over msg, use any of these methods:
    Code (Java):
    msg.hoverEvent(JsonHoverEvent.showText(msg2));
    msg.hoverEvent(JsonHoverEvent.showText("Hey there!", JsonColor.GRAY));
    msg.hoverEvent(JsonHoverEvent.showText("Hey there!", ChatColor.GRAY, ChatColor.BOLD));
    Of course, there are many more methods for showing items, achievements etc., and there is also the JsonClickEvent class.

    Sending the message

    Finally, we can send the message.
    Code (Java):
    msg.send(player1, player2 /* , player3, etc. */);
    You can also use JsonMsg#send(Iterable<Player>) and JsonMsg#sendTitle(int, int, int, Player...).
    Note: There are many more methods and tricks you can use, however, there are way too many to list them all here. Just experiment!

    ==> Go to the Wiki Page
    ==> Go to the Javadoc


    Do not use this library without a reference to the author; ColoredCarrot, and the resource on spigot (this link here).
    Do not mark this code as your own.


    Original Thread:
    https://www.spigotmc.org/threads/api-json-api-with-integrated-send-methods.136140/
    DeadMaster likes this.

Recent Reviews

  1. MathieuAR
    MathieuAR
    2/5,
    Version: 3.0.2
    i will change the rating wen you will release the 1.13.1 version...
    good luck updating it.
  2. S3nS3IW00
    S3nS3IW00
    5/5,
    Version: 3.0.2
    Your plugin is what I need! Awesome, please do not stop developing this resource! Thanks!
  3. Miniwinz
    Miniwinz
    5/5,
    Version: 2.3
    Hi, this is a very good plugin for minecraft, but can you please update your plugin for minecraft 1.11 ? Thanks :D.
  4. ComicHD
    ComicHD
    5/5,
    Version: 2.3
    Cool Plugin, its a nice Library too Use :D
    _______________________________________________________
  5. LordBoos
    LordBoos
    5/5,
    Version: 1.0-MC1.9
    Great Library! I've been looking for something like this for pretty long. It is missing ItemStack to json hover, which I had to implement myself, but still awesome!