MCPcopy Index your code
hub / github.com/Anon8281/UniversalScheduler

github.com/Anon8281/UniversalScheduler @0.1.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.1.7 ↗ · + Follow
83 symbols 170 edges 10 files 28 documented · 34%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Universal Scheduler

Is a lib for java minecraft plugins to simplify Folia support implementation

Just for your information: Folia doesn't support any of Bukkit.getScheduler().* and Bukkit.getServer().getScheduler().* scheduling methods

Java version: 8 or above

Supported:

  • Folia
  • Paper
  • Spigot
  • Canvas

Plugins using UniversalScheduler

Name Link
Brewery (Fork) GitHub
InventoryRollbackPlus (Fork) GitHub
CraftBook (Fork) GitHub
PlaceholderAPI (Fork) GitHub
ImageOnMap (Fork) GitHub
BigDoors (Fork) GitHub
WorldGuardExtraFlags (Fork) GitHub
HorseTpWithMe (Fork) GitHub
BetterTridents (Fork) GitHub
HolographicDisplays (Fork) GitHub
Lucko helper (Fork) GitHub
HexNicks GitHub
WorldEdit (Unstable Fork) GitHub
SuperVanish (Fork) GitHub
TownyWaypoints (Fork) GitHub

How to use scheduler?

  1. To your plugin Main add:
private static TaskScheduler scheduler;
@Override
public void onEnable() {
        //if your already have onEnable() just add next line to it
        scheduler = UniversalScheduler.getScheduler(this);
}
public static TaskScheduler getScheduler() {
        return scheduler;
}
  1. Call it just like
Main.getScheduler().runTaskLater(() -> { //Main there is your plugin Main
        Bukkit.broadcastMessage("Wow, it was scheduled");
});
  1. If you need to get the scheduled task for some reason
MyScheduledTask task = Main.getScheduler().runTaskLater(() -> { //Main there is your plugin Main
        Bukkit.broadcastMessage("Wow, it was scheduled");
}, 10L);

Maven information

<repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
</repository>
<dependency>
    <groupId>com.github.Anon8281</groupId>
    <artifactId>UniversalScheduler</artifactId>
    <version>[VERSION]</version>
    <scope>compile</scope>
</dependency>
 ```

Shading:

```xml
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.5.0</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <artifactSet>
                        <includes>
                            <include>com.github.Anon8281:UniversalScheduler</include>
                        </includes>
                    </artifactSet>
                    <relocations>
                        <relocation>
                            <pattern>com.github.Anon8281.universalScheduler</pattern>

                            <shadedPattern>[YOUR_PLUGIN_PACKAGE].universalScheduler</shadedPattern>
                        </relocation>
                    </relocations>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

Gradle information

repositories {
    //...
    maven { url 'https://jitpack.io' }
}
dependencies {
    //...
    implementation 'com.github.Anon8281:UniversalScheduler:[VERSION]'
}

Shading:

shadowJar {
    //Don't forget to replace
    relocate 'com.github.Anon8281.universalScheduler', '[YOUR_PLUGIN_PACKAGE].universalScheduler' 
}

Extension points exported contracts — how you extend this code

MyScheduledTask (Interface)
(no doc) [4 implementers]
src/main/java/com/github/Anon8281/universalScheduler/scheduling/tasks/MyScheduledTask.java
TaskScheduler (Interface)
(no doc) [2 implementers]
src/main/java/com/github/Anon8281/universalScheduler/scheduling/schedulers/TaskScheduler.java

Core symbols most depended-on inside this repo

getScheduler
called by 26
src/main/java/com/github/Anon8281/universalScheduler/UniversalScheduler.java
getOneIfNotPositive
called by 7
src/main/java/com/github/Anon8281/universalScheduler/foliaScheduler/FoliaScheduler.java
checkNotYetScheduled
called by 6
src/main/java/com/github/Anon8281/universalScheduler/UniversalRunnable.java
setupTask
called by 6
src/main/java/com/github/Anon8281/universalScheduler/UniversalRunnable.java
cancelTasks
called by 6
src/main/java/com/github/Anon8281/universalScheduler/scheduling/schedulers/TaskScheduler.java
runTask
called by 4
src/main/java/com/github/Anon8281/universalScheduler/foliaScheduler/FoliaScheduler.java
classExists
called by 3
src/main/java/com/github/Anon8281/universalScheduler/utils/JavaUtil.java
runTask
called by 3
src/main/java/com/github/Anon8281/universalScheduler/scheduling/schedulers/TaskScheduler.java

Shape

Method 73
Class 8
Interface 2

Languages

Java100%

Modules by API surface

src/main/java/com/github/Anon8281/universalScheduler/scheduling/schedulers/TaskScheduler.java16 symbols
src/main/java/com/github/Anon8281/universalScheduler/foliaScheduler/FoliaScheduler.java15 symbols
src/main/java/com/github/Anon8281/universalScheduler/bukkitScheduler/BukkitScheduler.java13 symbols
src/main/java/com/github/Anon8281/universalScheduler/UniversalRunnable.java12 symbols
src/main/java/com/github/Anon8281/universalScheduler/foliaScheduler/FoliaScheduledTask.java7 symbols
src/main/java/com/github/Anon8281/universalScheduler/bukkitScheduler/BukkitScheduledTask.java7 symbols
src/main/java/com/github/Anon8281/universalScheduler/scheduling/tasks/MyScheduledTask.java6 symbols
src/main/java/com/github/Anon8281/universalScheduler/paperScheduler/PaperScheduler.java3 symbols
src/main/java/com/github/Anon8281/universalScheduler/utils/JavaUtil.java2 symbols
src/main/java/com/github/Anon8281/universalScheduler/UniversalScheduler.java2 symbols

For agents

$ claude mcp add UniversalScheduler \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page