|
1 | | -## API |
| 1 | +## What is Energie ? |
| 2 | +Energie is a library allowing you to maintain compatibility between Spigot and Folia. The library is still under development, but can be used. |
2 | 3 |
|
3 | | -Bukkit/Spigot/Paper : |
| 4 | +## Setup |
| 5 | +```kotlin |
| 6 | +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar |
4 | 7 |
|
5 | | -```java |
6 | | -// Example Scheduler |
7 | | -Bukkit.getScheduler().runTask(this.plugin, () -> { |
8 | | - // code |
9 | | -}); |
10 | | -``` |
| 8 | +plugins { |
| 9 | + id("java") |
| 10 | + id("com.github.johnrengelman.shadow") version "8.1.1" |
| 11 | +} |
11 | 12 |
|
12 | | -Folia : |
| 13 | +val jitpack = "https://jitpack.io" |
| 14 | + |
| 15 | +repositories { |
| 16 | + mavenCentral() |
| 17 | + maven(jitpack) |
| 18 | +} |
| 19 | + |
| 20 | +dependencies { |
| 21 | + implementation("com.github.Euphillya:Energie:TAG") |
| 22 | +} |
| 23 | + |
| 24 | +tasks.withType<ShadowJar> { |
| 25 | + relocate("fr.euphyllia.energie", "[your plugin].dependency.energie") |
| 26 | +} |
13 | 27 |
|
14 | | -```java |
15 | | -// Example Scheduler |
16 | | -Bukkit.getGlobalRegionScheduler().run(this.plugin, task -> { |
17 | | - // code |
18 | | -}); |
19 | | -Bukkit.getRegionScheduler().run(this.plugin, location, task -> { |
20 | | - // code |
21 | | -}); |
22 | | -Entity.getScheduler().run(this.plugin, task -> { |
23 | | - // code |
24 | | -}, retired); |
25 | 28 | ``` |
| 29 | +## API |
| 30 | +The API remains quite simple to use: |
| 31 | + |
| 32 | +### Bukkit Implementation |
| 33 | +```java |
| 34 | +// before bukkit |
| 35 | +private void runTaskBukkitExample() { |
| 36 | + // Sync |
| 37 | + Bukkit.getScheduler().runTask(JavaPlugin, Callback); |
| 38 | + // Async |
| 39 | + Bukkit.getScheduler().runTaskAsynchronously(JavaPlugin, Callback); |
| 40 | +} |
| 41 | + |
| 42 | +private void runTaskLaterExample() { |
| 43 | + Bukkit.getScheduler().runTaskLater(JavaPlugin, Callback, Long); |
| 44 | +} |
| 45 | + |
| 46 | +private void runTaskTimerExample() { |
| 47 | + Bukkit.getScheduler().runTaskTimer(JavaPlugin, Callback, Long, Long); |
| 48 | +} |
26 | 49 |
|
27 | | -Energie : |
| 50 | +private void runnableExample() { |
| 51 | + new BukkitRunnable() { |
| 52 | + @Override |
| 53 | + public void run() { |
28 | 54 |
|
| 55 | + } |
| 56 | + }.runTask(JavaPlugin); |
| 57 | +} |
| 58 | +``` |
| 59 | + |
| 60 | +### Energie Implementation |
29 | 61 | ```java |
30 | | -Energie energie = new Energie(this.plugin); |
31 | | - |
32 | | -Scheduler minecraftScheduler = energie.getScheduler(SchedulerSoft.MINECRAFT); |
33 | | -// Example getGlobalRegionScheduler |
34 | | -minecraftScheduler.runTask(SchedulerType.SYNC, task -> { |
35 | | - // code |
36 | | -}); |
37 | | -// Example getRegionScheduler |
38 | | -minecraftScheduler.runTask(SchedulerType.SYNC, (location/MultiRecords.WorldChunk), task -> { |
39 | | - // code |
40 | | -}); |
41 | | -// Example EntityScheduler |
42 | | -minecraftScheduler.runTask(SchedulerType.SYNC, entity, task -> { |
43 | | - // code |
44 | | -}, retired); |
| 62 | + |
| 63 | +private @NotNull Energie energie; |
| 64 | +private @NotNull Scheduler scheduler; |
| 65 | + |
| 66 | +@Override |
| 67 | +public void onEnable() { |
| 68 | + this.energie = new Energie(JavaPlugin); |
| 69 | + this.scheduler = scheduler.getMinecraftScheduler(); |
| 70 | +} |
| 71 | + |
| 72 | +public Scheduler getScheduler() { |
| 73 | + return scheduler; |
| 74 | +} |
| 75 | + |
| 76 | + |
| 77 | +private void runTaskBukkitExample() { |
| 78 | + // Sync |
| 79 | + getScheduler().runTask(SchedulerType.SYNC, Callback); // GlobalScheduler |
| 80 | + getScheduler().runTask(SchedulerType.SYNC, Location/MultipleRecords.WorldChunk, Callback); // RegionScheduler |
| 81 | + getScheduler().runTask(SchedulerType.SYNC, Entity, Callback, Retired); // EntityScheduler |
| 82 | + |
| 83 | + // Async |
| 84 | + getScheduler().runTask(SchedulerType.ASYNC, Callback); |
| 85 | +} |
| 86 | + |
| 87 | +private void runTaskLaterExample() { |
| 88 | + getScheduler().runDelayed(SchedulerType.SYNC, Callback, Long); // global |
| 89 | + ... |
| 90 | +} |
| 91 | + |
| 92 | +private void runTaskTimerExample() { |
| 93 | + getScheduler().runAtFixedRate(SchedulerType.SYNC, Callback, Long, Long); |
| 94 | + ... |
| 95 | +} |
| 96 | + |
| 97 | +private void runnableExample() { |
| 98 | + new SchedulerTaskRunnable() { |
| 99 | + @Override |
| 100 | + public void run() { |
| 101 | + |
| 102 | + } |
| 103 | + }.runTask(JavaPlugin); |
| 104 | +} |
45 | 105 | ``` |
0 commit comments