fancyholograms-v3: Implement trait registry

This commit is contained in:
Oliver
2025-05-17 23:03:06 +02:00
parent ccd1a917ab
commit 7ccde4dab9
3 changed files with 16 additions and 10 deletions

View File

@@ -2,7 +2,7 @@ package de.oliver.fancyholograms.api.trait;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
import java.util.List; import java.util.Set;
@ApiStatus.Experimental @ApiStatus.Experimental
public interface HologramTraitRegistry { public interface HologramTraitRegistry {
@@ -17,5 +17,5 @@ public interface HologramTraitRegistry {
boolean isRegistered(Class<? extends HologramTrait> trait); boolean isRegistered(Class<? extends HologramTrait> trait);
@ApiStatus.Experimental @ApiStatus.Experimental
List<Class<? extends HologramTrait>> getRegisteredTraits(); Set<Class<? extends HologramTrait>> getRegisteredTraits();
} }

View File

@@ -189,6 +189,8 @@ public final class FancyHologramsPlugin extends JavaPlugin implements FancyHolog
metrics.register(); metrics.register();
metrics.registerLegacy(); metrics.registerLegacy();
traitRegistry.register(MultiplePagesTrait.class);
new StorageMigrator().migrate(); new StorageMigrator().migrate();
Collection<HologramData> data = storage.loadAll(); Collection<HologramData> data = storage.loadAll();
@@ -210,8 +212,6 @@ public final class FancyHologramsPlugin extends JavaPlugin implements FancyHolog
FHConversionRegistry.registerBuiltInConverters(); FHConversionRegistry.registerBuiltInConverters();
traitRegistry.register(MultiplePagesTrait.class);
fancyLogger.info("Successfully enabled FancyHolograms version %s".formatted(getDescription().getVersion())); fancyLogger.info("Successfully enabled FancyHolograms version %s".formatted(getDescription().getVersion()));
} }

View File

@@ -3,28 +3,34 @@ package de.oliver.fancyholograms.trait;
import de.oliver.fancyholograms.api.trait.HologramTrait; import de.oliver.fancyholograms.api.trait.HologramTrait;
import de.oliver.fancyholograms.api.trait.HologramTraitRegistry; import de.oliver.fancyholograms.api.trait.HologramTraitRegistry;
import java.util.List; import java.util.HashSet;
import java.util.Set;
public class HologramTraitRegistryImpl implements HologramTraitRegistry { public class HologramTraitRegistryImpl implements HologramTraitRegistry {
private final Set<Class<? extends HologramTrait>> traits;
public HologramTraitRegistryImpl() {
this.traits = new HashSet<>();
}
@Override @Override
public boolean register(Class<? extends HologramTrait> trait) { public boolean register(Class<? extends HologramTrait> trait) {
return false; return traits.add(trait);
} }
@Override @Override
public boolean unregister(Class<? extends HologramTrait> trait) { public boolean unregister(Class<? extends HologramTrait> trait) {
return false; return traits.remove(trait);
} }
@Override @Override
public boolean isRegistered(Class<? extends HologramTrait> trait) { public boolean isRegistered(Class<? extends HologramTrait> trait) {
return false; return traits.contains(trait);
} }
@Override @Override
public List<Class<? extends HologramTrait>> getRegisteredTraits() { public Set<Class<? extends HologramTrait>> getRegisteredTraits() {
return List.of(); return Set.copyOf(traits);
} }
} }