Add Javadocs

This commit is contained in:
2026-05-19 19:21:18 -04:00
parent 66476fe110
commit d58365f93f
35 changed files with 1199 additions and 0 deletions
@@ -35,23 +35,49 @@ public abstract class PlexModule
private File dataFolder;
private Logger logger;
/**
* Creates a Plex module.
*/
public PlexModule()
{
}
/**
* Returns the Plex API facade.
*
* @return Plex API facade for supported module integrations
*/
public PlexApi api()
{
return api;
}
/**
* Called when the module is loaded.
*/
public void load()
{
}
/**
* Called when the module is enabled.
*/
public void enable()
{
}
/**
* Called when the module is disabled.
*/
public void disable()
{
}
/**
* Registers and tracks a listener owned by this module.
*
* @param listener listener to register
*/
public void registerListener(Listener listener)
{
listeners.add(listener);
@@ -61,6 +87,11 @@ public abstract class PlexModule
}
}
/**
* Unregisters and stops tracking a listener owned by this module.
*
* @param listener listener to unregister
*/
public void unregisterListener(Listener listener)
{
listeners.remove(listener);
@@ -72,6 +103,11 @@ public abstract class PlexModule
HandlerList.unregisterAll(listener);
}
/**
* Registers and tracks a command owned by this module.
*
* @param command command to register
*/
public void registerCommand(PlexCommand command)
{
commands.add(command);
@@ -81,6 +117,11 @@ public abstract class PlexModule
}
}
/**
* Unregisters and stops tracking a command owned by this module.
*
* @param command command to unregister
*/
public void unregisterCommand(PlexCommand command)
{
commands.remove(command);
@@ -90,6 +131,12 @@ public abstract class PlexModule
}
}
/**
* Looks up a tracked command by name or alias.
*
* @param name command name or alias
* @return matching command, or {@code null} when no command matches
*/
@Nullable
public PlexCommand getCommand(String name)
{
@@ -99,6 +146,12 @@ public abstract class PlexModule
.orElse(null);
}
/**
* Adds a default message if the message key is not already configured.
*
* @param message message key
* @param initValue default value to write
*/
public void addDefaultMessage(String message, Object initValue)
{
if (api.configuration().messages().getString(message) == null)
@@ -109,6 +162,13 @@ public abstract class PlexModule
}
}
/**
* Adds a default message and comments if the message key is not already configured.
*
* @param message message key
* @param initValue default value to write
* @param comments comments to write above the message key
*/
public void addDefaultMessage(String message, Object initValue, String... comments)
{
if (api.configuration().messages().getString(message) == null)
@@ -121,6 +181,12 @@ public abstract class PlexModule
}
}
/**
* Opens a resource from this module's class loader.
*
* @param filename resource path
* @return resource stream, or {@code null} when the resource cannot be opened
*/
@Nullable
public InputStream getResource(@NotNull String filename)
{
@@ -142,46 +208,91 @@ public abstract class PlexModule
}
}
/**
* Returns commands currently tracked by this module.
*
* @return commands currently tracked by this module
*/
public List<PlexCommand> getCommands()
{
return commands;
}
/**
* Returns listeners currently tracked by this module.
*
* @return listeners currently tracked by this module
*/
public List<Listener> getListeners()
{
return listeners;
}
/**
* Returns metadata read from this module's module.yml.
*
* @return metadata read from this module's module.yml
*/
public PlexModuleFile getPlexModuleFile()
{
return plexModuleFile;
}
/**
* Returns the module data folder.
*
* @return module data folder
*/
public File getDataFolder()
{
return dataFolder;
}
/**
* Returns the module logger.
*
* @return module logger
*/
public Logger getLogger()
{
return logger;
}
/**
* Sets the Plex API facade for this module.
*
* @param api Plex API facade
*/
public void setApi(PlexApi api)
{
this.api = api;
}
/**
* Sets metadata read from this module's module.yml.
*
* @param plexModuleFile module metadata
*/
public void setPlexModuleFile(PlexModuleFile plexModuleFile)
{
this.plexModuleFile = plexModuleFile;
}
/**
* Sets the module data folder.
*
* @param dataFolder data folder
*/
public void setDataFolder(File dataFolder)
{
this.dataFolder = dataFolder;
}
/**
* Sets the module logger.
*
* @param logger logger
*/
public void setLogger(Logger logger)
{
this.logger = logger;
@@ -15,6 +15,15 @@ public final class PlexModuleFile
private List<String> libraries = List.of();
private List<String> repositories = List.of();
/**
* Creates module metadata.
*
* @param name module name
* @param main main module class
* @param description module description
* @param version module version
* @param apiCompatibility required Plex API compatibility version
*/
public PlexModuleFile(String name, String main, String description, String version, int apiCompatibility)
{
this.name = name;
@@ -24,46 +33,91 @@ public final class PlexModuleFile
this.apiCompatibility = apiCompatibility;
}
/**
* Returns the module name.
*
* @return module name
*/
public String getName()
{
return name;
}
/**
* Returns the main module class.
*
* @return main module class
*/
public String getMain()
{
return main;
}
/**
* Returns the module description.
*
* @return module description
*/
public String getDescription()
{
return description;
}
/**
* Returns the module version.
*
* @return module version
*/
public String getVersion()
{
return version;
}
/**
* Returns the required Plex API compatibility version.
*
* @return required Plex API compatibility version
*/
public int getApiCompatibility()
{
return apiCompatibility;
}
/**
* Returns dependency libraries declared by the module.
*
* @return dependency libraries declared by the module
*/
public List<String> getLibraries()
{
return libraries;
}
/**
* Sets dependency libraries declared by the module.
*
* @param libraries dependency libraries
*/
public void setLibraries(List<String> libraries)
{
this.libraries = List.copyOf(libraries);
}
/**
* Returns Maven repositories declared by the module.
*
* @return Maven repositories declared by the module
*/
public List<String> getRepositories()
{
return repositories;
}
/**
* Sets Maven repositories declared by the module.
*
* @param repositories Maven repositories
*/
public void setRepositories(List<String> repositories)
{
this.repositories = List.copyOf(repositories);