
HologramLib | Leaderboards & Custom Holograms ⚡
Packet-based text display library with animations, leaderboards, emojis, minimessage, and more!
3.7K
21
FOLIA ✅ PAPER ✅ PURPUR ✅ 1.19.4 - 1.21.5 ✅
An easy-to-use, packet-based text/item/block display hologram API with MiniMessage and emoji support.
FEATURES
- Text, Block & Item Holograms
- Text animations
- Minimessage support
- Packet based
- Per player holograms
- Leaderboard generators
- Advanced hologram customization
- Attachment and parenting support
- Flexible rendering modes
DISCLAIMER
This API only works on 1.19.4+The holograms do not work for Bedrock players
There can be some issues when using spigot on older versions (Preferably use Paper or a fork of it)
It's just a Java API. This plugin does not work standalone.
SETUP
- Download the plugin .jar
- Download Packet Events
- Upload the .jar files onto your server (yourserver/plugins folder)
- Add the plugin as a dependency to your plugin and use it
PROJECT SETUP
Gradle installation
repositories {
  maven { url 'https://jitpack.io' }
}
dependencies {
  compileOnly 'com.github.HologramLib:HologramLib:1.7.6'
}
Maven installation
<repository>
  <id>jitpack.io</id>
  <url>https://jitpack.io</url>
</repository>
<dependency>
  <groupId>com.github.HologramLib</groupId>
  <artifactId>HologramLib</artifactId>
  <version>1.7.6</version>
  <scope>provided</scope>
</dependency>
Add this to your plugin
plugin.yml
depend:
  - HologramLib
Code examples
Getting the instance
private HologramManager hologramManager;
@Override
public void onLoad() {
    HologramLib.onLoad(this); /*Only needed if you shade HologramLib*/
}
@Override
public void onEnable() {
    hologramManager = HologramLib.getManager().orElse(null);
    if (hologramManager == null) {
        getLogger().severe("Failed to initialize HologramLib manager.");
        return;
    }
}
Creating a hologram
TextHologram hologram = new TextHologram("unique_id")
    .setMiniMessageText("<aqua>Hello world!")
    .setSeeThroughBlocks(false)
    .setBillboard(Display.Billboard.VERTICAL)
    .setShadow(true)
    .setScale(1.5F, 1.5F, 1.5F)
    .setTextOpacity((byte) 200)
    .setBackgroundColor(Color.fromARGB(60, 255, 236, 222).asARGB())
    .setAlignment(TextDisplay.TextAlignment.CENTER)
    .setViewRange(1.0)
    .setMaxLineWidth(200);
Spawning and despawning
hologramManager.spawn(hologram, <location>);
hologramManager.remove(hologram);
Animations
TextAnimation animation = new TextAnimation()
        .addFrame( "<red>First frame")
        .addFrame("<green>Second frame")
        .addFrame("Third frame\n" +
                "Second line in third frame")
        .addFrame("Last frame");
animation.setDelay(20L); // 1 second
animation.setDelay(20L * 2);
hologramManager.applyAnimation(this.hologram, animation);
Leaderboard
 
Map<Integer, String> leaderboardData = new LinkedHashMap<>() {{
    put(1, "MaximDe:1000");
    put(2, "dream:950");
    put(3, "BastiGHG:500");
    put(4, "Wichtiger:400");
    // ... more entries
}};
LeaderboardHologram leaderboard = hologramManager.generateLeaderboard(
        location,
        leaderboardData,
        LeaderboardHologram.LeaderboardOptions.builder()
                .title("Top Players - Kills")
                .showEmptyPlaces(true)
                .scale(1.2f)
                .maxDisplayEntries(10)
                .suffix("kills")
                .topPlayerHead(true)
                .build()
);
Wiki
Code examples & more https://github.com/HologramLib/HologramLib/wiki
Example/Showcase Plugin
Совместимость
Создатели
Детали
Лицензия:GPL-3.0-or-later
Опубликован:1 год назад
Обновлён:9 часов назад
