下面列出了怎么用org.bukkit.plugin.ServicePriority的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Registers the LuckPerms implementation of {@link Permission} and {@link Chat} with
* the service manager.
*/
public void hook() {
try {
if (this.permission == null) {
this.permission = new LuckPermsVaultPermission(this.plugin);
}
if (this.chat == null) {
this.chat = new LuckPermsVaultChat(this.plugin, this.permission);
}
final ServicesManager sm = this.plugin.getBootstrap().getServer().getServicesManager();
sm.register(Permission.class, this.permission, this.plugin.getBootstrap(), ServicePriority.High);
sm.register(Chat.class, this.chat, this.plugin.getBootstrap(), ServicePriority.High);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void invoke() {
ServicesManager servicesManager = BukkitBootstrap.getPlugin(BukkitBootstrap.class).getServer().getServicesManager();
Permission permission = new VaultPermissionImpl();
servicesManager.register(Permission.class, permission, BukkitBootstrap.getPlugin(BukkitBootstrap.class), ServicePriority.Highest);
servicesManager.register(Chat.class,
new VaultChatImpl(permission),
BukkitBootstrap.getPlugin(BukkitBootstrap.class),
ServicePriority.Highest);
}
@Override
public void preLoad(Plugin plugin, Class pluginClass) {
if (pluginClass.isAnnotationPresent(TService.class)) {
TService service = (TService) pluginClass.getAnnotation(TService.class);
try {
Bukkit.getServicesManager().register(pluginClass, service.value().newInstance(), plugin, ServicePriority.Normal);
TabooLibAPI.debug("Service " + pluginClass.getSimpleName() + " registered. (" + plugin.getName() + ")");
} catch (Exception e) {
TLogger.getGlobalLogger().warn("TService load Failed: " + pluginClass.getName());
e.printStackTrace();
}
}
}
@Nonnull
@Override
public <T> T provideService(@Nonnull Class<T> clazz, @Nonnull T instance, @Nonnull ServicePriority priority) {
return Services.provide(clazz, instance, this, priority);
}
@Nonnull
@Override
public <T> T provideService(@Nonnull Class<T> clazz, @Nonnull T instance) {
return provideService(clazz, instance, ServicePriority.Normal);
}
@Override
protected void registerApiOnPlatform(LuckPerms api) {
this.bootstrap.getServer().getServicesManager().register(LuckPerms.class, api, this.bootstrap, ServicePriority.Normal);
}
public void hook() {
Bukkit.getServicesManager().register(Economy.class, this.provider, this.plugin, ServicePriority.Normal);
}
public void install() {
Cauldron.setInterface(this);
Bukkit.getServicesManager().register(CauldronApi.class, this, null, ServicePriority.Highest);
}
public void inject(Plugin plugin)
{
BungeePerms.getLogger().info("Injection of Bungeeperms into Vault");
try
{
Vault v = (Vault) plugin;
if (!v.isEnabled())
{
return;
}
//inject BungeePerms permissions
// Method m = v.getClass().getDeclaredMethod("hookPermission", String.class, Class.class, ServicePriority.class, String[].class);
// m.setAccessible(true);
// m.invoke(v, "BungeePerms", Permission_BungeePerms.class, ServicePriority.Normal, new String[]
// {
// "net.alpenblock.bungeeperms.platform.bukkit.BukkitPlugin"
// });
//
// Field f = v.getClass().getDeclaredField("perms");
// f.setAccessible(true);
// f.set(v, Bukkit.getServicesManager().getRegistration(Permission.class).getProvider());
Bukkit.getServer().getServicesManager().register(Permission.class, new Permission_BungeePerms(v), BukkitPlugin.getInstance(), ServicePriority.Highest);
//inject BungeePerms chat
// m = v.getClass().getDeclaredMethod("hookChat", String.class, Class.class, ServicePriority.class, String[].class);
// m.setAccessible(true);
// m.invoke(v, "BungeePerms", Chat_BungeePerms.class, ServicePriority.Normal, new String[]
// {
// "net.alpenblock.bungeeperms.platform.bukkit.BukkitPlugin"
// });
Bukkit.getServer().getServicesManager().register(Chat.class, new Chat_BungeePerms(v, new Permission_BungeePerms(v)), BukkitPlugin.getInstance(), ServicePriority.Highest);
}
catch (Exception ex)
{
BungeePerms.getInstance().getDebug().log(ex);
}
}
/**
* Provides a service.
*
* @param clazz the service class
* @param instance the service instance
* @param plugin the plugin to register the service to
* @param priority the priority to register the service instance at
* @param <T> the service class type
* @return the same service instance
*/
@Nonnull
public static <T> T provide(@Nonnull Class<T> clazz, @Nonnull T instance, @Nonnull Plugin plugin, @Nonnull ServicePriority priority) {
Objects.requireNonNull(clazz, "clazz");
Objects.requireNonNull(instance, "instance");
Objects.requireNonNull(plugin, "plugin");
Objects.requireNonNull(priority, "priority");
Bukkit.getServicesManager().register(clazz, instance, plugin, priority);
return instance;
}
/**
* Provides a service to the ServiceManager, bound to this plugin
*
* @param clazz the service class
* @param instance the instance
* @param priority the priority to register the service at
* @param <T> the service class type
* @return the instance
*/
@Nonnull
<T> T provideService(@Nonnull Class<T> clazz, @Nonnull T instance, @Nonnull ServicePriority priority);
/**
* Provides a service.
*
* @param clazz the service class
* @param instance the service instance
* @param priority the priority to register the service instance at
* @param <T> the service class type
* @return the same service instance
*/
@Nonnull
public static <T> T provide(@Nonnull Class<T> clazz, @Nonnull T instance, @Nonnull ServicePriority priority) {
return provide(clazz, instance, LoaderUtils.getPlugin(), priority);
}
/**
* Provides a service.
*
* @param clazz the service class
* @param instance the service instance
* @param <T> the service class type
* @return the same service instance
*/
@Nonnull
public static <T> T provide(@Nonnull Class<T> clazz, @Nonnull T instance) {
return provide(clazz, instance, ServicePriority.Normal);
}