From 7ccde4dab9448833e59a4878da5c0348f0c6b505 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 17 May 2025 23:03:06 +0200 Subject: [PATCH] fancyholograms-v3: Implement trait registry --- .../api/trait/HologramTraitRegistry.java | 4 ++-- .../main/FancyHologramsPlugin.java | 4 ++-- .../trait/HologramTraitRegistryImpl.java | 18 ++++++++++++------ 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/plugins/fancyholograms/fh-api/src/main/java/de/oliver/fancyholograms/api/trait/HologramTraitRegistry.java b/plugins/fancyholograms/fh-api/src/main/java/de/oliver/fancyholograms/api/trait/HologramTraitRegistry.java index 9936c7a9..6e92db75 100644 --- a/plugins/fancyholograms/fh-api/src/main/java/de/oliver/fancyholograms/api/trait/HologramTraitRegistry.java +++ b/plugins/fancyholograms/fh-api/src/main/java/de/oliver/fancyholograms/api/trait/HologramTraitRegistry.java @@ -2,7 +2,7 @@ package de.oliver.fancyholograms.api.trait; import org.jetbrains.annotations.ApiStatus; -import java.util.List; +import java.util.Set; @ApiStatus.Experimental public interface HologramTraitRegistry { @@ -17,5 +17,5 @@ public interface HologramTraitRegistry { boolean isRegistered(Class trait); @ApiStatus.Experimental - List> getRegisteredTraits(); + Set> getRegisteredTraits(); } diff --git a/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/main/FancyHologramsPlugin.java b/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/main/FancyHologramsPlugin.java index 6f1d1009..181e9cdf 100644 --- a/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/main/FancyHologramsPlugin.java +++ b/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/main/FancyHologramsPlugin.java @@ -189,6 +189,8 @@ public final class FancyHologramsPlugin extends JavaPlugin implements FancyHolog metrics.register(); metrics.registerLegacy(); + traitRegistry.register(MultiplePagesTrait.class); + new StorageMigrator().migrate(); Collection data = storage.loadAll(); @@ -210,8 +212,6 @@ public final class FancyHologramsPlugin extends JavaPlugin implements FancyHolog FHConversionRegistry.registerBuiltInConverters(); - traitRegistry.register(MultiplePagesTrait.class); - fancyLogger.info("Successfully enabled FancyHolograms version %s".formatted(getDescription().getVersion())); } diff --git a/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/trait/HologramTraitRegistryImpl.java b/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/trait/HologramTraitRegistryImpl.java index 08af99ee..79bb1ad5 100644 --- a/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/trait/HologramTraitRegistryImpl.java +++ b/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/trait/HologramTraitRegistryImpl.java @@ -3,28 +3,34 @@ package de.oliver.fancyholograms.trait; import de.oliver.fancyholograms.api.trait.HologramTrait; import de.oliver.fancyholograms.api.trait.HologramTraitRegistry; -import java.util.List; +import java.util.HashSet; +import java.util.Set; public class HologramTraitRegistryImpl implements HologramTraitRegistry { + private final Set> traits; + + public HologramTraitRegistryImpl() { + this.traits = new HashSet<>(); + } @Override public boolean register(Class trait) { - return false; + return traits.add(trait); } @Override public boolean unregister(Class trait) { - return false; + return traits.remove(trait); } @Override public boolean isRegistered(Class trait) { - return false; + return traits.contains(trait); } @Override - public List> getRegisteredTraits() { - return List.of(); + public Set> getRegisteredTraits() { + return Set.copyOf(traits); } }