mirror of
https://github.com/PlaceholderAPI/PlaceholderAPI
synced 2024-11-22 14:16:53 +01:00
updated placeholderexpansion to define its own unregister method
This commit is contained in:
parent
8360511c50
commit
f61b6acfa8
@ -39,7 +39,7 @@ public final class CommandExpansionUnregister extends PlaceholderCommand
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
final String message = !plugin.getLocalExpansionManager().unregister(expansion.get()) ?
|
final String message = !expansion.get().unregister() ?
|
||||||
"&cFailed to unregister expansion: &f" :
|
"&cFailed to unregister expansion: &f" :
|
||||||
"&aSuccessfully unregistered expansion: &f";
|
"&aSuccessfully unregistered expansion: &f";
|
||||||
|
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
*/
|
*/
|
||||||
package me.clip.placeholderapi.expansion;
|
package me.clip.placeholderapi.expansion;
|
||||||
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPI;
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPIPlugin;
|
import me.clip.placeholderapi.PlaceholderAPIPlugin;
|
||||||
import me.clip.placeholderapi.PlaceholderHook;
|
import me.clip.placeholderapi.PlaceholderHook;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -32,6 +31,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public abstract class PlaceholderExpansion extends PlaceholderHook
|
public abstract class PlaceholderExpansion extends PlaceholderHook
|
||||||
{
|
{
|
||||||
@ -122,7 +122,7 @@ public abstract class PlaceholderExpansion extends PlaceholderHook
|
|||||||
*/
|
*/
|
||||||
public final boolean isRegistered()
|
public final boolean isRegistered()
|
||||||
{
|
{
|
||||||
return PlaceholderAPI.isRegistered(getIdentifier());
|
return getPlaceholderAPI().getLocalExpansionManager().findExpansionByIdentifier(getIdentifier()).map(it -> it.equals(this)).orElse(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -141,12 +141,24 @@ public abstract class PlaceholderExpansion extends PlaceholderHook
|
|||||||
* Attempt to register this PlaceholderExpansion
|
* Attempt to register this PlaceholderExpansion
|
||||||
*
|
*
|
||||||
* @return true if this expansion is now registered with PlaceholderAPI
|
* @return true if this expansion is now registered with PlaceholderAPI
|
||||||
|
* @deprecated This is going to be final in the future, startup and shutdown logic will have their own methods soon.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public boolean register()
|
public boolean register()
|
||||||
{
|
{
|
||||||
return canRegister() && getPlaceholderAPI().getLocalExpansionManager().register(this);
|
return canRegister() && getPlaceholderAPI().getLocalExpansionManager().register(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Attempt to unregister this PlaceholderExpansion
|
||||||
|
*
|
||||||
|
* @return true if this expansion is now unregistered with PlaceholderAPI
|
||||||
|
*/
|
||||||
|
public final boolean unregister()
|
||||||
|
{
|
||||||
|
return getPlaceholderAPI().getLocalExpansionManager().unregister(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quick getter for the {@link PlaceholderAPIPlugin} instance
|
* Quick getter for the {@link PlaceholderAPIPlugin} instance
|
||||||
@ -222,6 +234,36 @@ public abstract class PlaceholderExpansion extends PlaceholderHook
|
|||||||
return section != null && section.contains(path);
|
return section != null && section.contains(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean equals(final Object o)
|
||||||
|
{
|
||||||
|
if (this == o)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof PlaceholderExpansion))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
final PlaceholderExpansion expansion = (PlaceholderExpansion) o;
|
||||||
|
|
||||||
|
return getIdentifier().equals(expansion.getIdentifier()) &&
|
||||||
|
getAuthor().equals(expansion.getAuthor()) &&
|
||||||
|
getVersion().equals(expansion.getVersion());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final int hashCode()
|
||||||
|
{
|
||||||
|
return Objects.hash(getIdentifier(), getAuthor(), getVersion());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final String toString()
|
||||||
|
{
|
||||||
|
return String.format("PlaceholderExpansion[name: '%s', author: '%s', version: '%s']", getName(), getAuthor(), getVersion());
|
||||||
|
}
|
||||||
|
|
||||||
// === Deprecated API ===
|
// === Deprecated API ===
|
||||||
|
|
||||||
|
@ -124,6 +124,27 @@ public final class LocalExpansionManager implements Listener
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Optional<PlaceholderExpansion> register(@NotNull final Class<? extends PlaceholderExpansion> clazz)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
final PlaceholderExpansion expansion = createExpansionInstance(clazz);
|
||||||
|
if (expansion == null || !expansion.register())
|
||||||
|
{
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
return Optional.of(expansion);
|
||||||
|
}
|
||||||
|
catch (final LinkageError ex)
|
||||||
|
{
|
||||||
|
plugin.getLogger().severe("expansion class " + clazz.getSimpleName() + " is outdated: \n" +
|
||||||
|
"Failed to load due to a [" + ex.getClass().getSimpleName() + "], attempted to use " + ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do not call this method yourself, use {@link PlaceholderExpansion#register()}
|
* Do not call this method yourself, use {@link PlaceholderExpansion#register()}
|
||||||
*/
|
*/
|
||||||
@ -188,7 +209,7 @@ public final class LocalExpansionManager implements Listener
|
|||||||
}
|
}
|
||||||
|
|
||||||
final PlaceholderExpansion removed = expansions.get(expansion.getIdentifier());
|
final PlaceholderExpansion removed = expansions.get(expansion.getIdentifier());
|
||||||
if (removed != null && !unregister(removed))
|
if (removed != null && !removed.unregister())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -228,27 +249,9 @@ public final class LocalExpansionManager implements Listener
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<PlaceholderExpansion> register(@NotNull final Class<? extends PlaceholderExpansion> clazz)
|
/**
|
||||||
{
|
* Do not call this method yourself, use {@link PlaceholderExpansion#unregister()}
|
||||||
try
|
*/
|
||||||
{
|
|
||||||
final PlaceholderExpansion expansion = createExpansionInstance(clazz);
|
|
||||||
if (expansion == null || !expansion.register())
|
|
||||||
{
|
|
||||||
return Optional.empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
return Optional.of(expansion);
|
|
||||||
}
|
|
||||||
catch (final LinkageError ex)
|
|
||||||
{
|
|
||||||
plugin.getLogger().severe("expansion class " + clazz.getSimpleName() + " is outdated: \n" +
|
|
||||||
"Failed to load due to a [" + ex.getClass().getSimpleName() + "], attempted to use " + ex.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
return Optional.empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean unregister(@NotNull final PlaceholderExpansion expansion)
|
public boolean unregister(@NotNull final PlaceholderExpansion expansion)
|
||||||
{
|
{
|
||||||
if (expansions.remove(expansion.getIdentifier()) == null)
|
if (expansions.remove(expansion.getIdentifier()) == null)
|
||||||
@ -314,7 +317,7 @@ public final class LocalExpansionManager implements Listener
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
unregister(expansion);
|
expansion.unregister();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,7 +402,7 @@ public final class LocalExpansionManager implements Listener
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
unregister(expansion);
|
expansion.unregister();
|
||||||
plugin.getLogger().info("Unregistered placeholder expansion: " + expansion.getName());
|
plugin.getLogger().info("Unregistered placeholder expansion: " + expansion.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user