下面列出了怎么用org.bukkit.event.server.ServiceRegisterEvent的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Register a provider of a service.
*
* @param <T> Provider
* @param service service class
* @param provider provider to register
* @param plugin plugin with the provider
* @param priority priority of the provider
*/
public <T> void register(Class<T> service, T provider, Plugin plugin, ServicePriority priority) {
RegisteredServiceProvider<T> registeredProvider = null;
synchronized (providers) {
List<RegisteredServiceProvider<?>> registered = providers.get(service);
if (registered == null) {
registered = new ArrayList<RegisteredServiceProvider<?>>();
providers.put(service, registered);
}
registeredProvider = new RegisteredServiceProvider<T>(service, provider, priority, plugin);
// Insert the provider into the collection, much more efficient big O than sort
int position = Collections.binarySearch(registered, registeredProvider);
if (position < 0) {
registered.add(-(position + 1), registeredProvider);
} else {
registered.add(position, registeredProvider);
}
}
Bukkit.getServer().getPluginManager().callEvent(new ServiceRegisterEvent(registeredProvider));
}
@EventHandler
public void onServiceRegister(ServiceRegisterEvent event) {
if (!(event.getProvider() instanceof net.milkbowl.vault.economy.Economy)) {
return;
}
setupEconomy();
}
private ServiceCallback(Class<T> serviceClass) {
this.serviceClass = serviceClass;
refresh();
// listen for service updates
this.listener = Events.merge(ServiceEvent.class, ServiceRegisterEvent.class, ServiceUnregisterEvent.class)
.filter(e -> e.getProvider() != null && e.getProvider().getService().equals(serviceClass))
.handler(e -> refresh());
}
@EventHandler
@SuppressWarnings("unused")
public void onPermissionRegister(ServiceRegisterEvent event) {
if (event.getProvider().getProvider() instanceof Permission) {
setupPermission().ifPresent((permission) -> this.permission = permission);
}
}
@EventHandler
@SuppressWarnings("unused")
public void onEconomyRegister(ServiceRegisterEvent event) {
if (event.getProvider().getProvider() instanceof Economy) {
setupEconomy().ifPresent((economy) -> this.economy = economy);
}
}