Package top.focess.qq.api.plugin
Class Plugin
- java.lang.Object
-
- top.focess.qq.api.plugin.Plugin
-
- Direct Known Subclasses:
FocessQQ.MainPlugin,LazyPlugin
public abstract class Plugin extends Object
Represent a Plugin class that can be load, enable and disable. Also, provide plenty of API for the plugin to get better with this framework. You should declarePluginTypeto this class.
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voiddisable()Used to save some data of the pluginabstract voidenable()Used to initialize the pluginbooleanequals(@Nullable Object o)StringgetAuthor()DefaultConfiggetDefaultConfig()@NonNull FilegetDefaultFolder()LangConfiggetLangConfig()@NonNull StringgetName()static @Nullable PlugingetPlugin(Class<? extends Plugin> plugin)Get Plugin instance by the class instancestatic @Nullable PlugingetPlugin(String name)Get Plugin instance by the namePluginDescriptiongetPluginDescription()VersiongetVersion()inthashCode()booleanisEnabled()@Nullable InputStreamloadResource(String path)voidonDisable()voidonEnable()voidregisterBuffer(DataConverter<?> dataConverter, DataCollection.BufferGetter bufferGetter)Register the getter of the buffervoidregisterCommand(Command command)Register the commandvoidregisterListener(Listener listener)Register the listener into the Event chainvoidregisterSpecialArgumentHandler(String name, SpecialArgumentComplexHandler handler)Register the special argument handlerstatic @Nullable PluginthisPlugin()voidunload()Used to unload this plugin during enabling process This should be called in theenable()method
-
-
-
Constructor Detail
-
Plugin
public Plugin(String name, String author, Version version)
Initialize a Plugin instance by its name. Never instance it! It will be instanced when bot bootstraps automatically.- Parameters:
name- the plugin nameauthor- the plugin authorversion- the plugin version- Throws:
PluginLoaderException- if the classloader of the plugin is notPluginClassLoader
-
Plugin
protected Plugin()
Provide a constructor to helpPluginTypedesign. Never instance it! It will be instanced when bot bootstraps automatically.
-
-
Method Detail
-
getPlugin
public static @Nullable Plugin getPlugin(Class<? extends Plugin> plugin)
Get Plugin instance by the class instance- Parameters:
plugin- the class instance of the plugin- Returns:
- the plugin instance
- See Also:
PluginClassLoader.getPlugin(Class)
-
getPlugin
public static @Nullable Plugin getPlugin(String name)
Get Plugin instance by the name- Parameters:
name- the name of the plugin- Returns:
- the plugin instance
- See Also:
PluginClassLoader.getPlugin(String)
-
thisPlugin
public static @Nullable Plugin thisPlugin()
-
getName
public final @NonNull String getName()
-
enable
public abstract void enable()
Used to initialize the plugin
-
disable
public abstract void disable()
Used to save some data of the plugin
-
onEnable
public final void onEnable()
-
onDisable
public final void onDisable()
-
getDefaultFolder
public final @NonNull File getDefaultFolder()
-
registerListener
public final void registerListener(Listener listener)
Register the listener into the Event chain- Parameters:
listener- the listener need to be registered
-
registerCommand
public final void registerCommand(Command command)
Register the command- Parameters:
command- the command need to be registered- See Also:
Command.register(Plugin, Command)
-
registerBuffer
public final void registerBuffer(DataConverter<?> dataConverter, DataCollection.BufferGetter bufferGetter)
Register the getter of the buffer- Parameters:
dataConverter- the buffer data converterbufferGetter- the getter of the buffer- See Also:
DataCollection.register(Plugin, DataConverter, DataCollection.BufferGetter)
-
getAuthor
public final String getAuthor()
-
getVersion
public final Version getVersion()
-
getLangConfig
public final LangConfig getLangConfig()
-
getDefaultConfig
public final DefaultConfig getDefaultConfig()
-
getPluginDescription
public final PluginDescription getPluginDescription()
-
loadResource
public final @Nullable InputStream loadResource(String path)
-
isEnabled
public final boolean isEnabled()
-
unload
public final void unload()
Used to unload this plugin during enabling process This should be called in theenable()method
-
registerSpecialArgumentHandler
public final void registerSpecialArgumentHandler(String name, SpecialArgumentComplexHandler handler)
Register the special argument handler- Parameters:
name- the name of the special argument handlerhandler- the special argument handler- See Also:
CommandLine.register(Plugin, String, SpecialArgumentComplexHandler)
-
-