FancyMcPlugins / FancyHolograms

FancyHolograms is a simple, lightweight and fast hologram plugin using display entities
https://modrinth.com/plugin/fancyholograms
MIT License
93 stars 29 forks source link

How to work with visiable by default is false throught API? #99

Open BigTows opened 4 months ago

BigTows commented 4 months ago

I have next case:

        final var id = UUID.randomUUID();

        final var displayData = DisplayHologramData.getDefault(location);
        displayData.setBillboard(Display.Billboard.CENTER);
        displayData.setVisibleByDefault(false);

        final var textData = TextHologramData.getDefault(id.toString());

        de.oliver.fancyholograms.api.Hologram hologram = FancyHologramsPlugin.get().getHologramManager().create(
             new de.oliver.fancyholograms.api.data.HologramData(id.toString(), displayData, HologramType.TEXT, textData)      
        );
        FancyHologramsPlugin.get().getHologramManager().addHologram(hologram);

        hologram.createHologram();
        hologram.hideHologram(Bukkit.getOnlinePlayers());

So I generted VisibleByDefault holo and what do i want to do? I want to show that holo for some player, i am trying like this:

   hologramManager.getHologram(ID).ifPresent(hologram -> {
                    hologram.showHologram(player);
                    hologram.checkAndUpdateShownStateForPlayer(player);
                })

But holo displayed for some ticks and hidded again. What am i doing wrong?

BigTows commented 4 months ago

I found the reason: https://github.com/FancyMcPlugins/FancyHolograms/blob/681405e5756aa1d8a52cfcb6bac80df8d0bce6b6/api/src/main/java/de/oliver/fancyholograms/api/Hologram.java#L147

Could you add API-Path without permissions?