private void reportRunningTasks(Predicate<Thread> predicate) {
        Thread.getAllStackTraces().forEach((thread, stack) -> {
            if (predicate.test(thread)) {
                this.bootstrap.getPluginLogger().warn("Thread " + thread.getName() + " is blocked, and may be the reason for the slow shutdown!\n" +
                        Arrays.stream(stack).map(el -> "  " + el).collect(Collectors.joining("\n"))
                );
            }
        });
    }
Abstract implementation of {@link SchedulerAdapter} using a {@link ScheduledExecutorService}.
common/src/main/java/me/lucko/luckperms/common/plugin/scheduler/AbstractJavaScheduler.java