Skip to content

DisplayAPI v1.0.0

Choose a tag to compare

@wjddusrb03 wjddusrb03 released this 29 Mar 13:41
· 5 commits to master since this release

DisplayAPI v1.0.0

Lightweight Display Entity API for Paper 1.21.4+

Features

Builders (Fluent API)

  • TextDisplayBuilder — Text holograms with background, shadow, alignment
  • BlockDisplayBuilder — Block displays with any material
  • ItemDisplayBuilder — Item displays with transforms
  • PopupBuilder — Animated floating text (damage popups, notifications)
  • InteractiveBuilder — Clickable displays (left/right click detection)

Animation Engine

  • Keyframe-based animation system
  • 12 easing functions (linear, ease-in/out, cubic, bounce, elastic, etc.)
  • Preset animations: pulse, spin, bounce, floating, fadeIn/Out, shake
  • Loop support

Display Systems

  • DisplayGroup — Group multiple displays for batch operations
  • FollowDisplay — Displays that follow entities smoothly
  • Leaderboard — Auto-updating ranked display

Core

  • Per-player visibility (show/hide per player)
  • YAML persistence (survive server restarts)
  • Billboard, glow, scale, translation, brightness
  • Admin commands (/dapi)
  • PlaceholderAPI soft-dependency
  • Zero external dependencies

Requirements

  • Paper 1.21.4+
  • Java 21+

Quick Start

// Text hologram
DisplayAPI.text(location)
    .text(Component.text("Hello!").color(NamedTextColor.GOLD))
    .billboard(Billboard.CENTER)
    .spawn();

// Animated popup
DisplayAPI.popup(location)
    .text(Component.text("-25").color(NamedTextColor.RED))
    .duration(30)
    .spawn();

// Clickable display
DisplayAPI.interactive(location)
    .text(Component.text("Click me!"))
    .onClick(player -> player.sendMessage("Clicked!"))
    .spawn();

// Animation
DisplayAPI.animate(display).spin(AnimationBuilder.Axis.Y, 40).loop(true).play();