|
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 | +## Lists of plugins that officially use Energie |
4 | 5 |
|
5 | | -```java |
6 | | -// Example Scheduler |
7 | | -Bukkit.getScheduler().runTask(this.plugin, () -> { |
8 | | - // code |
9 | | -}); |
10 | | -``` |
| 6 | +| Name | Github | Download | |
| 7 | +|---------|------------------------------------------------|------------------------------------------------------------------------| |
| 8 | +| Skyllia | [Github](https://github.com/Euphillya/Skyllia) | [Modrinth](https://modrinth.com/plugin/skyllia/versions#all-versions) | |
11 | 9 |
|
12 | | -Folia : |
| 10 | +## Setup |
| 11 | +```kotlin |
| 12 | +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar |
| 13 | + |
| 14 | +plugins { |
| 15 | + id("java") |
| 16 | + id("com.github.johnrengelman.shadow") version "8.1.1" |
| 17 | +} |
| 18 | + |
| 19 | +val jitpack = "https://jitpack.io" |
| 20 | + |
| 21 | +repositories { |
| 22 | + mavenCentral() |
| 23 | + maven(jitpack) |
| 24 | +} |
| 25 | + |
| 26 | +dependencies { |
| 27 | + implementation("com.github.Euphillya:Energie:TAG") |
| 28 | +} |
| 29 | + |
| 30 | +tasks.withType<ShadowJar> { |
| 31 | + relocate("fr.euphyllia.energie", "[your plugin].dependency.energie") |
| 32 | +} |
13 | 33 |
|
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 | 34 | ``` |
| 35 | +## API |
| 36 | +The API remains quite simple to use: |
| 37 | + |
| 38 | +### Bukkit Implementation |
| 39 | +```java |
| 40 | +// before bukkit |
| 41 | +private void runTaskBukkitExample() { |
| 42 | + // Sync |
| 43 | + Bukkit.getScheduler().runTask(JavaPlugin, Callback); |
| 44 | + // Async |
| 45 | + Bukkit.getScheduler().runTaskAsynchronously(JavaPlugin, Callback); |
| 46 | +} |
| 47 | + |
| 48 | +private void runTaskLaterExample() { |
| 49 | + Bukkit.getScheduler().runTaskLater(JavaPlugin, Callback, Long); |
| 50 | +} |
26 | 51 |
|
27 | | -Energie : |
| 52 | +private void runTaskTimerExample() { |
| 53 | + Bukkit.getScheduler().runTaskTimer(JavaPlugin, Callback, Long, Long); |
| 54 | +} |
28 | 55 |
|
| 56 | +private void runnableExample() { |
| 57 | + new BukkitRunnable() { |
| 58 | + @Override |
| 59 | + public void run() { |
| 60 | + |
| 61 | + } |
| 62 | + }.runTask(JavaPlugin); |
| 63 | +} |
| 64 | +``` |
| 65 | + |
| 66 | +### Energie Implementation |
29 | 67 | ```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); |
| 68 | + |
| 69 | +private @NotNull Energie energie; |
| 70 | +private @NotNull Scheduler scheduler; |
| 71 | + |
| 72 | +@Override |
| 73 | +public void onEnable() { |
| 74 | + this.energie = new Energie(JavaPlugin); |
| 75 | + this.scheduler = scheduler.getMinecraftScheduler(); |
| 76 | +} |
| 77 | + |
| 78 | +public Scheduler getScheduler() { |
| 79 | + return scheduler; |
| 80 | +} |
| 81 | + |
| 82 | + |
| 83 | +private void runTaskBukkitExample() { |
| 84 | + // Sync |
| 85 | + getScheduler().runTask(SchedulerType.SYNC, Callback); // GlobalScheduler |
| 86 | + getScheduler().runTask(SchedulerType.SYNC, Location/MultipleRecords.WorldChunk, Callback); // RegionScheduler |
| 87 | + getScheduler().runTask(SchedulerType.SYNC, Entity, Callback, Retired); // EntityScheduler |
| 88 | + |
| 89 | + // Async |
| 90 | + getScheduler().runTask(SchedulerType.ASYNC, Callback); |
| 91 | +} |
| 92 | + |
| 93 | +private void runTaskLaterExample() { |
| 94 | + getScheduler().runDelayed(SchedulerType.SYNC, Callback, Long); // global |
| 95 | + ... |
| 96 | +} |
| 97 | + |
| 98 | +private void runTaskTimerExample() { |
| 99 | + getScheduler().runAtFixedRate(SchedulerType.SYNC, Callback, Long, Long); |
| 100 | + ... |
| 101 | +} |
| 102 | + |
| 103 | +private void runnableExample() { |
| 104 | + new SchedulerTaskRunnable() { |
| 105 | + @Override |
| 106 | + public void run() { |
| 107 | + |
| 108 | + } |
| 109 | + }.runTask(JavaPlugin); |
| 110 | +} |
45 | 111 | ``` |
0 commit comments