← Назад к ресурсам

HologramLib | Leaderboards & Custom Holograms

Packet-based text display library with animations, leaderboards, emojis, minimessage, and more!

Modrinth library technology utility

Описание

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](https://www.spigotmc.org/resources/packetevents-api.80279/) - 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** ```groovy repositories { maven { url 'https://jitpack.io' } } dependencies { compileOnly 'com.github.HologramLib:HologramLib:1.7.6' } ``` **Maven installation** ```xml jitpack.io https://jitpack.io com.github.HologramLib HologramLib 1.7.6 provided ``` Add this to your plugin `plugin.yml` ```yml depend: - HologramLib ``` # Code examples ### Getting the instance ```java 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 ```java TextHologram hologram = new TextHologram("unique_id") .setMiniMessageText("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 ```java hologramManager.spawn(hologram, ); hologramManager.remove(hologram); ``` ### Animations ```java TextAnimation animation = new TextAnimation() .addFrame( "First frame") .addFrame("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 ```java Map 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 https://github.com/HologramLib/ExamplePlugin More info https://maximjsx.com/projects/hologramlib