Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Visualkit
Visualkit is a free, open-source GUI framework for Paper server.
This is an overview of Visualkit's features, but you can find more details in the README in the GitHub repository.
Placeholders
Automatically update your GUI with powerful placeholders. To change the display, simply change a field variable.
public final class MyUI extends ChestUI {
@Element(0)
private final VisualkitElement element = VisualkitElement.create(Material.PUMPKIN_PIE)
.title(Component.text("Delicious Pumpkin Pie 🎃").color(NamedTextColor.GOLD))
.lore(Component.text("Price: ${price} yen"));
private int price = 64;
// Some code omitted
@Override
public void onTick() {
price ++;
}
}
Placeholders can be used anywhere in the GUI you create with Visualkit.
Chest GUI
Use declarative element definitions to rapidly create rich GUIs.
public final class MyChestUI extends ChestUI {
@Element(13)
private final VisualkitElement cookie = VisualkitElement.create(Material.COOKIE)
.title(Component.text("Click me!").color(NamedTextColor.GREEN))
.handler((slot, click, mouse) -> count ++)
.sound(Sound.UI_BUTTON_CLICK, 1.0f, 1.2f);
.lore(Component.text("Count:").appendSpace().append(Component.text("${count}").color(NamedTextColor.GREEN)));
private int count = 0;
public MyChestUI(@NotNull Player player) {
super(player);
}
@Override
public @NotNull Size size() {
return Size.SIZE_36;
}
@Override
public @NotNull Component title() {
return Component.text("Cookie Clicker");
}
}
Panel GUI
It is the fastest way to create a GUI with a scoreboard sidebar, which was previously complicated.
public final class MyPanelUI extends PanelUI {
private int health;
private int hunger;
private int ping;
public MyPanelUI(@NotNull Player player) {
super(player);
setTitle(Component.text("INFO").color(NamedTextColor.YELLOW));
addLine(Component.text("Hello, ").color(NamedTextColor.GRAY)
.append(Component.text(player.getName()).color(NamedTextColor.WHITE))
.append(Component.text("!").color(NamedTextColor.GRAY)));
addLine();
addLine(Component.text("Health: ").append(Component.text("${health}💗").color(NamedTextColor.RED)));
addLine(Component.text("Hunger: ").append(Component.text("${hunger}🍖").color(NamedTextColor.GOLD)));
addLine(Component.text("Ping: ").append(Component.text("${ping} ms").color(NamedTextColor.GREEN)));
}
@Override
public void onTick() {
health = (int) player.getHealth();
hunger = (int) player.getHealth();
ping = player.getPing();
}
}
Information
Category | Developer Tools |
---|---|
Published on | December 2, 2024 |
License | MIT |
Downloads | 8 |
Stars | 1 |
Watchers | 0 |
Library
Pinned Versions
Pages
Members
Owner