nineMinecraft is a joke site.
nineMinecraft is in no way affiliated with Modrinth or 9minecraft. (And frankly, who wants to be affiliated with the latter?)
AXHud

AXHud

Mod

A HUD Mod for my plugins

Client LibraryUtility

17 downloads
1 follower

AXHud

This mod is a HUD mod for some of my plugins.

Features:

  • Currently the mod can display a text next to an item at the top of the users screen

Commands

  • /axhud test diamond: Test the display
  • /axhud clear: Clear the display

Required for:

You can use this mod for your own mods/plugins using the api:
[Paper/Spigot 1.21.x]

package <your_package>;

import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;

public class CommunicationInterface {
    private final JavaPlugin plugin;

    /**
     * Constructor - pass your plugin instance
     *
     * Usage in your main plugin class:
     * ```
     * public class <your_plugin> extends JavaPlugin {
     *     private CommunicationInterface commInterface;
     *
     *     @Override
     *     public void onEnable() {
     *         this.getServer().getMessenger().registerOutgoingPluginChannel(this, "axhud:display_item");
     *         this.commInterface = new CommunicationInterface(this);
     *     }
     *
     *     public CommunicationInterface getCommInterface() {
     *         return commInterface;
     *     }
     * }
     * ```
     */
    public CommunicationInterface(JavaPlugin plugin) {
        this.plugin = plugin;
    }

    /**
     * Send item display data to a player's client
     *
     * @param player The player to send to
     * @param itemId The item ID (e.g., "minecraft:diamond", "minecraft:emerald")
     * @param displayName The name to display next to the item (supports color codes like §a, §b, etc.)
     */
    public void sendItemDisplay(Player player, String itemId, String displayName) {
        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
        DataOutputStream out = new DataOutputStream(byteStream);

        try {
            // Write item ID string
            writeString(out, itemId);

            // Write display name string
            writeString(out, displayName);

            // Send the plugin message
            player.sendPluginMessage(plugin, "axhud:display_item", byteStream.toByteArray());
        } catch (IOException e) {
            plugin.getLogger().warning("Failed to send item display to player: " + e.getMessage());
        }
    }

    /**
     * Write a string to DataOutputStream in Minecraft's format
     * (VarInt length + UTF-8 bytes)
     */
    private void writeString(DataOutputStream out, String str) throws IOException {
        byte[] bytes = str.getBytes(java.nio.charset.StandardCharsets.UTF_8);
        writeVarInt(out, bytes.length);
        out.write(bytes);
    }

    /**
     * Write a VarInt to DataOutputStream (Minecraft protocol format)
     */
    private void writeVarInt(DataOutputStream out, int value) throws IOException {
        while ((value & 0xFFFFFF80) != 0) {
            out.writeByte((value & 0x7F) | 0x80);
            value >>>= 7;
        }
        out.writeByte(value & 0x7F);
    }
}

Project members

timo2243

Member


Technical information

License
ARR
Client side
required
Server side
unsupported
Project ID