Usage
Creating a HudManager
Section titled “Creating a HudManager”The HudManager is the central component for managing HUDs. You typically create one instance per server.
import net.hudkit.api.HudManagerimport net.hudkit.api.StudioOptionsimport net.hudkit.api.RenderOptions
val hudManager = HudManager( studioOptions = StudioOptions.online("your-api-key"), renderOptions = RenderOptions.default())import net.hudkit.api.HudManager;import net.hudkit.api.StudioOptions;import net.hudkit.api.RenderOptions;
HudManager hudManager = new HudManager( StudioOptions.online("your-api-key"), RenderOptions.defaults());Loading the HUD Definition
Section titled “Loading the HUD Definition”Load your HUD definition from Hudkit Studio and process it:
val definition = hudManager.loadDefinition().process()hudManager.definition = definitionProcessedHudDefinition definition = hudManager.loadDefinition().process();hudManager.setDefinition(definition);Uploading the Resource Pack
Section titled “Uploading the Resource Pack”HUDs require a resource pack for custom textures and fonts. Upload it to Hudkit’s servers:
hudManager.uploadResourcepack(definition.resourcepack)hudManager.uploadResourcepack(definition.getResourcepack());Showing the HUD to Players
Section titled “Showing the HUD to Players”When a player joins, send the resource pack and show the hud:
hudManager.showHud(player)hudManager.sendResourcepack(player)hudManager.showHud(player);hudManager.sendResourcepack(player);Complete Example
Section titled “Complete Example”Here’s a complete example using Minestom:
import net.hudkit.api.HudManagerimport net.hudkit.api.StudioOptionsimport net.hudkit.api.RenderOptionsimport net.minestom.server.MinecraftServerimport net.minestom.server.event.player.PlayerSpawnEvent
fun main() { val server = MinecraftServer.init()
// Create HudManager val hudManager = HudManager( studioOptions = StudioOptions.online("your-api-key"), renderOptions = RenderOptions.default() )
// Load and process definition val definition = hudManager.loadDefinition().process() hudManager.definition = definition
// Upload resource pack hudManager.uploadResourcepack(definition.resourcepack)
// Show HUD when player spawns val eventHandler = MinecraftServer.getGlobalEventHandler() eventHandler.addListener(PlayerSpawnEvent::class.java) { event -> hudManager.showHud(event.player) hudManager.sendResourcepack(event.player) }
server.start("0.0.0.0", 25565)}import net.hudkit.api.HudManager;import net.hudkit.api.StudioOptions;import net.hudkit.api.RenderOptions;import net.minestom.server.MinecraftServer;import net.minestom.server.event.player.PlayerSpawnEvent;
public class Main { public static void main(String[] args) { MinecraftServer server = MinecraftServer.init();
// Create HudManager HudManager hudManager = new HudManager( StudioOptions.online("your-api-key"), RenderOptions.defaults() );
// Load and process definition ProcessedHudDefinition definition = hudManager.loadDefinition().process(); hudManager.setDefinition(definition;
// Upload resource pack hudManager.uploadResourcepack(definition.getResourcepack());
// Show HUD when player spawns GlobalEventHandler eventHandler = MinecraftServer.getGlobalEventHandler(); eventHandler.addListener(PlayerSpawnEvent.class, event -> { hudManager.showHud(event.getPlayer()); hudManager.sendResourcepack(event.getPlayer()); });
server.start("0.0.0.0", 25565); }}Reloading the HUD
Section titled “Reloading the HUD”To reload the HUD definition at runtime (e.g., after changes in Studio):
fun reloadHud() { // Load new definition val definition = hudManager.loadDefinition().process() hudManager.definition = definition
// Upload new resource pack hudManager.uploadResourcepack(definition.resourcepack)
// Send new resource pack to all online players MinecraftServer.getConnectionManager().onlinePlayers.forEach { player -> hudManager.sendResourcepack(player) }}public void reloadHud() { // Load new definition ProcessedHudDefinition definition = hudManager.loadDefinition().process(); hudManager.setDefinition(definition);
// Upload new resource pack hudManager.uploadResourcepack(definition.getResourcepack());
// Send new resource pack to all online players for (Player player : MinecraftServer.getConnectionManager().getOnlinePlayers()) { hudManager.sendResourcepack(player); }}Studio Options
Section titled “Studio Options”Studio provides an API key, which is not considured private. It allows a client to fetch basic information about the HUD, such as the layout and project name. It is very safe, and often encouraged to hardcode an API key to your code. It’s more like an identifier than an API key.
Different ways to configure Studio connectivity:
// Connect with your API key.StudioOptions.online("your-api-key")
// Use our example HUDStudioOptions.demo()
// Local/Self-hosted: Custom Studio instanceStudioOptions.local("https://your-studio.example.com", "your-api-key")
// No Studio connectionStudioOptions.offline()// Connect with your API keyStudioOptions.online("your-api-key");
// Use our example HUDStudioOptions.demo();
// Local/Self-hosted: Custom Studio instanceStudioOptions.local("https://your-studio.example.com", "your-api-key");
// No Studio connectionStudioOptions.offline();