Only register commands on Spigot if the extension has commands

This commit is contained in:
Camotoy 2022-09-14 14:19:56 -04:00
parent a99afe4418
commit 6df8740955
No known key found for this signature in database
GPG key ID: 7EEFB66FE798081F
7 changed files with 21 additions and 92 deletions

View file

@ -124,7 +124,7 @@ public interface Extension extends EventRegistrar {
*/
@NonNull
default ExtensionLoader extensionLoader() {
return Objects.requireNonNull(this.extensionManager().extensionLoader(this));
return Objects.requireNonNull(this.extensionManager().extensionLoader());
}
/**

View file

@ -34,7 +34,6 @@ import java.nio.file.Path;
* The extension loader is responsible for loading, unloading, enabling and disabling extensions
*/
public abstract class ExtensionLoader {
/**
* Gets if the given {@link Extension} is enabled.
*
@ -101,6 +100,6 @@ public abstract class ExtensionLoader {
* @param extensionManager the extension manager
*/
protected void register(@NonNull Extension extension, @NonNull ExtensionManager extensionManager) {
extensionManager.register(extension, this);
extensionManager.register(extension);
}
}

View file

@ -29,7 +29,6 @@ import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Collection;
import java.util.Map;
/**
* Manages Geyser {@link Extension}s
@ -59,15 +58,6 @@ public abstract class ExtensionManager {
*/
public abstract void disable(@NonNull Extension extension);
/**
* Gets the {@link ExtensionLoader} responsible for loading
* the given {@link Extension}.
*
* @return the extension loader for loading the given extension
*/
@Nullable
public abstract ExtensionLoader extensionLoader(@NonNull Extension extension);
/**
* Gets all the {@link Extension}s currently loaded.
*
@ -77,37 +67,19 @@ public abstract class ExtensionManager {
public abstract Collection<Extension> extensions();
/**
* Gets the {@link ExtensionLoader} with the given identifier.
* Gets the {@link ExtensionLoader}.
*
* @param identifier the identifier
* @return the extension loader at the given identifier
* @return the extension loader
*/
@Nullable
public abstract ExtensionLoader extensionLoader(@NonNull String identifier);
/**
* Registers an {@link ExtensionLoader} with the given identifier.
*
* @param identifier the identifier
* @param extensionLoader the extension loader
*/
public abstract void registerExtensionLoader(@NonNull String identifier, @NonNull ExtensionLoader extensionLoader);
/**
* Gets all the currently registered {@link ExtensionLoader}s.
*
* @return all the currently registered extension loaders
*/
@NonNull
public abstract Map<String, ExtensionLoader> extensionLoaders();
public abstract ExtensionLoader extensionLoader();
/**
* Registers an {@link Extension} with the given {@link ExtensionLoader}.
*
* @param extension the extension
* @param loader the loader
*/
public abstract void register(@NonNull Extension extension, @NonNull ExtensionLoader loader);
public abstract void register(@NonNull Extension extension);
/**
* Loads all extensions from the given {@link ExtensionLoader}.