@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.

@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
helper/src/main/java/me/lucko/helper/Services.java