44 lines
1.4 KiB
Java
44 lines
1.4 KiB
Java
package lol.pyr.znpcsplus.api;
|
|
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.plugin.Plugin;
|
|
import org.bukkit.plugin.ServicePriority;
|
|
|
|
public class NpcApiProvider {
|
|
private static NpcApi api = null;
|
|
|
|
private NpcApiProvider() {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
/**
|
|
* Static method that returns the api instance of the plugin
|
|
*
|
|
* @return The instance of the api for the ZNPCsPlus plugin
|
|
*/
|
|
public static NpcApi get() {
|
|
if (api == null) throw new IllegalStateException(
|
|
"ZNPCsPlus plugin isn't enabled yet!\n" +
|
|
"Please add it to your plugin.yml as a depend or softdepend."
|
|
);
|
|
return api;
|
|
}
|
|
|
|
/**
|
|
* Internal method used to register the main instance of the plugin as the api provider
|
|
* You probably shouldn't call this method under any circumstances
|
|
*/
|
|
public static void register(Plugin plugin, NpcApi api) {
|
|
NpcApiProvider.api = api;
|
|
Bukkit.getServicesManager().register(NpcApi.class, api, plugin, ServicePriority.Normal);
|
|
}
|
|
|
|
/**
|
|
* Internal method used to unregister the plugin from the provider when the plugin shuts down
|
|
* You probably shouldn't call this method under any circumstances
|
|
*/
|
|
public static void unregister() {
|
|
Bukkit.getServicesManager().unregister(api);
|
|
NpcApiProvider.api = null;
|
|
}
|
|
}
|