mirror of
https://github.com/filoghost/HolographicDisplays.git
synced 2024-11-26 20:35:14 +01:00
Simplify placeholder API
This commit is contained in:
parent
72e17365d6
commit
bf39afb630
@ -13,7 +13,6 @@ import me.filoghost.holographicdisplays.api.beta.placeholder.GlobalPlaceholderRe
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.IndividualPlaceholder;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.IndividualPlaceholderFactory;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.IndividualPlaceholderReplacementSupplier;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.RegisteredPlaceholder;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@ -85,32 +84,32 @@ public interface HolographicDisplaysAPI {
|
||||
/**
|
||||
* @since 1
|
||||
*/
|
||||
RegisteredPlaceholder registerGlobalPlaceholder(@NotNull String identifier, int refreshIntervalTicks, @NotNull GlobalPlaceholderReplacementSupplier replacementSupplier);
|
||||
void registerGlobalPlaceholder(@NotNull String identifier, int refreshIntervalTicks, @NotNull GlobalPlaceholderReplacementSupplier replacementSupplier);
|
||||
|
||||
/**
|
||||
* @since 1
|
||||
*/
|
||||
RegisteredPlaceholder registerGlobalPlaceholder(@NotNull String identifier, @NotNull GlobalPlaceholder placeholder);
|
||||
void registerGlobalPlaceholder(@NotNull String identifier, @NotNull GlobalPlaceholder placeholder);
|
||||
|
||||
/**
|
||||
* @since 1
|
||||
*/
|
||||
RegisteredPlaceholder registerGlobalPlaceholderFactory(@NotNull String identifier, @NotNull GlobalPlaceholderFactory placeholderFactory);
|
||||
void registerGlobalPlaceholderFactory(@NotNull String identifier, @NotNull GlobalPlaceholderFactory placeholderFactory);
|
||||
|
||||
/**
|
||||
* @since 1
|
||||
*/
|
||||
RegisteredPlaceholder registerIndividualPlaceholder(@NotNull String identifier, int refreshIntervalTicks, @NotNull IndividualPlaceholderReplacementSupplier replacementSupplier);
|
||||
void registerIndividualPlaceholder(@NotNull String identifier, int refreshIntervalTicks, @NotNull IndividualPlaceholderReplacementSupplier replacementSupplier);
|
||||
|
||||
/**
|
||||
* @since 1
|
||||
*/
|
||||
RegisteredPlaceholder registerIndividualPlaceholder(@NotNull String identifier, @NotNull IndividualPlaceholder placeholder);
|
||||
void registerIndividualPlaceholder(@NotNull String identifier, @NotNull IndividualPlaceholder placeholder);
|
||||
|
||||
/**
|
||||
* @since 1
|
||||
*/
|
||||
RegisteredPlaceholder registerIndividualPlaceholderFactory(@NotNull String identifier, @NotNull IndividualPlaceholderFactory placeholderFactory);
|
||||
void registerIndividualPlaceholderFactory(@NotNull String identifier, @NotNull IndividualPlaceholderFactory placeholderFactory);
|
||||
|
||||
/**
|
||||
* @since 1
|
||||
@ -123,7 +122,7 @@ public interface HolographicDisplaysAPI {
|
||||
* @return a collection of placeholder identifiers
|
||||
* @since 1
|
||||
*/
|
||||
@NotNull Collection<RegisteredPlaceholder> getRegisteredPlaceholders();
|
||||
@NotNull Collection<String> getRegisteredPlaceholders();
|
||||
|
||||
/**
|
||||
* Unregisters a placeholder.
|
||||
|
@ -1,14 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) filoghost and contributors
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.api.beta.placeholder;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface RegisteredPlaceholder {
|
||||
|
||||
@NotNull String getIdentifier();
|
||||
|
||||
}
|
@ -15,7 +15,6 @@ import me.filoghost.holographicdisplays.api.beta.placeholder.GlobalPlaceholderRe
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.IndividualPlaceholder;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.IndividualPlaceholderFactory;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.IndividualPlaceholderReplacementSupplier;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.RegisteredPlaceholder;
|
||||
import me.filoghost.holographicdisplays.plugin.hologram.base.ImmutablePosition;
|
||||
import me.filoghost.holographicdisplays.plugin.placeholder.registry.PlaceholderRegistry;
|
||||
import org.bukkit.Location;
|
||||
@ -55,53 +54,53 @@ class DefaultHolographicDisplaysAPI implements HolographicDisplaysAPI {
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegisteredPlaceholder registerGlobalPlaceholder(@NotNull String identifier, int refreshIntervalTicks, @NotNull GlobalPlaceholderReplacementSupplier replacementSupplier) {
|
||||
public void registerGlobalPlaceholder(@NotNull String identifier, int refreshIntervalTicks, @NotNull GlobalPlaceholderReplacementSupplier replacementSupplier) {
|
||||
checkIdentifier(identifier);
|
||||
Preconditions.checkArgument(refreshIntervalTicks >= 0, "refreshIntervalTicks should be positive");
|
||||
Preconditions.notNull(replacementSupplier, "replacementSupplier");
|
||||
|
||||
return placeholderRegistry.registerGlobalPlaceholder(plugin, identifier, refreshIntervalTicks, replacementSupplier);
|
||||
placeholderRegistry.registerGlobalPlaceholder(plugin, identifier, refreshIntervalTicks, replacementSupplier);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegisteredPlaceholder registerGlobalPlaceholder(@NotNull String identifier, @NotNull GlobalPlaceholder placeholder) {
|
||||
public void registerGlobalPlaceholder(@NotNull String identifier, @NotNull GlobalPlaceholder placeholder) {
|
||||
checkIdentifier(identifier);
|
||||
Preconditions.notNull(placeholder, "placeholder");
|
||||
|
||||
return placeholderRegistry.registerGlobalPlaceholder(plugin, identifier, placeholder);
|
||||
placeholderRegistry.registerGlobalPlaceholder(plugin, identifier, placeholder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegisteredPlaceholder registerGlobalPlaceholderFactory(@NotNull String identifier, @NotNull GlobalPlaceholderFactory placeholderFactory) {
|
||||
public void registerGlobalPlaceholderFactory(@NotNull String identifier, @NotNull GlobalPlaceholderFactory placeholderFactory) {
|
||||
checkIdentifier(identifier);
|
||||
Preconditions.notNull(placeholderFactory, "placeholderFactory");
|
||||
|
||||
return placeholderRegistry.registerGlobalPlaceholderFactory(plugin, identifier, placeholderFactory);
|
||||
placeholderRegistry.registerGlobalPlaceholderFactory(plugin, identifier, placeholderFactory);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegisteredPlaceholder registerIndividualPlaceholder(@NotNull String identifier, int refreshIntervalTicks, @NotNull IndividualPlaceholderReplacementSupplier replacementSupplier) {
|
||||
public void registerIndividualPlaceholder(@NotNull String identifier, int refreshIntervalTicks, @NotNull IndividualPlaceholderReplacementSupplier replacementSupplier) {
|
||||
checkIdentifier(identifier);
|
||||
Preconditions.checkArgument(refreshIntervalTicks >= 0, "refreshIntervalTicks should be positive");
|
||||
Preconditions.notNull(replacementSupplier, "replacementSupplier");
|
||||
|
||||
return placeholderRegistry.registerIndividualPlaceholder(plugin, identifier, refreshIntervalTicks, replacementSupplier);
|
||||
placeholderRegistry.registerIndividualPlaceholder(plugin, identifier, refreshIntervalTicks, replacementSupplier);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegisteredPlaceholder registerIndividualPlaceholder(@NotNull String identifier, @NotNull IndividualPlaceholder placeholder) {
|
||||
public void registerIndividualPlaceholder(@NotNull String identifier, @NotNull IndividualPlaceholder placeholder) {
|
||||
checkIdentifier(identifier);
|
||||
Preconditions.notNull(placeholder, "placeholder");
|
||||
|
||||
return placeholderRegistry.registerIndividualPlaceholder(plugin, identifier, placeholder);
|
||||
placeholderRegistry.registerIndividualPlaceholder(plugin, identifier, placeholder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegisteredPlaceholder registerIndividualPlaceholderFactory(@NotNull String identifier, @NotNull IndividualPlaceholderFactory placeholderFactory) {
|
||||
public void registerIndividualPlaceholderFactory(@NotNull String identifier, @NotNull IndividualPlaceholderFactory placeholderFactory) {
|
||||
checkIdentifier(identifier);
|
||||
Preconditions.notNull(placeholderFactory, "placeholderFactory");
|
||||
|
||||
return placeholderRegistry.registerIndividualPlaceholderFactory(plugin, identifier, placeholderFactory);
|
||||
placeholderRegistry.registerIndividualPlaceholderFactory(plugin, identifier, placeholderFactory);
|
||||
}
|
||||
|
||||
private void checkIdentifier(String identifier) {
|
||||
@ -137,7 +136,7 @@ class DefaultHolographicDisplaysAPI implements HolographicDisplaysAPI {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Collection<RegisteredPlaceholder> getRegisteredPlaceholders() {
|
||||
public @NotNull Collection<String> getRegisteredPlaceholders() {
|
||||
return placeholderRegistry.getRegisteredPlaceholders(plugin);
|
||||
}
|
||||
|
||||
|
@ -5,16 +5,14 @@
|
||||
*/
|
||||
package me.filoghost.holographicdisplays.plugin.placeholder.registry;
|
||||
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.RegisteredPlaceholder;
|
||||
import me.filoghost.holographicdisplays.plugin.placeholder.PlaceholderException;
|
||||
import me.filoghost.holographicdisplays.plugin.placeholder.PlaceholderIdentifier;
|
||||
import me.filoghost.holographicdisplays.plugin.placeholder.PluginName;
|
||||
import me.filoghost.holographicdisplays.plugin.placeholder.StandardPlaceholder;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public abstract class PlaceholderExpansion implements RegisteredPlaceholder {
|
||||
public abstract class PlaceholderExpansion {
|
||||
|
||||
private final PluginName pluginName;
|
||||
private final PlaceholderIdentifier identifier;
|
||||
@ -28,15 +26,10 @@ public abstract class PlaceholderExpansion implements RegisteredPlaceholder {
|
||||
return pluginName;
|
||||
}
|
||||
|
||||
public PlaceholderIdentifier getCaseInsensitiveIdentifier() {
|
||||
public PlaceholderIdentifier getIdentifier() {
|
||||
return identifier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getIdentifier() {
|
||||
return identifier.toString();
|
||||
}
|
||||
|
||||
public abstract boolean isIndividual();
|
||||
|
||||
public abstract @Nullable StandardPlaceholder createPlaceholder(String argument) throws PlaceholderException;
|
||||
|
@ -9,6 +9,7 @@ import com.google.common.collect.HashBasedTable;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Table;
|
||||
import me.filoghost.fcommons.collection.CaseInsensitiveString;
|
||||
import me.filoghost.fcommons.collection.CollectionUtils;
|
||||
import me.filoghost.fcommons.logging.Log;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.GlobalPlaceholder;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.GlobalPlaceholderFactory;
|
||||
@ -16,16 +17,13 @@ import me.filoghost.holographicdisplays.api.beta.placeholder.GlobalPlaceholderRe
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.IndividualPlaceholder;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.IndividualPlaceholderFactory;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.IndividualPlaceholderReplacementSupplier;
|
||||
import me.filoghost.holographicdisplays.api.beta.placeholder.RegisteredPlaceholder;
|
||||
import me.filoghost.holographicdisplays.plugin.placeholder.PlaceholderIdentifier;
|
||||
import me.filoghost.holographicdisplays.plugin.placeholder.PlaceholderOccurrence;
|
||||
import me.filoghost.holographicdisplays.plugin.placeholder.PluginName;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
public class PlaceholderRegistry {
|
||||
@ -44,38 +42,36 @@ public class PlaceholderRegistry {
|
||||
return version.get();
|
||||
}
|
||||
|
||||
public PlaceholderExpansion registerIndividualPlaceholder(
|
||||
public void registerIndividualPlaceholder(
|
||||
Plugin plugin, String identifier, int refreshIntervalTicks, IndividualPlaceholderReplacementSupplier replacementSupplier) {
|
||||
return registerIndividualPlaceholder(plugin, identifier, new SimpleIndividualPlaceholder(refreshIntervalTicks, replacementSupplier));
|
||||
registerIndividualPlaceholder(plugin, identifier, new SimpleIndividualPlaceholder(refreshIntervalTicks, replacementSupplier));
|
||||
}
|
||||
|
||||
public PlaceholderExpansion registerIndividualPlaceholder(Plugin plugin, String identifier, IndividualPlaceholder placeholder) {
|
||||
return registerIndividualPlaceholderFactory(plugin, identifier, (String argument) -> placeholder);
|
||||
public void registerIndividualPlaceholder(Plugin plugin, String identifier, IndividualPlaceholder placeholder) {
|
||||
registerIndividualPlaceholderFactory(plugin, identifier, (String argument) -> placeholder);
|
||||
}
|
||||
|
||||
public PlaceholderExpansion registerIndividualPlaceholderFactory(Plugin plugin, String identifier, IndividualPlaceholderFactory factory) {
|
||||
public void registerIndividualPlaceholderFactory(Plugin plugin, String identifier, IndividualPlaceholderFactory factory) {
|
||||
PlaceholderExpansion expansion = new IndividualPlaceholderExpansion(plugin, identifier, factory);
|
||||
registerExpansion(expansion);
|
||||
return expansion;
|
||||
}
|
||||
|
||||
public PlaceholderExpansion registerGlobalPlaceholder(
|
||||
public void registerGlobalPlaceholder(
|
||||
Plugin plugin, String identifier, int refreshIntervalTicks, GlobalPlaceholderReplacementSupplier replacementSupplier) {
|
||||
return registerGlobalPlaceholder(plugin, identifier, new SimpleGlobalPlaceholder(refreshIntervalTicks, replacementSupplier));
|
||||
registerGlobalPlaceholder(plugin, identifier, new SimpleGlobalPlaceholder(refreshIntervalTicks, replacementSupplier));
|
||||
}
|
||||
|
||||
public PlaceholderExpansion registerGlobalPlaceholder(Plugin plugin, String identifier, GlobalPlaceholder placeholder) {
|
||||
return registerGlobalPlaceholderFactory(plugin, identifier, (String argument) -> placeholder);
|
||||
public void registerGlobalPlaceholder(Plugin plugin, String identifier, GlobalPlaceholder placeholder) {
|
||||
registerGlobalPlaceholderFactory(plugin, identifier, (String argument) -> placeholder);
|
||||
}
|
||||
|
||||
public PlaceholderExpansion registerGlobalPlaceholderFactory(Plugin plugin, String identifier, GlobalPlaceholderFactory factory) {
|
||||
public void registerGlobalPlaceholderFactory(Plugin plugin, String identifier, GlobalPlaceholderFactory factory) {
|
||||
PlaceholderExpansion expansion = new GlobalPlaceholderExpansion(plugin, identifier, factory);
|
||||
registerExpansion(expansion);
|
||||
return expansion;
|
||||
}
|
||||
|
||||
private void registerExpansion(PlaceholderExpansion expansion) {
|
||||
placeholderExpansions.put(expansion.getCaseInsensitiveIdentifier(), expansion.getPluginName(), expansion);
|
||||
placeholderExpansions.put(expansion.getIdentifier(), expansion.getPluginName(), expansion);
|
||||
|
||||
version.incrementAndGet();
|
||||
}
|
||||
@ -111,10 +107,11 @@ public class PlaceholderRegistry {
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<RegisteredPlaceholder> getRegisteredPlaceholders(Plugin plugin) {
|
||||
public Collection<String> getRegisteredPlaceholders(Plugin plugin) {
|
||||
PluginName pluginName = new PluginName(plugin);
|
||||
|
||||
return new ArrayList<>(placeholderExpansions.column(pluginName).values());
|
||||
Collection<PlaceholderExpansion> pluginExpansions = placeholderExpansions.column(pluginName).values();
|
||||
return CollectionUtils.toImmutableSet(pluginExpansions, expansion -> expansion.getIdentifier().toString());
|
||||
}
|
||||
|
||||
public boolean isRegisteredIdentifier(Plugin plugin, String identifier) {
|
||||
|
Loading…
Reference in New Issue
Block a user